Skip to content

build(deps): bump mujoco from 3.3.7 to 3.12.0 - #48

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/mujoco-3.12.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/mujoco-3.12.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Bumps mujoco from 3.3.7 to 3.12.0.

Release notes

Sourced from mujoco's releases.

3.12.0

Version 3.12.0 (August 20, 2026)

General

  1. 3f8db4c1 The MJCF grammar is now defined in a single source of truth schema file, src/xml/mjcf.schema. The parser's grammar table, presence constraints, keyword maps, typed attribute bindings and save policies are generated from it and gated by tests, as are the schema's enum keywords and declared defaults against the C headers and default-constructors.

[!WARNING] Breaking API changes 2. 6fe04aa8 Removed the custom binary texture format (image/vnd.mujoco.texture) and the automatic fallback to custom textures when loading files with unrecognized extensions. Textures can now only be loaded from PNG (image/png) and KTX (image/ktx) files.

Actuation

  1. 279df98c Added the pid actuator: a PID controller with real position and velocity setpoint inputs, optional integral action (ki, integrating the position error with imax anti-windup), setpoint rate limiting (slewmax), and an optional feedforward input. This subsumes the functionality of the mujoco.pid plugin with proper activation state: correct under all integrators and visible to keyframes and sensors. With a zero velocity setpoint it is identical to position. The input signature is any subset of [pos, vel, ff], selected by input; absent setpoint inputs are fixed at zero, so the control vector contains no inert entries.
  2. 2f1843f4 The dcmotor on-board controller is redesigned: the input attribute selects any subset of [pos, vel, ff, voltage], where pos and vel are setpoints for the controller, ff is a torque feedforward, and voltage is the raw terminal voltage (the default, a plain voltage-commanded motor). Controller gains are in torque space, as for pid, and the drive voltage compensates back-EMF as in a current-controlled driver: commanded torque is delivered exactly until a limit is reached. The keyword input="none" selects the empty signature: the actuator has no control inputs and is purely passive, so friction, cogging and back-EMF braking can be used as passive joint forces.

[!WARNING] Breaking API changes 5. 2f1843f4 The mode-flag semantics of dcmotor/input ("voltage", "position", "velocity", selecting the interpretation of a single control) are replaced by input signatures, and the controller gains changed from voltage space to torque space. The old velocity mode's integral term (integrated-velocity tracking) is retired without replacement; the integrator always accumulates position error.

Migration: Voltage-commanded motors (the default) are unchanged. Replace input="position" with input="pos" and input="velocity" with input="vel", and multiply the controller gains by $K/R$ (torque per volt). The motor's back-EMF damping, previously felt in addition to the controller's damping, is now compensated: to preserve behavior when the velocity setpoint is zero, add $K^2/R$ to the converted kd.

Engine

  1. 83e621d7 Optimized large-mesh convex collision detection with up to 2x speedup in certain cases.
  2. 55d13aec Replaced the per-step sparse Cholesky factorization of the flex block of the implicit effective metric M + K with its prefactored per-vertex 3x3 diagonal blocks. The blocks precondition the CG constraint solver and drive an iterative solve for qacc_smooth, which now converges on tolerance rather than a fixed threshold. Flexes with elastic2d stretch stiffness step roughly twice as fast; bending-only flexes keep the exact constant factor and are unchanged.
  3. 86e98601 Rewrote cleaner box-box SAT collider.

[!WARNING] Breaking API changes 9. 2a3554c8 Contacts of a flex with passive collisions are now integrated implicitly: their stiffness is carried by the effective metric rather than applied as an explicit spring, and can be far stiffer than the timestep would otherwise permit. Models using passive collisions should be re-checked: the feature now requires implicit or implicitfast with the CG solver, pyramidal cones and sleep disabled; passive handling covers flex-flex, self-, and static-geometry contact, while contact with a moving body stays on the constraint solver; and the stiffness is now a mass-scaled natural frequency rather than a fixed 1e4. 10. 55d13aec Removed mjData.efm_L_rownnz, mjData.efm_L_rowadr and mjData.efm_L_colind. They described the sparsity of the effective-metric Cholesky factor, which no longer exists; mjData.efm_L now holds dense 3x3 blocks, 9 numbers per covered vertex. mjData.efm_active no longer takes the value 2: nothing selects a solve path on preconditioner exactness, so it is now a plain 0/1 flag. 11. 1362a8bd Changed the default value of bvactive from "true" to "false". This avoids unnecessarily clearing bounding volume hierarchy visualization flags at every simulation step, which can be a bottleneck for models with large meshes. 12. ed13bf56 Mocap bodies and their dof-less descendants are now the root of their own weld group: mjModel.body_weldid of a mocap body equals its own id rather than 0. Consequences: dragging a mocap body into sleeping objects now wakes them; children of mocap bodies receive standard parent-child collision filtering; mocap bodies no longer count as static geometry for ray casting, and contact-matching sensors aggregate their contacts under the mocap body rather than the world; and geom pairs where neither body can move no longer generate contacts.

Models

  1. 2a3554c8 Added drape example model: three cloths draped over a sphere, demonstrating passive collisions. It replaces the sphere_passive model, which has been removed.
  2. 55d13aec Added bag example model: a cloth bag, held open by pinning the ring of vertices around its mouth, catching the standard humanoid dropped in from above. Unlike the poncho models, which are bending-only, this model exercises the 2D stretch elasticity of a flex.

Rendering

[!WARNING] Breaking API changes

  1. cc7fb98c Added explicit texture coordinates to built-in geometries (Plane, Box, Sphere, Ellipsoid, Capsule, Cylinder) in both the Classic renderer and Filament. 2D textures applied to primitive shapes will look different as textures are mapped using canonical UV parameterizations rather than projecting onto the $x,y$ plane.

    For finite planes, textures are now anchored to the bottom-left corner instead of the center. This will cause the most common visual breakage, as common procedural checker textures will be phase shifted. Infinite planes continue to be anchored at the origin with no visual changes.

... (truncated)

Changelog

Sourced from mujoco's changelog.

Version 3.12.0 (August 20, 2026)

General ^^^^^^^

  1. :commit:3f8db4c1 The MJCF grammar is now defined in a single source of truth schema file, src/xml/mjcf.schema <https://github.com/google-deepmind/mujoco/tree/main/src/xml/mjcf.schema>__. The parser's grammar table, presence constraints, keyword maps, typed attribute bindings and save policies are generated from it and gated by tests, as are the schema's enum keywords and declared defaults against the C headers and default-constructors.

.. admonition:: Breaking API changes :class: attention

  1. :commit:6fe04aa8 Removed the custom binary texture format (image/vnd.mujoco.texture) and the automatic fallback to custom textures when loading files with unrecognized extensions. Textures can now only be loaded from PNG (image/png) and KTX (image/ktx) files.

Actuation ^^^^^^^^^ 3. :commit:279df98c Added the :ref:pid<actuator-pid> actuator: a PID controller with real position and velocity setpoint inputs, optional integral action (:ref:ki<actuator-pid-ki>, integrating the position error with :ref:imax<actuator-pid-imax> anti-windup), setpoint rate limiting (:ref:slewmax<actuator-pid-slewmax>), and an optional feedforward input. This subsumes the functionality of the mujoco.pid plugin with proper activation state: correct under all integrators and visible to keyframes and sensors. With a zero velocity setpoint it is identical to :ref:position<actuator-position>. The input signature is any subset of [pos, vel, ff], selected by :ref:input<actuator-pid-input>; absent setpoint inputs are fixed at zero, so the control vector contains no inert entries. 4. :commit:2f1843f4 The :ref:dcmotor<actuator-dcmotor> on-board controller is redesigned: the :ref:input<actuator-dcmotor-input> attribute selects any subset of [pos, vel, ff, voltage], where pos and vel are setpoints for the controller, ff is a torque feedforward, and voltage is the raw terminal voltage (the default, a plain voltage-commanded motor). Controller gains are in torque space, as for :ref:pid<actuator-pid>, and the drive voltage compensates back-EMF as in a current-controlled driver: commanded torque is delivered exactly until a limit is reached. The keyword input="none" selects the empty signature: the actuator has no control inputs and is purely passive, so friction, cogging and back-EMF braking can be used as passive joint forces.

.. admonition:: Breaking API changes :class: attention

  1. :commit:2f1843f4 The mode-flag semantics of :ref:dcmotor/input<actuator-dcmotor-input> ("voltage", "position", "velocity", selecting the interpretation of a single control) are replaced by input signatures, and the controller gains changed from voltage space to torque space. The old velocity mode's integral term (integrated-velocity tracking) is retired without replacement; the integrator always accumulates position error.

    Migration: Voltage-commanded motors (the default) are unchanged. Replace input="position" with input="pos" and input="velocity" with input="vel", and multiply the controller gains by :math:K/R (torque per volt). The motor's back-EMF damping, previously felt in addition to the controller's damping, is now compensated: to preserve behavior when the velocity setpoint is zero, add :math:K^2/R to the

... (truncated)

Commits
  • 13827e9 Update changelog for the 3.12.0 release.
  • a06a76d Fix some issues preventing the MJDB resolver from correctly opening files.
  • 17e6d44 Support variable accurate contact depth in multicontact.
  • f334fc9 Merge pull request #3480 from smallquail:trashbag
  • b3a368b Initial implementation for filament renderer.
  • 3dd2bc3 Studio: Improve UI state saving and restoration
  • a4f0afc Import Warp v1.16.0
  • 021c804 Update dependencies ahead of the 3.12.0 release.
  • 62f05c1 Cast mjx objtype_data lookup keys to int for pybind11 v1.18 compatibility.
  • e3590b7 Add pyrefly suppressions
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [mujoco](https://github.com/google-deepmind/mujoco) from 3.3.7 to 3.12.0.
- [Release notes](https://github.com/google-deepmind/mujoco/releases)
- [Changelog](https://github.com/google-deepmind/mujoco/blob/main/doc/changelog.rst)
- [Commits](google-deepmind/mujoco@3.3.7...3.12.0)

---
updated-dependencies:
- dependency-name: mujoco
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 2, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 15, 2026

Copy link
Copy Markdown
Contributor Author

Dependabot tried to update this pull request, but something went wrong. We're looking into it, but in the meantime you can retry the update by commenting @dependabot recreate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants