2
2
Changelog
3
3
=========
4
4
5
- Upcoming version (not yet released)
6
- -----------------------------------
5
+ Version 2.3.6 (June 20, 2023)
6
+ -----------------------------
7
+
8
+ .. note ::
9
+ MuJoCo 2.3.6 is the last version to officially support Python 3.7.
7
10
8
11
.. youtube :: ZppeDArq6AU
9
12
:align: right
@@ -12,22 +15,22 @@ Upcoming version (not yet released)
12
15
Models
13
16
^^^^^^
14
17
15
- - Added `3x3x3 cube <https://github.com/deepmind/mujoco/blob/main/model/cube/cube_3x3x3.xml >`__ example model. See
16
- `README <https://github.com/deepmind/mujoco/blob/main/model/cube/README.md >`__ for details.
18
+ 1. Added `3x3x3 cube <https://github.com/deepmind/mujoco/blob/main/model/cube/cube_3x3x3.xml >`__ example model. See
19
+ `README <https://github.com/deepmind/mujoco/blob/main/model/cube/README.md >`__ for details.
17
20
18
21
Bug fixes
19
22
^^^^^^^^^
20
23
21
- - Fixed a bug that was causing an incorrect computation of the mesh bounding box and coordinate frame if the volume was
22
- invalid. In such case, now MuJoCo only accepts a non-watertight geometry if
23
- :ref: `shellinertia<body-geom-shellinertia> ` is equal to ``true ``.
24
- - Fixed the sparse Jacobian multiplication logic that is used to compute derivatives for tendon damping and fluid force,
25
- which affects the behaviour of the :ref: `implicit and implicitfast integrators<geIntegration> `.
26
- - Fixes to :ref: `mj_ray `, in line with geom visualisation conventions:
24
+ 2. Fixed a bug that was causing an incorrect computation of the mesh bounding box and coordinate frame if the volume was
25
+ invalid. In such case, now MuJoCo only accepts a non-watertight geometry if
26
+ :ref: `shellinertia<body-geom-shellinertia> ` is equal to ``true ``.
27
+ #. Fixed the sparse Jacobian multiplication logic that is used to compute derivatives for tendon damping and fluid force,
28
+ which affects the behaviour of the :ref: `implicit and implicitfast integrators<geIntegration> `.
29
+ #. Fixes to :ref: `mj_ray `, in line with geom visualisation conventions:
27
30
28
- - Planes and height-fields respect the ``geom_group `` and ``flg_static `` arguments. Before this change, rays would
29
- intersect planes and height-fields unconditionally.
30
- - ``flg_static `` now apllies to all static geoms, not just those which are direct children of the world body.
31
+ - Planes and height-fields respect the ``geom_group `` and ``flg_static `` arguments. Before this change, rays would
32
+ intersect planes and height-fields unconditionally.
33
+ - ``flg_static `` now applies to all static geoms, not just those which are direct children of the world body.
31
34
32
35
.. youtube :: hqIMTNGaLF4
33
36
:align: right
@@ -36,9 +39,9 @@ Bug fixes
36
39
Plugins
37
40
^^^^^^^
38
41
39
- - Added touch-grid sensor plugin. See `documentation <https://github.com/deepmind/mujoco/blob/main/plugin/sensor/README.md >`_
40
- for details, and associated `touch_grid.xml <https://github.com/deepmind/mujoco/blob/main/model/plugin/touch_grid.xml >`_
41
- example model. The plugin includes `in-scene visualisation <https://youtu.be/0LOJ3WMnqeA >`_.
42
+ 5. Added touch-grid sensor plugin. See `documentation <https://github.com/deepmind/mujoco/blob/main/plugin/sensor/README.md >`_
43
+ for details, and associated `touch_grid.xml <https://github.com/deepmind/mujoco/blob/main/model/plugin/touch_grid.xml >`_
44
+ example model. The plugin includes `in-scene visualisation <https://youtu.be/0LOJ3WMnqeA >`_.
42
45
43
46
Simulate
44
47
^^^^^^^^
@@ -47,42 +50,42 @@ Simulate
47
50
:align: right
48
51
:width: 240px
49
52
50
- - Added Visualization tab to simulate UI, corresponding to elements of the :ref: `visual<visual> ` MJCF element. After
51
- modifying values in the GUI, a saved XML will contain the new values. The modifyable members of
52
- :ref: `mjStatistic ` (:ref: `extent<statistic-extent> `, :ref: `meansize<statistic-meansize> ` and
53
- :ref: `center<statistic-center> `) are computed by the compiler and therefore do not have defaults. In order for these
54
- attributes to appear in the saved XML, a value must be specified in the loaded XML.
53
+ 6. Added Visualization tab to simulate UI, corresponding to elements of the :ref: `visual<visual> ` MJCF element. After
54
+ modifying values in the GUI, a saved XML will contain the new values. The modifyable members of
55
+ :ref: `mjStatistic ` (:ref: `extent<statistic-extent> `, :ref: `meansize<statistic-meansize> ` and
56
+ :ref: `center<statistic-center> `) are computed by the compiler and therefore do not have defaults. In order for these
57
+ attributes to appear in the saved XML, a value must be specified in the loaded XML.
55
58
56
59
.. image :: images/changelog/simulate_text_width.png
57
60
:align: right
58
61
:width: 380px
59
62
:alt: Before / After
60
63
61
- - Increased text width for UI elements in the default spacing. [before / after]:
64
+ 7. Increased text width for UI elements in the default spacing. [before / after]:
62
65
63
66
General
64
67
^^^^^^^
65
68
66
- - Added :ref: `mj_getState ` and :ref: `mj_setState ` for getting and setting the simulation state as a concatenated vector
67
- of floating point numbers. See the :ref: `State<geState> ` section for details.
68
- - Added :ref: `mjContact.solreffriction<mjContact> `, allowing different :ref: `solref<CSolver> ` parameters for the normal
69
- and frictional axes of contacts when using :ref: `elliptic friction cones<option-cone> `. This attribute is required
70
- for elastic frictional collisions, see associated
71
- `example model <https://github.com/deepmind/mujoco/blob/main/test/engine/testdata/spin_recoil.xml >`__ mimicking the
72
- spin-bounce recoil behaviour of `elastic rubber balls <https://www.youtube.com/watch?v=uFLJcRegIVQ&t=3s >`__.
73
- This is an advanced option currently only supported by explicit :ref: `contact pairs<contact-pair> `, using the
74
- :ref: `solreffriction<contact-pair-solreffriction> ` attribute.
75
- - Added :ref: `mjd_inverseFD ` for finite-differenced inverse-dynamics derivatives.
76
- - Added functions for operations on banded-then-dense "arrowhead" matrices. Such matrices are common when doing direct
77
- trajectory optimization. See :ref: `mju_cholFactorBand ` documentation for details.
78
- - Added :ref: `mj_multiRay ` function for intersecting multiple rays emanating from a single point.
79
- This is significantly faster than calling :ref: `mj_ray ` multiple times.
80
- - Ray-mesh collisions are now up to 10x faster, using a bounding volume hierarchy of mesh faces.
81
- - Increased ``mjMAXUIITEM `` (maximum number of UI elements per section in Simulate) to 100.
82
- - Added :ref: `documentation<exProvider> ` for resource providers.
83
- - Changed the formula for :ref: `mju_sigmoid `, a finite-support sigmoid :math: `s \colon \mathbf R \rightarrow [0 , 1 ]`.
84
- Previously, the smooth part consisted of two stitched quadratics, once continuously differentiable.
85
- It is now a single quintic, twice continuously differentiable:
69
+ 8. Added :ref: `mj_getState ` and :ref: `mj_setState ` for getting and setting the simulation state as a concatenated vector
70
+ of floating point numbers. See the :ref: `State<geState> ` section for details.
71
+ #. Added :ref: `mjContact.solreffriction<mjContact> `, allowing different :ref: `solref<CSolver> ` parameters for the normal
72
+ and frictional axes of contacts when using :ref: `elliptic friction cones<option-cone> `. This attribute is required
73
+ for elastic frictional collisions, see associated
74
+ `example model <https://github.com/deepmind/mujoco/blob/main/test/engine/testdata/spin_recoil.xml >`__ mimicking the
75
+ spin-bounce recoil behaviour of `elastic rubber balls <https://www.youtube.com/watch?v=uFLJcRegIVQ&t=3s >`__.
76
+ This is an advanced option currently only supported by explicit :ref: `contact pairs<contact-pair> `, using the
77
+ :ref: `solreffriction<contact-pair-solreffriction> ` attribute.
78
+ #. Added :ref: `mjd_inverseFD ` for finite-differenced inverse-dynamics derivatives.
79
+ #. Added functions for operations on banded-then-dense "arrowhead" matrices. Such matrices are common when doing direct
80
+ trajectory optimization. See :ref: `mju_cholFactorBand ` documentation for details.
81
+ #. Added :ref: `mj_multiRay ` function for intersecting multiple rays emanating from a single point.
82
+ This is significantly faster than calling :ref: `mj_ray ` multiple times.
83
+ #. Ray-mesh collisions are now up to 10x faster, using a bounding volume hierarchy of mesh faces.
84
+ #. Increased ``mjMAXUIITEM `` (maximum number of UI elements per section in Simulate) to 100.
85
+ #. Added :ref: `documentation<exProvider> ` for resource providers.
86
+ #. Changed the formula for :ref: `mju_sigmoid `, a finite-support sigmoid :math: `s \colon \mathbf R \rightarrow [0 , 1 ]`.
87
+ Previously, the smooth part consisted of two stitched quadratics, once continuously differentiable.
88
+ It is now a single quintic, twice continuously differentiable:
86
89
87
90
.. math ::
88
91
s(x) =
@@ -91,21 +94,22 @@ General
91
94
6 x^5 - 15 x^4 + 10 x^3 , & 0 \lt & x \lt 1 \\
92
95
1 , & 1 \le & x \qquad
93
96
\end {cases}
94
- - Added optional :ref: `tausmooth<actuator-muscle-tausmooth> ` attribute to muscle actuators. When positive, the
95
- time-constant :math: `\tau ` of muscle activation/deactivation uses :ref: `mju_sigmoid ` to transition smoothly
96
- between the two extremal values given by the `Millard et al. (2013) <https://doi.org/10.1115/1.4023390 >`__ muscle
97
- model, within a range of width tausmooth. See :ref: `Muscle actuators<CMuscle> ` for more details.
98
- Relatedly, :ref: `mju_muscleDynamics ` now takes 3 parameters instead of 2, adding the new smoothing-width parameter.
99
- - Moved public C macro definitions out of mujoco.h into a new public header file called
100
- `mjmacro.h <https://github.com/deepmind/mujoco/blob/main/include/mujoco/mjmacro.h >`__. The new file
101
- is included by mujoco.h so this change does not break existing user code.
102
- - Added instrumentation for the `Address Sanitizer (ASAN) <https://clang.llvm.org/docs/AddressSanitizer.html >`__ and
103
- `Memory Sanitizer (MSAN) <https://clang.llvm.org/docs/MemorySanitizer.html >`__ to detect memory bugs when allocating
104
- from the ``mjData `` stack and arena.
105
- - Removed ``pstack `` and ``parena `` from the output of ``mj_printData ``, since these are implementation details of the
106
- ``mjData `` allocators that are affected by diagnostic paddings in instrumented builds.
107
- - Removed the ``mj_activate `` and ``mj_deactivate `` functions. These had been kept around for compatibility with old
108
- user code from when MuJoCo was closed source, but have been no-op functions since open sourcing.
97
+
98
+ 17. Added optional :ref: `tausmooth<actuator-muscle-tausmooth> ` attribute to muscle actuators. When positive, the
99
+ time-constant :math: `\tau ` of muscle activation/deactivation uses :ref: `mju_sigmoid ` to transition smoothly
100
+ between the two extremal values given by the `Millard et al. (2013) <https://doi.org/10.1115/1.4023390 >`__ muscle
101
+ model, within a range of width tausmooth. See :ref: `Muscle actuators<CMuscle> ` for more details.
102
+ Relatedly, :ref: `mju_muscleDynamics ` now takes 3 parameters instead of 2, adding the new smoothing-width parameter.
103
+ #. Moved public C macro definitions out of mujoco.h into a new public header file called
104
+ `mjmacro.h <https://github.com/deepmind/mujoco/blob/main/include/mujoco/mjmacro.h >`__. The new file
105
+ is included by mujoco.h so this change does not break existing user code.
106
+ #. Added instrumentation for the `Address Sanitizer (ASAN) <https://clang.llvm.org/docs/AddressSanitizer.html >`__ and
107
+ `Memory Sanitizer (MSAN) <https://clang.llvm.org/docs/MemorySanitizer.html >`__ to detect memory bugs when allocating
108
+ from the ``mjData `` stack and arena.
109
+ #. Removed ``pstack `` and ``parena `` from the output of ``mj_printData ``, since these are implementation details of the
110
+ ``mjData `` allocators that are affected by diagnostic paddings in instrumented builds.
111
+ #. Removed the ``mj_activate `` and ``mj_deactivate `` functions. These had been kept around for compatibility with old
112
+ user code from when MuJoCo was closed source, but have been no-op functions since open sourcing.
109
113
110
114
111
115
Version 2.3.5 (April 25, 2023)
0 commit comments