Godot Jolt is a native extension for the Godot game engine that allows you to use the Jolt physics engine to power Godot's 3D physics.
It functions as a drop-in replacement for Godot Physics, by implementing the same nodes that you
would use normally, like RigidBody3D
or CharacterBody3D
.
Better performance, mainly, but also generally having a more stable simulation compared to Godot Physics.
There are also (completely optional) substitute nodes available for all the joints, which line up better with the interface that Jolt offers than what the default joints do. This allows for things like breakable joints, soft limits and the ability to override solver iterations per-joint.
While Jolt itself offers deterministic simulations, Godot Jolt is not able to make such guarantees. Simulations in Godot Jolt may look deterministic, and may even happen to be deterministic, but this should not be relied upon if determinism is a hard requirement.
SoftBody3D
does not support any interactions with Area3D
SoftBody3D
Area3D
detecting static bodies is opt-in, at a potentially heavy performance/memory cost
JoltHingeJoint3D
, etc.)Generic6DOFJoint3D
node_a
be the "world node" rather than node_b
face_index
is opt-in, at a potentially heavy memory cost
Also consider this note from Jolt's documentation:
In order for the simulation to be accurate, dynamic objects should be in the order of 0.1 to 10 m long, have speeds in the order of 0 to 500 m/s and have gravity in the order of 0 to 10 m/s^2. Static object should be in the order of 0.1 to 2000 m long.
Currently the only supported version is Godot 4.3 (including 4.3.x).
Note that Linux support is limited to glibc 2.31 or newer, which for Ubuntu means 20.04 (Focal Fossa) or newer.
See docs/settings.md
for information about the project settings available in Godot Jolt.
See docs/building.md
for information about how to build Godot Jolt from source.
Godot Jolt is distributed under the MIT license. See LICENSE.txt
for more details and
THIRDPARTY.txt
for third-party licenses.