// the find
Rawframe-Project/maul3d
Deterministic 3D physics engine: bit-exact rollback, record/replay, voxel destruction. C17, zero dependencies, MIT.
Maul3D is a C17 3D physics engine with rigid bodies, joints, raycast vehicles, a character controller, soft bodies and voxel destruction, built so the same inputs produce the same bits. It is aimed at game developers who need rollback netcode, lockstep multiplayer or replayable sessions handled by the physics layer itself.
The snapshot and journal design is concrete: m3World_Snapshot and m3World_Restore are exact, and the journal seals and replays a session while verifying every id and backing out atomically when a tape does not fit, which is the hard part of rollback done properly. The determinism claim is tested rather than asserted: CI runs eleven compiler, architecture and platform cells, and the printed hashes must match the values committed in test/hashes.txt. Zero dependencies, a plain C API, and an engine that starts no threads of its own (it runs on the host's task system) make it easy to add to an existing build.
It is at version 0.0.1 with three stars and no forks, so there is almost no outside use to learn from, and the README says the API, the ABI and the snapshot and journal formats may change in any minor release. The golden hashes catch drift in this codebase but cannot show the physics is correct, since the same code produces them. The default x64 build requires AVX2 and FMA, so older CPUs need a separate scalar build, and MSVC needs Visual Studio 2022 or newer. Maul2D and Maul3D share code by copy rather than through a common library, which means two repos kept in step by a check script.