Version 2.3.3 #779
saran-t
announced in
Announcements
Replies: 1 comment
-
I'm seeing significant speedups in some applications, thank you to the MuJoCo team <3 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
General
Improvements to implicit integration:
models when using the implicit integrator.
implicitfast
was added. It is similar to the existing implicit integrator, but skips the derivatives of Coriolis and centripetal forces. See the numerical integration section for a detailed motivation and discussion. The implicitfast integrator is recommended for all new models and will become the default integrator in a future version.The table below shows the compute cost of the 627-DoF humanoid100 model using different integrators. "implicit (old)" uses dense RNE derivatives, "implicit (new)" is after the sparsification mentioned above. Timings were measured on a single core of an AMD 3995WX CPU.
This is based on static AABB bounding volume hierarchy (a BVH binary tree) in the body inertial frame. The GIF on
the right is cut from this longer video.
mjd_transitionFD
function no longer triggers sensor calculation unless explicitly requested.inteval
attribute tointerval
in the mjLROpt struct.duplicated in order to circumvent this limitation as they previously were.
For instance, the constraint Jacobian matrix from the humanoid100 model, which previously required
~500,000
mjtNum
s, now only requires ~6000. Very large models can now load and run with the CG solver.mju_error
andmju_warning
to be variadic functions (support for printf-like arguments). Thefunctions
mju_error_i
,mju_error_s
,mju_warning_i
, andmju_warning_s
are now deprecated.mju_sqrMatTDSparse
function that doesn't require dense memory allocation.mj_stackAllocInt
to get correct size for allocating ints on mjData stack. Reducing stack memory usageby 10% - 15%.
Python bindings
viewer.launch_repl
. Thelaunch_repl
function now providesseamless continuation of an IPython interactive shell session, and is no longer considered experimental feature.
viewer.launch_passive
which launches the interactive viewer in a passive, non-blocking mode. Calls tolaunch_passive
return immediately, allowing user code to continue execution, with the viewer automaticallyreflecting any changes to the physics state. (Note that this functionality is currently in experimental/beta stage,
and is not yet described in our viewer documentation.)
mjpython
launcher for macOS, which is required forviewer.launch_passive
to function there.efc_
fields from joint indexers. Since the introduction of arena memory, these fields now have dynamicsizes that change between time steps depending on the number of active constraints, breaking strict correspondence
between joints and
efc_
rows.mjVisual
andmjvPerturb
structs.Simulate
Implemented a workaround for broken VSync on macOS so that the frame
rate is correctly capped when the Vertical Sync toggle is enabled.
Added optional labels to contact visualization, indicating which two geoms are contacting (names if defined, ids
otherwise). This can be useful in cluttered scenes.
This discussion was created from the release 2.3.3.
Beta Was this translation helpful? Give feedback.
All reactions