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