Bringing MyoSuite to MJX for GPU-Accelerated Musculoskeletal RL
The Bottleneck: Muscle Simulation on CPU
MyoSuite is a collection of musculoskeletal environments and tasks simulated in MuJoCo and wrapped in the Gym API — the go-to platform for research on muscle-driven, biomechanically realistic control (e.g. the MyoHand). It’s a fantastic testbed, but the original implementation runs on CPU-based MuJoCo, which caps how many environments you can step in parallel. For large-scale reinforcement learning — where sample efficiency is bought with sheer throughput — that’s the binding constraint.
What MJX Changes
MJX is MuJoCo compiled through XLA (Accelerated Linear Algebra), so simulation runs on the GPU/TPU inside JAX. Instead of a handful of CPU environments, you can step thousands of environments in parallel on a single accelerator, keeping the whole rollout on-device alongside the policy. For contact-rich, high-DoF musculoskeletal models, that’s the difference between hours and minutes per experiment.
The Work
myosuite-mjx is my effort — through Micropilot, in collaboration with MyoSuite creator Vittorio Caggiano (FAIR, Meta) — to give MyoSuite an MJX backend:
- Port MyoSuite’s musculoskeletal environments to run under MJX/JAX.
- Preserve muscle-tendon dynamics and contact-rich simulation fidelity.
- Keep compatibility with modern MuJoCo and the standard Gym API.
- Enable GPU-accelerated, massively parallel rollouts for large-scale RL of dexterous control.
It’s an active, work-in-progress effort — building from a source MuJoCo install up through the MJX and MyoSuite layers.
Where It Fits
This is the simulation engine behind the rest of my robotics stack: the same MyoHand model that supplies tendon-control targets in emg2tendon becomes trainable at scale once it runs on MJX. Fast, parallel musculoskeletal simulation is the prerequisite for learning robust low-level control of dexterous, anthropomorphic hands.