Repository navigation
Official MuJoCo bindings are updated to 3.15.0. This release also resolves #1 with analytic site Jacobians and quaternion-aware IK.
- IK:
GenericIK.solvenow usesmj_jacSite. NewsolveJointshandles ball and free joints with velocity-space updates throughmj_integratePos, preserving quaternion normalization and restoring live simulation state. - Controls: actuator metadata includes
ctrlAdr,ctrlCount, and per-input ranges.setCtrlsupports complete input vectors;useCtrlaccepts an input index. Scalar control helpers reject ambiguous multi-input actuators. - Simulation: opt-in engine thread pools through
threadCount, configurable integrators includingdiscrete, and integration-state snapshots with same-model validation. - Rendering: flex meshes now use indexed 2D elements, 3D boundary faces, and 1D lines.
- Docs and examples: updated API and migration guidance; an engine demo exercises ball-joint IK, PID control, cloth rendering, and snapshot restoration.
Migration
This is a major release because the engine upgrade includes upstream model/physics changes and the low-level actuator metadata contract now distinguishes actuators from control inputs. Review the MuJoCo 3.15 changelog.
Existing scalar IK/control call shapes remain supported. epsilon in IK options is deprecated and ignored. For ball/free joints, use solveJoints with joint IDs and a full nq configuration. Multi-input actuators require explicit vector controls or input selection. Thread pools require the threaded engine and browser cross-origin isolation.
Validation
Clean install, library build, type checks, and 11 real-WASM regression tests passed locally and in GitHub Actions. The linked example passed TypeScript/build checks and interactive Chrome testing of the new demo and Franka, SO101, quadrotor, Spot, G1, and XLeRobot scenes. Browser coverage is Chrome on macOS; no Safari/Firefox verification was performed.
The example app is deployed using the published npm package. Try the MuJoCo 3.15 engine demo or read its source. Production preview and deployed engine controls were exercised in Chrome with no console errors; both Cloudflare deployment and primary URLs returned HTTP 200.
This release does not add a native rendering backend, Web Worker orchestration, MJX/GPU integration, or MjSpec hot recompilation.