Brax ❤️ MuJoCo = MJX #409
Replies: 4 comments 9 replies
-
What's the relationship between Brax and MuJoCo XLA (MJX)? |
Beta Was this translation helpful? Give feedback.
-
Well done guys 🔥 |
Beta Was this translation helpful? Give feedback.
-
Thanks for the clarification! The future question is, as a user who wants to do robot simulation, should I choose Brax, or use MuJoCo directly? What are the key benefits that make users choose to use Brax? |
Beta Was this translation helpful? Give feedback.
-
How is MJX different from MuJoCo? Is MJX using Brax environments with an optimized MuJoCo backend? I have a custom MuJoCo model from https://github.com/google-deepmind/mujoco_menagerie/. Can one import and use it in Brax with the MJX backend? Finally, is dm_control then irrelevant with this new release? |
Beta Was this translation helpful? Give feedback.
-
Hi all,
🚨 Major announcement 🚨
Brax has joined forces with the MuJoCo authors, to develop a jax version of the MuJoCo simulator called MuJoCo XLA (MJX). MJX is a strictly more comprehensive and performant version of the Brax
generalized
pipeline. We've just released MuJoCo XLA in MuJoCo 3.0.Please check it out!
A bit of history
MJX
sprang from a dawning realization that the algorithms employed in our generalized physics pipeline were more scalable than we had originally anticipated. Fun fact: we originally developedgeneralized
as a baseline for a paper, and we did not expect to actively develop it past publication. We were quite surprised when our metrics forgeneralized
suggested that, with careful algorithm design, accelerators could significantly speed up even complex/sophisticated physics algorithms such as those used in MuJoCo!We still don't think Brax
generalized
orMJX
are suitable for all rigid body simulation workloads, and we expound upon this a bit in 🔪 MJX - The Sharp Bits 🔪, but we are convinced at this point that it's useful for a significant core of real-world robotics tasks, so we're happy to share our tools with the outside world.It's been a real joy to work with the MuJoCo developers and we've learned a lot!
MJX
features many improvements over thegeneralized
pipeline - it not only supports more of the MuJoCo feature set thangeneralized
(see this feature parity table) but it scales better across more scenes than Braxgeneralized
. At this point we consider it more or less a strictly better implementation thangeneralized
.What this means for Brax
Going forward we plan to support both Brax and
MJX
, and see the world as follows:MJX
in many circumstances, but is more challenging to transfer to real-world robotsMJX
into Brax as another physics pipelineMJX
will be the newgeneralized
and will continue to be developed, whilegeneralized
will soon be deprecatedIn the coming months, we will make Brax import
MJX
directly. We will make it easy to selectMJX
as a pipeline, just likespring
,pbd
, andgeneralized
. Once that's done, we will markgeneralized
as deprecated and encourage our users to use theMJX
pipeline instead.Thanks to all of you for your helpful PRs, bug reports, and general comments - it makes this project that much more fun to work on! Onwards and upwards.
Beta Was this translation helpful? Give feedback.
All reactions