Open Physics
When to use
- An agent needs to create, advance, query, or replay a deterministic physics world.
- A playtester needs contacts, raycasts, or solver diagnostics rather than visual guesses.
Availability guardrail — current stage
This repository is a pre-alpha scaffold. No physics_* tools are registered yet.
Do not claim that a world was simulated, that a replay matched, or that a build is
physically correct. If the planned tools are unavailable, report that the native core
is not implemented and stop instead of substituting another engine or fabricated output.
Intended M0 workflow
Use this loop only after the corresponding tools actually exist:
physics_world_create
→ physics_body_add (for every body)
→ physics_step (fixed step count)
→ physics_contacts_report / physics_raycast
→ physics_replay (same input log; require identical results)
Rules for the future implementation:
- Keep the initial world description explicit and serializable.
- Never infer simulation success from the absence of an error; inspect the resulting state.
- Treat determinism as a testable contract: same inputs and step log must produce identical outputs.
- Report maximum constraint violation and broken impulses with simulation results.
- Do not present the engine as Havok or as containing Havok code. It is an original clean-room implementation.