Godot Rapier now runs on Rapier 0.35. As part of update, I have done a comparison between the following engines:
- Rapier: using godot-rapier
- Box2D: using godot-box2d-v3
- Box3D: using godot-box3d
- Jolt: using built in from Godot 4.7
Here is the repo used to run the tests benchmarks-repo.
Also, watch the video: https://youtu.be/wridqvuXTf4?si=mvDq-YZD5LX7u34N
2D: Rapier vs Box2D
Rapier is the only engine that keeps every scene stable: Box2D collapses the pyramid and blows the joints apart, those are marked as unstable.
- Issue on godot-box2d-v3 side: godot-box2d-v3/issues/9 godot-box2d-v3/issues/8
| Engine | Version | Addon |
|---|---|---|
| v0.35 | godot-rapier2d | |
| v3.1 | godot-box2d-v3 |
| Engine | Rapier2D |
Box2D |
|---|---|---|
![]() |
16 ms 1.8 cores |
17 ms 4.1 cores unstable |
![]() |
8 ms 2.2 cores |
9 ms 4.4 cores |
![]() |
7 ms 2.0 cores |
6 ms 3.2 cores |
![]() |
5.5 ms 1.2 cores |
3.9 ms 1.8 cores |
![]() |
6.4 ms 1.6 cores |
3.8 ms 2.8 cores unstable |
| Benchmark | Conclusion |
|---|---|
| Pyramid | Rapier hold the pyramid stable, 2.3x fewer cores. Box2D collapses, unstable |
| Smash | Rapier 1.13x faster, 2.0x fewer cores |
| Mixed shape pile | Box2D 1.23x faster, Rapier 1.6x fewer cores |
| Query storm | Box2D 1.42x faster, Rapier 1.5x fewer cores |
| Joint grid | Rapier holds the joints together; Box2D explodes, unstable |
3D: Rapier vs Jolt vs Box3D
Rapier3D is fastest on three of five scenes and 4x ahead on queries; Jolt crashes the joint grid. Box3D is single threaded (issue on godot-box3d side).
| Engine | Version | Addon |
|---|---|---|
| v0.35 | godot-rapier3d | |
| v5.5.0 | ships with Godot v4.7 | |
| v0.1 | godot-box3d v0.2.3 |
Rapier3D |
Jolt |
Box3D |
|
|---|---|---|---|
![]() |
5.6 ms 1.1 cores |
22 ms 1.2 cores |
6.3 ms 1.0 cores |
![]() |
19 ms 3.4 cores |
24 ms 5.6 cores |
25 ms 0.9 cores |
![]() |
10 ms 2.5 cores |
11 ms 5.1 cores |
14 ms 1.0 cores |
![]() |
11.4 ms 2.3 cores |
unstable never finishes |
11.2 ms 1.0 cores |
![]() |
12 ms 2.9 cores |
11 ms 5.0 cores |
17 ms 1.0 cores |
| Benchmark | Conclusion |
|---|---|
| Query storm | Rapier 4.0x faster than Jolt, on par with Box3D |
| Pyramid | Rapier 1.22x faster than Jolt, 1.27x than Box3D |
| Mixed shape pile | Rapier 1.12x faster than Jolt, 1.37x than Box3D |
| Joint grid | Rapier and Box3D tie; Jolt unstable, never finishes |
| Smash | Jolt 1.05x faster, using 1.7x more cores |
Building without experimental-threads
Official builds enable experimental-threads so the physics server can be driven from other threads. It costs 7-51% depending on the scene, so building from source without it is faster:
| Benchmark | Without threads | Official build | |
|---|---|---|---|
| 2D box pyramid | 16.4 ms | 18.2 ms | 11% faster |
| 2D mixed pile | 6.9 ms | 8.0 ms | 17% faster |
| 2D joint grid | 6.4 ms | 7.4 ms | 15% faster |
| 3D box pyramid | 19.4 ms | 20.7 ms | 7% faster |
| 3D smash | 12.0 ms | 18.1 ms | 51% faster |
| 3D query storm | 5.6 ms | 8.0 ms | 43% faster |
New features
- Rope and fixed joints, in 2D and 3D. Godot has no equivalent of either. Joints Reference.
- Per-body solver iterations: stabilize one important body without paying for it globally. Rigidbodies Reference.
- Per-joint stiffness and toggling:
joint_set_softness,joint_set_enabledfor breakable constraints. Joints Reference. - Joint warm starting: stiff joint assemblies converge much better, at no measurable cost.
- New project settings for motion recovery, shape casting and query behaviour.
Full Changelog: godot-rapier-physics/CHANGELOG.md at main · appsinacup/godot-rapier-physics · GitHub









