diff --git a/doc/changelog.rst b/doc/changelog.rst index f49e2d18..39f6ecff 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -2,8 +2,11 @@ Changelog ========= -Upcoming version (not yet released) ------------------------------------ +Version 2.3.6 (June 20, 2023) +----------------------------- + +.. note:: + MuJoCo 2.3.6 is the last version to officially support Python 3.7. .. youtube:: ZppeDArq6AU :align: right @@ -12,22 +15,22 @@ Upcoming version (not yet released) Models ^^^^^^ -- Added `3x3x3 cube `__ example model. See - `README `__ for details. +1. Added `3x3x3 cube `__ example model. See + `README `__ for details. Bug fixes ^^^^^^^^^ -- Fixed a bug that was causing an incorrect computation of the mesh bounding box and coordinate frame if the volume was - invalid. In such case, now MuJoCo only accepts a non-watertight geometry if - :ref:`shellinertia` is equal to ``true``. -- Fixed the sparse Jacobian multiplication logic that is used to compute derivatives for tendon damping and fluid force, - which affects the behaviour of the :ref:`implicit and implicitfast integrators`. -- Fixes to :ref:`mj_ray`, in line with geom visualisation conventions: +2. Fixed a bug that was causing an incorrect computation of the mesh bounding box and coordinate frame if the volume was + invalid. In such case, now MuJoCo only accepts a non-watertight geometry if + :ref:`shellinertia` is equal to ``true``. +#. Fixed the sparse Jacobian multiplication logic that is used to compute derivatives for tendon damping and fluid force, + which affects the behaviour of the :ref:`implicit and implicitfast integrators`. +#. Fixes to :ref:`mj_ray`, in line with geom visualisation conventions: - - Planes and height-fields respect the ``geom_group`` and ``flg_static`` arguments. Before this change, rays would - intersect planes and height-fields unconditionally. - - ``flg_static`` now apllies to all static geoms, not just those which are direct children of the world body. + - Planes and height-fields respect the ``geom_group`` and ``flg_static`` arguments. Before this change, rays would + intersect planes and height-fields unconditionally. + - ``flg_static`` now applies to all static geoms, not just those which are direct children of the world body. .. youtube:: hqIMTNGaLF4 :align: right @@ -36,9 +39,9 @@ Bug fixes Plugins ^^^^^^^ -- Added touch-grid sensor plugin. See `documentation `_ - for details, and associated `touch_grid.xml `_ - example model. The plugin includes `in-scene visualisation `_. +5. Added touch-grid sensor plugin. See `documentation `_ + for details, and associated `touch_grid.xml `_ + example model. The plugin includes `in-scene visualisation `_. Simulate ^^^^^^^^ @@ -47,42 +50,42 @@ Simulate :align: right :width: 240px -- Added Visualization tab to simulate UI, corresponding to elements of the :ref:`visual` MJCF element. After - modifying values in the GUI, a saved XML will contain the new values. The modifyable members of - :ref:`mjStatistic` (:ref:`extent`, :ref:`meansize` and - :ref:`center`) are computed by the compiler and therefore do not have defaults. In order for these - attributes to appear in the saved XML, a value must be specified in the loaded XML. +6. Added Visualization tab to simulate UI, corresponding to elements of the :ref:`visual` MJCF element. After + modifying values in the GUI, a saved XML will contain the new values. The modifyable members of + :ref:`mjStatistic` (:ref:`extent`, :ref:`meansize` and + :ref:`center`) are computed by the compiler and therefore do not have defaults. In order for these + attributes to appear in the saved XML, a value must be specified in the loaded XML. .. image:: images/changelog/simulate_text_width.png :align: right :width: 380px :alt: Before / After -- Increased text width for UI elements in the default spacing. [before / after]: +7. Increased text width for UI elements in the default spacing. [before / after]: General ^^^^^^^ -- Added :ref:`mj_getState` and :ref:`mj_setState` for getting and setting the simulation state as a concatenated vector - of floating point numbers. See the :ref:`State` section for details. -- Added :ref:`mjContact.solreffriction`, allowing different :ref:`solref` parameters for the normal - and frictional axes of contacts when using :ref:`elliptic friction cones`. This attribute is required - for elastic frictional collisions, see associated - `example model `__ mimicking the - spin-bounce recoil behaviour of `elastic rubber balls `__. - This is an advanced option currently only supported by explicit :ref:`contact pairs`, using the - :ref:`solreffriction` attribute. -- Added :ref:`mjd_inverseFD` for finite-differenced inverse-dynamics derivatives. -- Added functions for operations on banded-then-dense "arrowhead" matrices. Such matrices are common when doing direct - trajectory optimization. See :ref:`mju_cholFactorBand` documentation for details. -- Added :ref:`mj_multiRay` function for intersecting multiple rays emanating from a single point. - This is significantly faster than calling :ref:`mj_ray` multiple times. -- Ray-mesh collisions are now up to 10x faster, using a bounding volume hierarchy of mesh faces. -- Increased ``mjMAXUIITEM`` (maximum number of UI elements per section in Simulate) to 100. -- Added :ref:`documentation` for resource providers. -- Changed the formula for :ref:`mju_sigmoid`, a finite-support sigmoid :math:`s \colon \mathbf R \rightarrow [0, 1]`. - Previously, the smooth part consisted of two stitched quadratics, once continuously differentiable. - It is now a single quintic, twice continuously differentiable: +8. Added :ref:`mj_getState` and :ref:`mj_setState` for getting and setting the simulation state as a concatenated vector + of floating point numbers. See the :ref:`State` section for details. +#. Added :ref:`mjContact.solreffriction`, allowing different :ref:`solref` parameters for the normal + and frictional axes of contacts when using :ref:`elliptic friction cones`. This attribute is required + for elastic frictional collisions, see associated + `example model `__ mimicking the + spin-bounce recoil behaviour of `elastic rubber balls `__. + This is an advanced option currently only supported by explicit :ref:`contact pairs`, using the + :ref:`solreffriction` attribute. +#. Added :ref:`mjd_inverseFD` for finite-differenced inverse-dynamics derivatives. +#. Added functions for operations on banded-then-dense "arrowhead" matrices. Such matrices are common when doing direct + trajectory optimization. See :ref:`mju_cholFactorBand` documentation for details. +#. Added :ref:`mj_multiRay` function for intersecting multiple rays emanating from a single point. + This is significantly faster than calling :ref:`mj_ray` multiple times. +#. Ray-mesh collisions are now up to 10x faster, using a bounding volume hierarchy of mesh faces. +#. Increased ``mjMAXUIITEM`` (maximum number of UI elements per section in Simulate) to 100. +#. Added :ref:`documentation` for resource providers. +#. Changed the formula for :ref:`mju_sigmoid`, a finite-support sigmoid :math:`s \colon \mathbf R \rightarrow [0, 1]`. + Previously, the smooth part consisted of two stitched quadratics, once continuously differentiable. + It is now a single quintic, twice continuously differentiable: .. math:: s(x) = @@ -91,21 +94,22 @@ General 6x^5 - 15x^4 + 10x^3, & 0 \lt & x \lt 1 \\ 1, & 1 \le & x \qquad \end{cases} -- Added optional :ref:`tausmooth` attribute to muscle actuators. When positive, the - time-constant :math:`\tau` of muscle activation/deactivation uses :ref:`mju_sigmoid` to transition smoothly - between the two extremal values given by the `Millard et al. (2013) `__ muscle - model, within a range of width tausmooth. See :ref:`Muscle actuators` for more details. - Relatedly, :ref:`mju_muscleDynamics` now takes 3 parameters instead of 2, adding the new smoothing-width parameter. -- Moved public C macro definitions out of mujoco.h into a new public header file called - `mjmacro.h `__. The new file - is included by mujoco.h so this change does not break existing user code. -- Added instrumentation for the `Address Sanitizer (ASAN) `__ and - `Memory Sanitizer (MSAN) `__ to detect memory bugs when allocating - from the ``mjData`` stack and arena. -- Removed ``pstack`` and ``parena`` from the output of ``mj_printData``, since these are implementation details of the - ``mjData`` allocators that are affected by diagnostic paddings in instrumented builds. -- Removed the ``mj_activate`` and ``mj_deactivate`` functions. These had been kept around for compatibility with old - user code from when MuJoCo was closed source, but have been no-op functions since open sourcing. + +17. Added optional :ref:`tausmooth` attribute to muscle actuators. When positive, the + time-constant :math:`\tau` of muscle activation/deactivation uses :ref:`mju_sigmoid` to transition smoothly + between the two extremal values given by the `Millard et al. (2013) `__ muscle + model, within a range of width tausmooth. See :ref:`Muscle actuators` for more details. + Relatedly, :ref:`mju_muscleDynamics` now takes 3 parameters instead of 2, adding the new smoothing-width parameter. +#. Moved public C macro definitions out of mujoco.h into a new public header file called + `mjmacro.h `__. The new file + is included by mujoco.h so this change does not break existing user code. +#. Added instrumentation for the `Address Sanitizer (ASAN) `__ and + `Memory Sanitizer (MSAN) `__ to detect memory bugs when allocating + from the ``mjData`` stack and arena. +#. Removed ``pstack`` and ``parena`` from the output of ``mj_printData``, since these are implementation details of the + ``mjData`` allocators that are affected by diagnostic paddings in instrumented builds. +#. Removed the ``mj_activate`` and ``mj_deactivate`` functions. These had been kept around for compatibility with old + user code from when MuJoCo was closed source, but have been no-op functions since open sourcing. Version 2.3.5 (April 25, 2023)