News brief · 11 Nov 2026

MuJoCo 4.0 adds speculative contacts and plasticity, and 4.0.1 fixes a Newton solver bug

Google DeepMind shipped MuJoCo 4.0.0 on 6 November with breaking changes to tendons, the Python packages and cable models. Version 4.0.1 followed on 11 November with a fix for wrong Newton solver results.

Google DeepMind released MuJoCo 4.0.0 on 6 November 2026, the first major version since 3.0. The headline engine feature is an opt-in speculative enable flag for speculative contacts. It stops fast convex geoms passing through thin obstacles within a single step. The release also adds elasto-plasticity: joint and tendon springs can yield, and 2D and 3D flexes can deform permanently, with the plastic state kept in mjData.plastic.

Several changes can alter existing models. Tendon side sites now follow a new wrapping rule, so a tendon can take a different path than before. The RK4 integrator now reaches fourth-order accuracy for ball and free joint orientations, which changes trajectories for models that use it. The cable plugin and the composite element are gone, replaced by 1D flexcomp with elasticity. The compiler now rejects some invalid models it used to accept, such as height fields with fewer than 2 rows or columns.

On the Python side, the package is split into mujoco-core, mujoco-studio and a mujoco meta-package, and Python 3.10 is no longer supported. The notes tell pip users to uninstall first or force a reinstall when upgrading. Version 4.0.1 followed on 11 November. It fixes a sparse Cholesky bug, new in 4.0.0, that handed the Newton solver an incorrect factor of the Hessian, which could cause slow convergence, wrong accelerations and divergence.

Why it matters

If you run MuJoCo in a training or test pipeline, skip 4.0.0 and pin 4.0.1, because the 4.0.0 solver bug can give wrong accelerations when the constraint Jacobian is sparse. Before upgrading, re-run any regression tests on models with tendons, ball or free joints under RK4, or cable composites, and expect numbers to move. Speculative contacts target tunnelling of fast objects through thin geometry, but you have to switch them on. Lock files and Docker images that install mujoco with pip need the uninstall step, or files can go missing after the split.