Skip to content

Commit e58d53e

Browse files
nimrod-gileadicopybara-github
authored andcommitted
Update changelog.rst for version 2.3.3
PiperOrigin-RevId: 517932202 Change-Id: I55063e9bc5da2d424b1ad303834d8f11cb0a0fa9
1 parent 33a2ce7 commit e58d53e

File tree

1 file changed

+50
-50
lines changed

1 file changed

+50
-50
lines changed

doc/changelog.rst

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,83 +2,83 @@
22
Changelog
33
=========
44

5-
Upcoming version (not yet released)
6-
-----------------------------------
5+
Version 2.3.3 (March 20, 2023)
6+
------------------------------
77

88
General
99
^^^^^^^
1010

11-
- Improvements to implicit integration:
11+
1. Improvements to implicit integration:
1212

13-
- The derivatives of the RNE algorithm are now computed using sparse math, leading to significant speed
14-
improvements for large models when using the :ref:`implicit integrator<geIntegration>`.
15-
- A new integrator called ``implicitfast`` was added. It is similar to the existing implicit integrator, but skips the
16-
derivatives of Coriolis and centripetal forces. See the :ref:`numerical integration<geIntegration>` section for a
17-
detailed motivation and discussion. The implicitfast integrator is recommended for all new models and will
18-
become the default integrator in a future version.
13+
- The derivatives of the RNE algorithm are now computed using sparse math, leading to significant speed
14+
improvements for large models when using the :ref:`implicit integrator<geIntegration>`.
15+
- A new integrator called ``implicitfast`` was added. It is similar to the existing implicit integrator, but skips the
16+
derivatives of Coriolis and centripetal forces. See the :ref:`numerical integration<geIntegration>` section for a
17+
detailed motivation and discussion. The implicitfast integrator is recommended for all new models and will
18+
become the default integrator in a future version.
1919

20-
The table below shows the compute cost of the 627-DoF `humanoid100
21-
<https://github.com/deepmind/mujoco/blob/main/model/humanoid100/humanoid100.xml>`_ model using different integrators.
22-
"implicit (old)" uses dense RNE derivatives, "implicit (new)" is after the sparsification mentioned above.
23-
Timings were measured on a single core of an AMD 3995WX CPU.
20+
The table below shows the compute cost of the 627-DoF `humanoid100
21+
<https://github.com/deepmind/mujoco/blob/main/model/humanoid100/humanoid100.xml>`_ model using different integrators.
22+
"implicit (old)" uses dense RNE derivatives, "implicit (new)" is after the sparsification mentioned above.
23+
Timings were measured on a single core of an AMD 3995WX CPU.
2424

25-
.. csv-table::
26-
:header: "timing", "Euler", "implicitfast", "implicit (new)", "implicit (old)"
27-
:widths: auto
28-
:align: left
25+
.. csv-table::
26+
:header: "timing", "Euler", "implicitfast", "implicit (new)", "implicit (old)"
27+
:widths: auto
28+
:align: left
2929

30-
one step (ms), 0.5, 0.53, 0.77, 5.0
31-
steps/second, 2000, 1900, 1300, 200
30+
one step (ms), 0.5, 0.53, 0.77, 5.0
31+
steps/second, 2000, 1900, 1300, 200
3232

3333
.. image:: images/computation/midphase.gif
3434
:align: right
3535
:width: 350px
3636

37-
- Added a collision mid-phase for pruning geoms in body pairs, see :ref:`documentation<coSelection>` for more details.
38-
This is based on static AABB bounding volume hierarchy (a BVH binary tree) in the body inertial frame. The GIF on the
39-
right is cut from `this longer video <https://youtu.be/e0babIM8hBo>`_.
40-
- The ``mjd_transitionFD`` function no longer triggers sensor calculation unless explicitly requested.
41-
- Corrected the spelling of the ``inteval`` attribute to ``interval`` in the :ref:`mjLROpt` struct.
42-
- Mesh texture and normal mappings are now 3-per-triangle rather than 1-per-vertex. Mesh vertices are no longer
43-
duplicated in order to circumvent this limitation as they previously were.
44-
- The non-zeros for the sparse constraint Jacobian matrix are now precounted and used for matrix memory allocation.
45-
For instance, the constraint Jacobian matrix from the `humanoid100
46-
<https://github.com/deepmind/mujoco/blob/main/model/humanoid100/humanoid100.xml>`_ model, which previously required
47-
~500,000 ``mjtNum``'s, now only requires ~6000. Very large models can now load and run with the CG solver.
48-
- Modified :ref:`mju_error` and :ref:`mju_warning` to be variadic functions (support for printf-like arguments). The
49-
functions :ref:`mju_error_i`, :ref:`mju_error_s`, :ref:`mju_warning_i`, and :ref:`mju_warning_s` are now deprecated.
50-
- Implemented a performant ``mju_sqrMatTDSparse`` function that doesn't require dense memory allocation.
51-
- Added ``mj_stackAllocInt`` to get correct size for allocating ints on mjData stack. Reducing stack memory usage
52-
by 10% - 15%.
37+
2. Added a collision mid-phase for pruning geoms in body pairs, see :ref:`documentation<coSelection>` for more details.
38+
This is based on static AABB bounding volume hierarchy (a BVH binary tree) in the body inertial frame. The GIF on
39+
the right is cut from `this longer video <https://youtu.be/e0babIM8hBo>`_.
40+
#. The ``mjd_transitionFD`` function no longer triggers sensor calculation unless explicitly requested.
41+
#. Corrected the spelling of the ``inteval`` attribute to ``interval`` in the :ref:`mjLROpt` struct.
42+
#. Mesh texture and normal mappings are now 3-per-triangle rather than 1-per-vertex. Mesh vertices are no longer
43+
duplicated in order to circumvent this limitation as they previously were.
44+
#. The non-zeros for the sparse constraint Jacobian matrix are now precounted and used for matrix memory allocation.
45+
For instance, the constraint Jacobian matrix from the `humanoid100
46+
<https://github.com/deepmind/mujoco/blob/main/model/humanoid100/humanoid100.xml>`_ model, which previously required
47+
~500,000 ``mjtNum``'s, now only requires ~6000. Very large models can now load and run with the CG solver.
48+
#. Modified :ref:`mju_error` and :ref:`mju_warning` to be variadic functions (support for printf-like arguments). The
49+
functions :ref:`mju_error_i`, :ref:`mju_error_s`, :ref:`mju_warning_i`, and :ref:`mju_warning_s` are now deprecated.
50+
#. Implemented a performant ``mju_sqrMatTDSparse`` function that doesn't require dense memory allocation.
51+
#. Added ``mj_stackAllocInt`` to get correct size for allocating ints on mjData stack. Reducing stack memory usage
52+
by 10% - 15%.
5353

5454

5555
Python bindings
5656
^^^^^^^^^^^^^^^
5757

58-
- Fixed IPython history corruption when using ``viewer.launch_repl``. The ``launch_repl`` function now provides seamless
59-
continuation of an IPython interactive shell session, and is no longer considered experimental feature.
60-
- Added ``viewer.launch_passive`` which launches the interactive viewer in a passive, non-blocking mode. Calls to
61-
``launch_passive`` return immediately, allowing user code to continue execution, with the viewer automatically
62-
reflecting any changes to the physics state. (Note that this functionality is currently in experimental/beta stage,
63-
and is not yet described in our :ref:`viewer documentation<PyViewer>`.)
64-
- Added the ``mjpython`` launcher for macOS, which is required for ``viewer.launch_passive`` to function there.
65-
- Removed ``efc_`` fields from joint indexers. Since the introduction of arena memory, these fields now have dynamic
66-
sizes that change between time steps depending on the number of active constraints, breaking strict correspondence
67-
between joints and ``efc_`` rows.
68-
- Added a number of missing fields to the bindings of ``mjVisual`` and ``mjvPerturb`` structs.
58+
10. Fixed IPython history corruption when using ``viewer.launch_repl``. The ``launch_repl`` function now provides
59+
seamless continuation of an IPython interactive shell session, and is no longer considered experimental feature.
60+
#. Added ``viewer.launch_passive`` which launches the interactive viewer in a passive, non-blocking mode. Calls to
61+
``launch_passive`` return immediately, allowing user code to continue execution, with the viewer automatically
62+
reflecting any changes to the physics state. (Note that this functionality is currently in experimental/beta stage,
63+
and is not yet described in our :ref:`viewer documentation<PyViewer>`.)
64+
#. Added the ``mjpython`` launcher for macOS, which is required for ``viewer.launch_passive`` to function there.
65+
#. Removed ``efc_`` fields from joint indexers. Since the introduction of arena memory, these fields now have dynamic
66+
sizes that change between time steps depending on the number of active constraints, breaking strict correspondence
67+
between joints and ``efc_`` rows.
68+
#. Added a number of missing fields to the bindings of ``mjVisual`` and ``mjvPerturb`` structs.
6969

7070
Simulate
7171
^^^^^^^^
7272

73-
- Implemented a workaround for `broken VSync <https://github.com/glfw/glfw/issues/2249>`_ on macOS so that the frame
74-
rate is correctly capped when the Vertical Sync toggle is enabled.
73+
15. Implemented a workaround for `broken VSync <https://github.com/glfw/glfw/issues/2249>`_ on macOS so that the frame
74+
rate is correctly capped when the Vertical Sync toggle is enabled.
7575

7676
.. image:: images/changelog/contactlabel.png
7777
:align: right
7878
:width: 400px
7979

80-
- Added optional labels to contact visualization, indicating which two geoms are contacting (names if defined, ids
81-
otherwise). This can be useful in cluttered scenes.
80+
16. Added optional labels to contact visualization, indicating which two geoms are contacting (names if defined, ids
81+
otherwise). This can be useful in cluttered scenes.
8282

8383
|br|
8484

0 commit comments

Comments
 (0)