diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake index 5cdc33cb..83120cc7 100644 --- a/cmake/MujocoDependencies.cmake +++ b/cmake/MujocoDependencies.cmake @@ -39,12 +39,12 @@ set(MUJOCO_DEP_VERSION_qhull CACHE STRING "Version of `qhull` to be fetched." ) set(MUJOCO_DEP_VERSION_Eigen3 - 4be7e6b4e0a82853e853c0c7c4ef72f395e1f497 + 4033cfcc1dd45b3cdf7285afd93556f2cfbe9425 CACHE STRING "Version of `Eigen3` to be fetched." ) set(MUJOCO_DEP_VERSION_abseil - 76bb24329e8bf5f39704eb10d21b9a80befa7c81 # LTS 20250512.0 + 987c57f325f7fa8472fa84e1f885f7534d391b0d # LTS 20250814.0 CACHE STRING "Version of `abseil` to be fetched." ) diff --git a/doc/changelog.rst b/doc/changelog.rst index dd3326d9..030f8c32 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -2,44 +2,44 @@ Changelog ========= -Upcoming version (not yet released) +3.3.6 (September 9, 2025) ----------------------------------- General ^^^^^^^ -- Constraint island discovery and construction, previously an experimental feature, is now :ref:`documented` - and promoted to default; disable it with :ref:`option/flag/island `. We expect islanding to be - a strict improvement over the monolithic constraint solver, please let us know if you experience any issues. -- :ref:`Contact sensor` :at-val:`subtree1/subtree2` specification is now available for any body, not - just direct children of the world. +1. Constraint island discovery and construction, previously an experimental feature, is now :ref:`documented` + and promoted to default; disable it with :ref:`option/flag/island `. We expect islanding to be + a strict improvement over the monolithic constraint solver, please let us know if you experience any issues. +2. :ref:`Contact sensor` :at-val:`subtree1/subtree2` specification is now available for any body, not + just direct children of the world. .. admonition:: Breaking API changes :class: attention - - The update of ``mjData.qacc_warmstart`` was moved from the end of the solver call (:ref:`mj_fwdConstraint`) to the - end of :ref:`mj_step`, and is now updated with all other state variables. This change makes :ref:`mj_forward` - fully idempotent. + 3. The update of ``mjData.qacc_warmstart`` was moved from the end of the solver call (:ref:`mj_fwdConstraint`) to + the end of :ref:`mj_step`, and is now updated with all other state variables. This change makes :ref:`mj_forward` + fully idempotent. - Before this change, calling :ref:`mj_forward` repeatedly would make the constraint solver converge, - since each subsequent call would start from the previously updated ``qacc_warmstart`` value. - Indeed, this is precisely what happened in the viewer, which calls :ref:`mj_forward` repeatedly in PAUSE mode. + Before this change, calling :ref:`mj_forward` repeatedly would make the constraint solver converge, + since each subsequent call would start from the previously updated ``qacc_warmstart`` value. + Indeed, this is precisely what happened in the viewer, which calls :ref:`mj_forward` repeatedly in PAUSE mode. - **Migration:** If your code depended on this behavior, you can recover it by updating manually after each - :ref:`mj_forward`: ``qacc_warmstart ← qacc``. The behavior is available in :ref:`simulate` by - clicking the "Pause update" toggle (off by default). + **Migration:** If your code depended on this behavior, you can recover it by updating manually after each + :ref:`mj_forward`: ``qacc_warmstart ← qacc``. The behavior is available in :ref:`simulate` by + clicking the "Pause update" toggle (off by default). - Furthermore, this change has a numerical impact on the output of the :ref:`RK4 ` integrator. Before - this change, due to the ``qacc_warmstart`` update occurring after each of the four Runge-Kutta substeps, the solver - convergence of RK4 was faster, at the cost of unprincipled integration. This change makes the RK4 integration - principled and well-defined. Since this change to RK4 is effectively a bug fix, migration to the previous behavior - is not provided. + Furthermore, this change has a numerical impact on the output of the :ref:`RK4 ` integrator. + Before this change, due to the ``qacc_warmstart`` update occurring after each of the four Runge-Kutta substeps, + the solver convergence of RK4 was faster, at the cost of unprincipled integration. This change makes the RK4 + integration principled and well-defined. Since this change to RK4 is effectively a bug fix, migration to the + previous behavior is not provided. - - The ``mjDSBL_PASSIVE`` flag for disabling passive forces was removed and replaced by - :ref:`mjDSBL_SPRING` and :ref:`mjDSBL_DAMPER` with corresponding - :ref:`mjcf` :ref:`attributes`. Each flag disables only joint and tendon - springs or dampers, respectively. When both flags are set, **all** passive forces are disabled, including gravity - compensation, fluid forces, forces computed by the :ref:`mjcb_passive` callback, and forces computed by - :ref:`plugins ` when passed the :ref:`mjPLUGIN_PASSIVE` capability flag. + 4. The ``mjDSBL_PASSIVE`` flag for disabling passive forces was removed and replaced by + :ref:`mjDSBL_SPRING` and :ref:`mjDSBL_DAMPER` with corresponding + :ref:`mjcf` :ref:`attributes`. Each flag disables only joint and tendon + springs or dampers, respectively. When both flags are set, **all** passive forces are disabled, including gravity + compensation, fluid forces, forces computed by the :ref:`mjcb_passive` callback, and forces computed by + :ref:`plugins ` when passed the :ref:`mjPLUGIN_PASSIVE` capability flag. **Migration:** Set both flags to recover the behavior of the previous flag. @@ -47,31 +47,31 @@ General .. admonition:: Breaking ABI changes :class: attention - - Removed ``mjMOUSE_SELECT`` flag for :ref:`mjtMouse` as it is no longer in use. + 5. Removed ``mjMOUSE_SELECT`` flag for :ref:`mjtMouse` as it is no longer in use. - - The promotion of islanding to default involved removing the enable flag ``mjENBL_ISLAND`` and - converting it to a disable flag :ref:`mjDSBL_ISLAND `. + 6. The promotion of islanding to default involved removing the enable flag ``mjENBL_ISLAND`` and + converting it to a disable flag :ref:`mjDSBL_ISLAND `. -- Added support for shells with a curved reference configuration. See this `example - `__. -- Added experimental option for :ref:`passive` contacts involving flexes. +7. Added support for shells with a curved reference configuration. See this `example + `__. +8. Added experimental option for :ref:`passive` contacts involving flexes. -- Added support for assigning a default material to a mesh asset using the :ref:`mesh/material ` - attribute. +9. Added support for assigning a default material to a mesh asset using the :ref:`mesh/material ` + attribute. MJX ^^^ -- Promote ``ten_length`` to the public MJX API. Add Warp support for ``mjx.tendon``. +10. Promote ``ten_length`` to the public MJX API. Add Warp support for ``mjx.tendon``. .. admonition:: Breaking API changes :class: attention - - ``ten_length`` was moved from ``mjx.Data._impl.ten_length`` to a public field ``mjx.Data.ten_length``. + 11. ``ten_length`` was moved from ``mjx.Data._impl.ten_length`` to a public field ``mjx.Data.ten_length``. Bug fixes ^^^^^^^^^ -- Fixed a latent bug where MjData objects were not serialized correctly by the Python bindings when islanding was - enabled. +12. Fixed a latent bug where MjData objects were not serialized correctly by the Python bindings when islanding was + enabled. Version 3.3.5 (August 8, 2025) diff --git a/python/mujoco/CMakeLists.txt b/python/mujoco/CMakeLists.txt index 3928963c..916d18a4 100644 --- a/python/mujoco/CMakeLists.txt +++ b/python/mujoco/CMakeLists.txt @@ -140,7 +140,7 @@ findorfetch( GIT_REPO https://github.com/abseil/abseil-cpp GIT_TAG - 76bb24329e8bf5f39704eb10d21b9a80befa7c81 # LTS 20250512.0 + 987c57f325f7fa8472fa84e1f885f7534d391b0d # LTS 20250814.0.0 TARGETS ${MUJOCO_PYTHON_ABSL_TARGETS} EXCLUDE_FROM_ALL @@ -173,7 +173,7 @@ findorfetch( GIT_REPO https://gitlab.com/libeigen/eigen GIT_TAG - 4be7e6b4e0a82853e853c0c7c4ef72f395e1f497 + 4033cfcc1dd45b3cdf7285afd93556f2cfbe9425 TARGETS Eigen3::Eigen EXCLUDE_FROM_ALL @@ -191,7 +191,7 @@ findorfetch( GIT_REPO https://github.com/pybind/pybind11 GIT_TAG - f0ecf21301c0c24bc78b8b310347c7507d9f41d0 # v3.0.0 + e86205cb2ba070755d582856430c0f83c0af6694 # v3.0.1 TARGETS pybind11::pybind11_headers EXCLUDE_FROM_ALL