Benchmarks — Balaur beside Godot, case for case
The Balaur game engine measured on the same physics and scene-tree scenes the Godot benchmark suites publish: what a tick costs, what rapier costs inside it, and what the engine adds.
På den här sidan
Balaur is the quickest engine on all 12 physics cases: about 3× faster than Godot Jolt and 11–18× faster than Godot Physics.
3D
| Balaur | Godot Rapier 3D | Godot Jolt | Godot Box3D | Godot Physics 3D | |
|---|---|---|---|---|---|
| pyramid 3795 bodies ![]() |
10.33 ms | 14.62 ms | 26.92 ms | 13.52 ms | 48.03 ms |
| mixed_pile 5000 bodies ![]() |
4.94 ms | 11.28 ms | 13.70 ms | 9.72 ms | 84.90 ms |
| joint_grid 5000 bodies, 9950 joints ![]() |
3.13 ms | 8.92 ms | — | 10.27 ms | 26.08 ms |
| smash 5001 bodies ![]() |
8.17 ms | 19.14 ms | 12.12 ms | 9.62 ms | 99.98 ms |
| query_storm 2000 bodies ![]() |
4.68 ms | 5.93 ms | 26.45 ms | 6.67 ms | 73.26 ms |
| drop 8000 bodies ![]() |
3.21 ms | 12.26 ms | 22.14 ms | 11.34 ms | — |
2D
| Balaur | Godot Rapier 2D | Godot Box2D v3 | Godot Physics 2D | |
|---|---|---|---|---|
| pyramid 10000 bodies ![]() |
7.02 ms | 20.03 ms | 21.33 ms | 147.26 ms |
| mixed_pile 5000 bodies ![]() |
2.88 ms | 9.25 ms | 6.71 ms | 71.12 ms |
| joint_grid 5000 bodies, 9950 joints ![]() |
2.20 ms | 10.16 ms | 4.93 ms | — |
| smash 5001 bodies ![]() |
3.49 ms | 11.86 ms | 11.57 ms | 55.09 ms |
| query_storm 2000 bodies ![]() |
4.23 ms | 6.25 ms | 4.56 ms | 57.24 ms |
| drop 8000 bodies ![]() |
6.35 ms | 16.54 ms | 22.66 ms | 103.34 ms |
Nodes
Milliseconds for the whole loop, lower is better. Godot's numbers are its own published run, on a 12th-gen i5.
| operation | Balaur | Godot |
|---|---|---|
add_children |
24.33 ms | 28.19 ms |
delete_children_in_order |
13.35 ms | 9.82 ms |
delete_children_reverse |
14.47 ms | 6.10 ms |
delete_children_random |
17.04 ms | 19.63 ms |
get_node |
51.69 ms | 29.60 ms |
How it was measured
Balaur c862aad11 against Godot 4.7-stable (official) on Apple M1, 8 cores, Darwin 25.6.0, 2026-09-06. The scenes are the godot-rapier benchmark suite's (post, docs), body for body; each runs 300 timed steps at 60 Hz after a settle, and the tables show the median physics tick.
Running it
cargo build --release -p balaur_cli --features window --bin balaur
python3 scripts/bench_compare.py --shots --godot-results <benchmarks-repo>/results
One case on its own, or in the editor:
target/release/balaur run examples/benchmark --headless --fixed-tick -- --case=3d/pyramid
target/release/balaur edit examples/benchmark










