ImpulseForge
Physics that feels honest: impulse-level collision logic, friction, and MuJoCo cross-checks in one loop.
Extend classic rigid-body collision formulations into a Python-native pipeline with full traceback.
Use MuJoCo for environment specification and rendering while retaining a custom solver.
Benchmark custom collision behavior directly against MuJoCo's built-in LCP solver outputs.
The Project Brief
A production-ready rigid body simulation framework built on MuJoCo for visualization and XML-based environment specification, with custom impulse-based collision resolution implemented in Python.
Framework capabilities:
- Impulse-based collision detection and response for sphere–sphere, sphere–plane, and multi-body interactions.
- Coulomb friction modeling with stiction and sliding regimes.
- Single-sphere bounce, multi-sphere collisions, and inclined-plane simulations.
- Comparative benchmarking against MuJoCo’s native LCP solver.
Implementation basis: Extends the formulations from “Nonconvex Rigid Bodies with Stacking” (Guendelman, Bridson & Fedkiw, SIGGRAPH 2003) to a Python-native simulation loop coupled with MuJoCo rendering.
Stack: Python · MuJoCo · NumPy · SciPy
Key Components
Project Highlights
README documents single-sphere, multi-sphere, collision, incline, and cube simulations with trajectory/height visualizations.
Core collision/friction methods are centralized in physics modules with dedicated configuration and simulation runners.
CLI entrypoint supports selecting simulation variants and exporting recordings/plots for analysis.
Quickstart
"Every collision is a conversation between forces — and the math never lies."