Expert patterns for Godot 3D physics (Jolt/PhysX), including Ragdolls, PhysicalBones, Joint3D constraints, RayCasting optimizations, and collision layers.
Expert patterns for Godot 3D physics (Jolt/PhysX), including Ragdolls, PhysicalBones, Joint3D constraints, RayCasting optimizations, and collision layers.
Use for rigid body simulations, character physics, or complex interactions.
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude CodeNot declared
CursorNot declared
CodexNot declared
GitHub CopilotNot declared
WindsurfNot declared
Gemini CLINot declared
ClineNot declared
OpenCodeNot declared
Repository health
Stars678
LicenseLICENSE
Default branchmain
Open issues0
Status
Active
Package contents
Files included with this skill beyond the listing page.
skill mdSKILL.md13,107 B
docsSUMMARY.md3,997 B
History
First seen on skills.sh
First recorded snapshot · 303 installs
SKILL.md
3D Physics (Jolt/Native)
High-performance 3D simulation: body choice, CCD, stairs, vehicles, ragdolls, SoftBody — routed through scripts.
NEVER Do
NEVER move PhysicsBody3D nodes in process() — Use physics_process(). Moving bodies outside the physics step causes visual jitter and unreliable collision detection [12, 13].
NEVER scale collision shapes directly — Scaling physics shapes causes instability, inaccurate normals, and jitter. Use the shape properties (height, radius, size) instead.
NEVER modify RigidBody3D transforms directly — This ignores the physics solver. Use applyimpulse(), applytorque(), or the integrateforces() callback for safe manipulation [17].
NEVER use RigidBody3D for platformer player controllers — RigidBody is for objects driven by physics. For refined movement, use CharacterBody3D with moveandslide() [moveandslide].
NEVER leave Continuous CD (CCD) enabled for static meshes — It adds heavy CPU cost. Reserve it for high-speed small objects (bullets) to prevent them from passing through walls.
NEVER use PhysicsServer3D RIDs without manual cleanup — RIDs are not garbage collected. If you create bodies via the server, you MUST call free_rid() when done to avoid memory leaks.
NEVER use RayCast3D for precise ground detection on stairs — A single ray is too thin. Use ShapeCast3D with a cylinder or sphere shape to detect walkable steps reliably [Stair Logic].
NEVER rely on VehicleBody3D for non-racing arcade vehicles — It's a complex sim. For arcade hovercraft or simple cars, a custom CharacterBody3D with Raycasts is often easier to tune.
NEVER forget to set collisionlayer and collisionmask properly — If everything is on layer 1, performance will tank from redundant checks. Categorize your world.
NEVER use Area3D for high-frequency blocking — Areas are for detection. For walls/barriers, use StaticBody3D to ensure immediate, robust containment.
Body / Symptom Decision Tree
MANDATORY — load the script for the chosen row before writing movement or sim code.
Do NOT Load every physics script for one controller.
Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing work to a peer domain — do not preload the whole lattice.
Official Documentation
Physics introduction — Layers vs masks, body types, and the shared 2D/3D collision mental model every 3D setup depends on.
Collision shapes (3D) — Primitive vs convex/concave shapes and why scaling CollisionShape3D breaks normals and contacts.
Using Jolt Physics — Engine switch, joint-property gaps vs Godot Physics, and project-setting caveats for stable 3D sims.
Using RigidBody — Safe control via forces, impulses, and integrate_forces instead of fighting the solver with per-frame transforms.
Ragdoll system — PhysicalBoneSimulator3D / PhysicalBone3D setup for death sims and animation↔physics handoff.
Using SoftBody3D — Cloth/flag deformation, pinning, and why Jolt is preferred for soft-body robustness.
Ray-casting — RayCast3D vs PhysicsDirectSpaceState3D queries, exclusions, and space access during the physics tick.