Update changelog for the 3.8.1 release.

PiperOrigin-RevId: 913578392
Change-Id: I7367ff9044fd52039cec8dd492b37df2153a6d7f
This commit is contained in:
Michael Moss
2026-05-11 02:14:17 -07:00
committed by Copybara-Service
parent 5ee8bd7b9c
commit 688209574d
+31 -31
View File
@@ -2,54 +2,54 @@
Changelog
=========
Upcoming version (not yet released)
-----------------------------------
Version 3.8.1 (May 11, 2026)
----------------------------
General
^^^^^^^
- Added island support for the :ref:`PGS solver<soAlgorithms>`.
- The :ref:`PGS solver<soAlgorithms>` now iterates over constraints in pseudo-random order, improving performance by
~20%.
- Added support for :ref:`elastic2d<flex-elasticity-elastic2d>` for trilinear and quadratic flex
:ref:`dofs<body-flexcomp-dof>`.
- :ref:`Midpoint integration<geMidpoint>` is now restricted to the ``implicitfast``
:ref:`integrator<geIntegrators>` and is disabled when fluid forces are active
(nonzero :ref:`density<option-density>` or :ref:`viscosity<option-viscosity>`).
Midpoint integration treats external forces as zero-order-hold constants, which causes
energy gain in the presence of contacts and in fluid media.
- Added :ref:`mju_sym2dense`, converting a lower-triangular, implicitly symmetric CSR matrix to a dense
symmetric matrix. The inertia matrix ``mjData.M`` is an example of such a matrix.
- Added :ref:`mjs_getOriginSpec`, returning the spec that originally defined an element, prior to attachment. This is in
contrast to :ref:`mjs_getSpec` which returns the spec currently owning the element. If the element is not the result
of an attach operation, the functions are identical.
1. Added island support for the :ref:`PGS solver<soAlgorithms>`.
2. The :ref:`PGS solver<soAlgorithms>` now iterates over constraints in pseudo-random order, improving performance by
~20%.
3. Added support for :ref:`elastic2d<flex-elasticity-elastic2d>` for trilinear and quadratic flex
:ref:`dofs<body-flexcomp-dof>`.
4. :ref:`Midpoint integration<geMidpoint>` is now restricted to the ``implicitfast``
:ref:`integrator<geIntegrators>` and is disabled when fluid forces are active
(nonzero :ref:`density<option-density>` or :ref:`viscosity<option-viscosity>`).
Midpoint integration treats external forces as zero-order-hold constants, which causes
energy gain in the presence of contacts and in fluid media.
5. Added :ref:`mjs_getOriginSpec`, returning the spec that originally defined an element, prior to attachment. This is
in contrast to :ref:`mjs_getSpec` which returns the spec currently owning the element. If the element is not the
result of an attach operation, the functions are identical.
6. Added :ref:`mju_sym2dense`, converting a lower-triangular, implicitly symmetric CSR matrix to a dense symmetric
matrix. The inertia matrix ``mjData.M`` is an example of such a matrix.
.. admonition:: Future breaking API changes
:class: warning
- The introduction of :ref:`mju_sym2dense` is a step towards the removal of the legacy-format ``mjData.qM`` in favor
of the CSR-format ``mjData.M``. This removal will involve a future breaking change to :ref:`mj_fullM` (which
currently accepts a ``qM``-like matrix as an argument). To prevent a future breakage, replace
``mj_fullM(m, dst, d->qM)`` with
|br| ``mju_sym2dense(dst, d->M, m->nv, m->M_rownnz, m->M_rowadr, m->M_colind)``.
7. The introduction of :ref:`mju_sym2dense` is a step towards the removal of the legacy-format ``mjData.qM`` in favor
of the CSR-format ``mjData.M``. This removal will involve a future breaking change to :ref:`mj_fullM` (which
currently accepts a ``qM``-like matrix as an argument). To prevent a future breakage, replace
``mj_fullM(m, dst, d->qM)`` with
|br| ``mju_sym2dense(dst, d->M, m->nv, m->M_rownnz, m->M_rowadr, m->M_colind)``.
Bug fixes
^^^^^^^^^
- Fixed default for multiccd in :doc:`mjcPhysics <OpenUSD/mjcPhysics>`.
8. Fixed default for multiccd in :doc:`mjcPhysics <OpenUSD/mjcPhysics>`.
Python
^^^^^^
- Added ``MjSpec.encode`` method, wrapping :ref:`mj_encode`.
- Added ``mujoco.MjVfs`` Python binding to interact with the Virtual File System directly from Python.
See :ref:`Virtual File System <PyVFS>` for usage details.
9. Added ``MjSpec.encode`` method, wrapping :ref:`mj_encode`.
10. Added ``mujoco.MjVfs`` Python binding to interact with the Virtual File System directly from Python.
See :ref:`Virtual File System <PyVFS>` for usage details.
.. warning::
The previous way of passing assets via a dictionary mapping asset names to bytes is **deprecated** and will be
removed in an upcoming release. You cannot specify both the ``assets`` dictionary and the ``vfs`` argument at the
same time. ``MjVfs`` should be used as a drop-in replacement.
.. warning::
The previous way of passing assets via a dictionary mapping asset names to bytes is **deprecated** and will be
removed in an upcoming release. You cannot specify both the ``assets`` dictionary and the ``vfs`` argument at the same
time. ``MjVfs`` should be used as a drop-in replacement.
Version 3.8.0 (April 24, 2026)
------------------------------