Jolt Physics in Godot: From Chaos to Precision in 3D Physics
Jolt has transformed Godot's 3D physics landscape. Instead of jittery collisions, ghost pass-throughs, and sudden performance collapses, developers get multi-core-parallel computation, razor-sharp collision precision, and stable simulation. Many report frame rates jumping from 60 to 200+ after switching.
Origins and Enabling Jolt in Godot
Jolt was created by Jorrit Rouwe, chief physics engineer at Guerrilla Games, designed for high-intensity games and VR: multi-core friendly, deterministic simulation, and seamless C++ integration. It has shipped in *Horizon Forbidden West* and *Death Stranding 2*.
In Godot, Jolt's journey went from the community extension (godot-jolt), to a built-in module in Godot 4.4, to the default physics engine for new projects in Godot 4.6.
To enable it: Project Settings > Physics > 3D > Physics Engine > Jolt Physics, then save and restart the editor.
Benchmarks show Jolt delivers 15–50% higher FPS even for simple CharacterBody3D movement, and 20–80x in complex scenes.
Differences from Godot Physics
- Joints: Jolt does not support "soft limit" properties (e.g.,
PinJoint3Dbias/damping); it warns when non-zero values are set. Replacement nodes such asJoltHingeJoint3Dsupport breaking joints, soft limits, and independent solver iterations. - Single-body joints: Godot treats
node_aas the world, Jolt the opposite. Use Joints > World Node to flip attachment when structures appear inverted. - Convex radius: Jolt shrinks the shape then wraps a rounded shell, preventing corner ghost collisions. Godot's
marginis unused; Jolt computes it via Collision Margin Fraction multiplied against the AABB, capped atshape.margin. - Baumgarte stabilization: Jolt adjusts position only (not velocity), avoiding overshoot. The Baumgarte Stabilization Factor (0–1) trades speed vs. stability; ~0.5 is a good balance.
- Internal edge removal: Active Edge Detection marks triangle edges of
ConcavePolygonShape3Das active based on an angle threshold; Enhanced Internal Edge Removal detects and removes problematic edges at runtime — no more wheels catching on terrain seams. - Character modes: Rigid Body Character (participates in simulation, most accurate) and Virtual Character (query-only, flexible timing, ideal for platformers).
- Vehicles: wheeled, tracked, and motorcycle simulation with motor-driven constraints.
- Soft bodies: edge constraints, dihedral bending, Cosserat rods, tetrahedral volume preservation, tethers and internal pressure; soft-rigid collision and animated ragdoll blending are supported.
- Forces should be applied inside
_integrate_forcesfor immediate, race-free state access. move_and_slidecan be somewhat slower (~2x) under Jolt, though overall performance wins.SoftBody3Dwind/gravity integration is not yet complete; no Area interaction for soft bodies yet.- Runtime shape modification is expensive; the PhysicsServer is not thread-safe.
| Joint type | Godot Physics | Jolt difference | |---|---|---| | PinJoint3D | soft bias/damping | hard limits + motor drives | | HingeJoint3D | softness/relaxation | replacement node + breakable joints | | SliderJoint3D | angular damping | gear/pulley extensions | | Generic6DOFJoint3D | all soft properties | 6DOF motors + rack-and-pinion |
Performance
Jolt's soul is multi-core friendliness: a JobSystem parallelizes broadphase, solving, and integration; lock-free queues, a dual-tree broadphase, contact caching for warm starting, and island splitting.
Community benchmarks:
| Scene | Godot Physics FPS | Jolt FPS | |---|---|---| | 1000 RigidBodies | 120 | 200+ | | Ragdoll fish school | 30 (jittery) | 120 (stable) | | 7500-body stack | crash | 179 |
Reddit users report 20–80x FPS improvements in complex collision scenes; even against Unity Physics, Jolt reportedly runs 10–15% faster in some scenarios. Multicore scaling data: JoltPhysicsMulticoreScaling.pdf.
Deterministic simulation enables perfect replays and multiplayer sync; a cross-platform determinism mode (CMake flag) costs ~8% for unified floating-point results across ARM/x86.
Characters, Vehicles, and Soft Bodies
Caveats
References
1. Godot Engine Documentation — Using Jolt Physics: https://docs.godotengine.org/en/stable/tutorials/physics/using_jolt_physics.html 2. JoltPhysics GitHub: https://github.com/jrouwe/JoltPhysics 3. Jolt Physics Architecture: https://jrouwe.github.io/JoltPhysics/ 4. godot-jolt Extension: https://github.com/godot-jolt/godot-jolt 5. Reddit — Jolt vs Godot Physics Performance: https://www.reddit.com/r/godot/comments/19ff8s2/psa_you_should_always_use_jolt_instead_of_the/