google-deepmind/mujoco 3.13.0
google-deepmind/mujoco
Captured source
source ↗3.13.0
Repository: google-deepmind/mujoco
Tag: 3.13.0
Published: 2026-09-09T15:03:05Z
Prerelease: no
Release notes:
Version 3.13.0 (September 8, 2026)
General
1. `eb18d77ca` The .mjz encoder now writes the root file as model.xml in the archive as this is less susceptible to breakage due to file renaming.
2. `4affbb64a` Site geometries can now also be associated with meshes (type="mesh" with mesh="name"), supporting visualization, the insidesite sensor, and the new `mj_insideSite` function.
3. `b59b07fae` Added support for Python 3.15 (GIL and Free-Threading).
Engine
4. `5660353ec` Added a new integrator discrete: the constraint solve and the implicit velocity update merge into one operation, performed in the effective metric $\widehat{M} = M + hD + h^2K$, which incorporates both implicit damping $hD$ and implicit position stiffness $h^2 K$. Under this integrator mjData.qacc is the discrete step map $(v^+ - v)/h$, and joint, tendon and actuator stiffness and damping join the solver's metric, making passive springs and actuator position gains stable at timesteps far beyond the explicit stability limit. Constraint rows are treated implicitly as well: solref spring--dampers are evaluated at the end of the step, so constraints are stable at any timeconst; under this integrator the refsafe flag replaces contact and limit rows stiffer than the timestep can resolve by the stiffest zero-restitution row instead of clamping timeconst. The actuator-gain treatment resolves the stiff-servo timestep limitation of #3443 (analysis contributed by @qiayuanl). See the integrator documentation for semantics and current limitations.
> [!WARNING] > Breaking API changes > > Removed the implicit flex effective-metric special case under implicit/implicitfast with the CG > solver, introduced in 3.11.0. This behavior now requires integrator="discrete" (with a primal solver: > CG or Newton), which additionally treats joint damping and stiffness implicitly inside the solve. Models > relying on the old behavior should set integrator to discrete; models with flex > elasticity or passive flex contact under implicit/implicitfast now raise a runtime error carrying this > migration note.
5. `0b4e17747` Restored clamping of non-positive pivots in the sparse inertia factorization, along with the associated mjWARN_INERTIA warning. The guard was inadvertently dropped in the 3.3.0 conversion of qLD to CSR format; since then, models with singular mass matrices silently produced non-finite accelerations, typically surfacing as divergence warnings and automatic resets.
6. `c9d997610` Added single-shot multicontact for collisions with cylinder geoms.
7. `10eeb8289` The Newton solver with elliptic cones now rebuilds the cone-augmented Hessian factor with a single refactorization instead of per-contact rank-1 updates when a flop-count model predicts this is faster. Scenes with many simultaneously sliding contacts speed up by 1.4-2x on average and 3-4x on the slowest steps. Contribution by @kevinzakka.
Compiler
8. `2a3957558` Custom text fields (custom/text) in MJCF now accept their values inside a ` block in addition to the data attribute. When saving a model via [mj_saveXML`](https://mujoco.readthedocs.io/en/stable/APIreference/functions_override.html#mj_saveXML), custom text containing newlines or XML characters is exported as CDATA.
9. `47ebfe48a` Added cutoff attribute to sensor/tactile.
Samples
10. `834983fbb` Added render.cc: a headless offscreen rendering sample that saves an image to a PNG image. Supports both the Filament and classic OpenGL backends, with command-line options for camera, resolution, keyframe, simulation steps, geom/site groups, visualization and rendering flags, labels, and frames.
Bug fixes
11. `67562d95f` Rewrote the Plane-Mesh collider to fix bugs and improve performance. Fixes #3524.
Models
12. `f6c1004b7` Added house of cards example model and three free-standing arch models: roman, gothic, and hyperbolic. Inspired by Song et al.
Rendering
> [!WARNING] > Breaking API changes > > 13. `cb57b526f` For materials with physically-based rendering parameters that do *not* provide a...
Excerpt shown — open the source for the full document.