Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(deps-dev): bump mujoco from 2.3.7 to 3.0.1 #338

Closed
wants to merge 1 commit into from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 20, 2023

Bumps mujoco from 2.3.7 to 3.0.1.

Release notes

Sourced from mujoco's releases.

3.0.1

See the changelog.

3.0.0

New features

  1. Added simulation on GPU and TPU via the new MuJoCo XLA (MJX) Python module. Python users can now natively run MuJoCo simulations at millions of steps per second on Google TPU or their own accelerator hardware.

    • MJX is designed to work with on-device reinforcement learning algorithms. This Colab notebook demonstrates using MJX along with reinforcement learning to train humanoid and quadruped robots to locomote: Open In Colab
    • The MJX API is compatible with MuJoCo but is missing some features in this release. See the outline of MJX feature parity for more details.
  2. Added new signed distance field (SDF) collision primitive. SDFs can take any shape and are not constrained to be convex. Collision points are found by minimizing the maximum of the two colliding SDFs via gradient descent.

    • Added new SDF plugin for defining implicit geometries. The plugin must define methods computing an SDF and its gradient at query points. See the documentation for more details.
  3. Added new low-level model element called flex, used to define deformable objects. These simplicial complexes can be of dimension 1, 2 or 3, corresponding to stretchable lines, triangles or tetrahedra. Two new MJCF elements are used to define flexes. The top-level deformable section contains the low-level flex definition. The flexcomp element, similar to composite is a convenience macro for creating deformables, and supports the GMSH tetrahedral file format.

    • Added shell passive force plugin, computing bending forces using a constant precomputed Hessian (cotangent operator).

      Note: This feature is still under development and subject to change. In particular, deformable object functionality is currently available both via deformable and composite, and both are modifiable by the first-party elasticity plugins. We expect some of this functionality to be unified in the future.

  4. Added constraint island discovery with mj_island. Constraint islands are disjoint sets of constraints and degrees-of-freedom that do not interact. The only solver which currently supports islands is CG. Island discovery can be activated using a new enable flag. If island discovery is enabled, geoms, contacts and tendons will be colored according to the corresponding island, see video. Island discovery is currently disabled for models that have deformable objects (see previous item).

  5. Added mjThreadPool and mjTask which allow for multi-threaded operations within the MuJoCo engine pipeline. If engine-internal threading is enabled, the following operations will be multi-threaded:

    • Island constraint resolution, if island discovery is enabled and the CG solver is selected. The 22 humanoids model shows a 3x speedup compared to the single threaded simulation.
    • Inertia-related computations and collision detection will happen in parallel.

    Engine-internal threading is a work in progress and currently only available in first-party code via the testspeed utility, exposed with the npoolthread flag.

  6. Added capability to initialize composite particles from OBJ files. Fixes #642 and #674.

General

[!IMPORTANT] Breaking API changes

  1. Removed the macros mjMARKSTACK and mjFREESTACK.

    Migration: These macros have been replaced by new functions mj_markStack and mj_freeStack. These functions manage the mjData stack in a fully encapsulated way (i.e., without introducing a local variable at the call site).

  2. Renamed mj_stackAlloc to mj_stackAllocNum. The new function mj_stackAllocByte allocates an arbitrary number of bytes and has an additional argument for specifying the alignment of the returned pointer.

    Migration: The functionality for allocating mjtNum arrays is now available via mj_stackAllocNum.

  3. Renamed the nstack field in mjModel and mjData to narena. Changed narena, pstack, and maxuse_stack to count number of bytes rather than number of mjtNums.

  4. Changed mjData.solver, the array used to collect solver diagnostic information. This array of mjSolverStat structs is now of length mjNISLAND * mjNSOLVER, interpreted as as a matrix. Each row of length mjNSOLVER contains separate solver statistics for each constraint island. If the solver does not use islands, only row 0 is filled.

    • The new constant mjNISLAND was set to 20.
    • mjNSOLVER was reduced from 1000 to 200.
    • Added mjData.solver_nisland: the number of islands for which the solver ran.
    • Renamed mjData.solver_iter to solver_niter. Both this member and mjData.solver_nnz are now integer vectors of length mjNISLAND.

... (truncated)

Changelog

Sourced from mujoco's changelog.

Version 3.0.1 (November 15, 2023)

General ^^^^^^^

  1. Added sub-terms of total passive forces in mjData.qfrc_passive to :ref:mjData: qfrc_{spring, damper, gravcomp, fluid}. The sum of these vectors equals qfrc_passive.

.. youtube:: H9qG9Zf2W44 :align: right :width: 240px

  1. Added :ref:actuatorgroupdisable<option-actuatorgroupdisable> attribute and associated :ref:mjOption.disableactuator<mjOption> integer bitfield, which can be used to disable sets of actuators at runtime according to their :ref:group<actuator-general-group>. Fixes :github:issue:1092. See :ref:CActDisable.

    • The first 6 actuator groups are toggleable in the :ref:simulate<saSimulate> viewer. See example model <https://github.com/google-deepmind/mujoco/blob/main/test/engine/testdata/actuation/actuator_group_disable.xml>__ and associated screen-capture on the right.
  2. Increased mjMAXUIITEM (maximum number of UI elements per section in Simulate) to 200.

MJX ^^^ 4. Added support for Newton solver (mjSOL_NEWTON in :ref:mjtSolver). The Newton solver significantly speeds up simulation on GPU:

.. list-table:: Steps-per-second, Conjugate Gradient vs. Newton on A100 :header-rows: 1 :align: left

  * - Model
    - CG
    - Newton
    - Speedup
  * - `Humanoid <https://github.com/google-deepmind/mujoco/tree/main/mjx/mujoco/mjx/benchmark/model/humanoid>`__
    - 640,000
    - 1,020,000
    - **1.6 x**
  * - `Barkour v0 <https://github.com/google-deepmind/mujoco/tree/main/mjx/mujoco/mjx/benchmark/model/barkour_v0>`__
    - 1,290,000
    - 1,750,000
    - **1.35 x**
  * - `Shadow Hand <https://github.com/google-deepmind/mujoco/tree/main/mjx/mujoco/mjx/benchmark/model/shadow_hand>`__
    - 215,000
    - 270,000
    - **1.25 x**

Humanoid is the standard MuJoCo humanoid, Google Barkour <https://blog.research.google/2023/05/barkour-benchmarking-animal-level.html>__ and the Shadow Hand

... (truncated)

Commits
  • 8d5966e Update changelog for 3.0.1 release.
  • 2d2b6ec Fix formatting bugs in XMLreference doc page.
  • e3b3f96 Add flex_texcoordadr to mjvSceneState. Fixes #1193.
  • 7051ab9 Enable keyframe loading and saving in passive viewer. Fixes #1175
  • f5285e0 Add flex to dm_control schema.
  • ffca553 Do not use the inertia box for volume computation.
  • c814637 Simplify pendula test data. Fix bug in scan.body_tree that led to incorr...
  • 97ad543 Test-only change: Don't update actuator_force in Advance in TestActuator.
  • f1bf394 Add missing commas in attribute lists in XML reference.
  • 9ae40e7 Define mj_multiRay bindings explicitly.
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [mujoco](https://github.com/google-deepmind/mujoco) from 2.3.7 to 3.0.1.
- [Release notes](https://github.com/google-deepmind/mujoco/releases)
- [Changelog](https://github.com/google-deepmind/mujoco/blob/main/doc/changelog.rst)
- [Commits](google-deepmind/mujoco@2.3.7...3.0.1)

---
updated-dependencies:
- dependency-name: mujoco
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Nov 20, 2023
@rickstaa
Copy link
Owner

Warning

Don't merge unless Farama-Foundation/Gymnasium#746 has been released.

Copy link
Contributor Author

dependabot bot commented on behalf of github Dec 18, 2023

Superseded by #346.

@dependabot dependabot bot closed this Dec 18, 2023
@dependabot dependabot bot deleted the dependabot/pip/mujoco-3.0.1 branch December 18, 2023 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant