Overview
SuperMimic trains a whole-body tracking policy by backpropagating through rollouts of one learned world model of the body. muscle-supermimic runs it on musculoskeletal humanoids: MS-Human-700 (700 muscles) and MyoSuite's MyoFullBody (354 muscles), on mjlab and MuJoCo-Warp, with MuscleMimic's tracking task.
Between the policy and the skeleton sit activation dynamics, wrapping tendons and Hill-type force curves. Every observation, reward and termination is one analytic function, evaluated by the simulator and on imagined states alike, with a torch replica of MuJoCo's muscles in it. On MS-Human-700, one run on one GPU reaches a normalized return of 0.83 on MuscleMimic's 108 held-out clips in 4 hours (iteration 6500), 99 of them tracked to the end, and 0.89–0.91 from 4.9 hours on; MyoFullBody, with the same code, reaches 0.83 after 6 hours (iteration 10000), 101 tracked. Both are still training.
Two muscle-driven bodies
| MS-Human-700 | MyoFullBody | |
|---|---|---|
| Model | LNSGroup | MyoSuite† |
| Joint DoF | 37 + free root (33 with locked hands) | 31 + free root (fingers disabled) |
| Muscles | 700 (694) | 354 |
| Coupled joints | 42 (38) | 51 |
| Mass | 60.2 kg | 84.3 kg |
| Σ max isometric force | 349 × body weight* | 163 × body weight |
| Self-contacts | off | 75 pairs, as in MuscleMimic |
† as packaged by
MuscleMimic in musclemimic-models 1.0.6.
* locked hands, 694 muscles. Coupled joints (knee
translations, patella, shoulder girdle) follow independent ones through <equality> polynomials,
reproduced exactly by the differentiable kinematics.
ms-retarget-myofullbody from MuscleMimic's retargeted motion on MyoFullBody (right). The 27 leg and arm angles carry over exactly,
spine and wrist flexion are fitted through the differentiable kinematics, and each clip is lowered by 0.74 cm so that the
feet touch the ground.One MDP, simulated and imagined
The simulator collects transitions with the current policy plus exploration noise; a world model learns the body's next state from them. The policy then improves through 32 imagined steps: every step it reads its observation, sets the excitations, the activations follow MuJoCo's own activation dynamics, and the world model moves the body. Rewards, terminations and observations on imagined states come from the same functions that label the simulator's transitions, including muscle length, velocity and force from a torch replica of MuJoCo's spatial tendons (equal to MuJoCo's to 10⁻⁹ / 10⁻⁸ / 10⁻⁶). The gradient of the return, with a critic's value at the last step, flows back through all of it.
The task is MuscleMimic's: 100 Hz control, an observation of the full body state with muscle length, velocity, force, excitation and activation and four foot-touch values, a goal of the reference's next frames, the MimicReward on 17 tracked sites, and terminations when the body strays more than 1 m or 1 rad from the reference. No randomization yet. Details: MDP, training.
MS-Human-700
One run of MS-Human-700 with locked hands (694 muscles) on MuscleMimic's KIT split, 972 training clips (1.5 h of motion) retargeted to it, 4096 parallel environments, MuscleMimic's solver settings (Euler, 100 / 50 iterations), on one RTX 5090. The run is still training; this is a snapshot at iteration 16800 (10.6 hours), with every checkpoint up to iteration 16000 evaluated.
Training clips at iteration 10000
Pick any of 100 training clips, ten of each kind of motion: the checkpoint of iteration 10000 tracks 99 of them to the end, at a normalized return of 0.90. Each muscle is colored by its activation, from light grey (0) to deep red (1).
MyoFullBody
One run on the same 972 training clips, as MuscleMimic retargeted them to MyoFullBody, with MS-Human-700's settings, on one RTX 5090. The run is still training; the curves below are a snapshot at iteration 10900 (6.5 hours), and its checkpoint of iteration 10000 scores 0.83 on the 108 held-out clips, 101 of them tracked to the end.
The checkpoint of iteration 10000
After 6.0 hours on one RTX 5090. Evaluation runs every clip once from its first frame without exploration noise. Each muscle is colored by its activation, from light grey (0) to deep red (1).
Training clips
359/turn_left0511/WalkingStraightForwards057/WalkingStraightBackwards04Held-out clips
On MuscleMimic's 108 test clips, never seen in training, the normalized return is 0.83 and 101 clips are tracked to the end. The 7 failures are three walks with a support, one clockwise and one counter-clockwise circle, one left turn and one walk. Shown: for three kinds of motion, the first test clip in the list that was tracked to the end in every evaluation of this checkpoint (runs on a CPU and a GPU disagree on a few borderline clips), not picked by score.
348/walking_run067/RightTurn034/WalkInCounterClockwiseCircle08Get started
git clone --recursive https://github.com/kaibohex/muscle-supermimic.git
cd muscle-supermimic && uv sync
# MuscleMimic's retargeted KIT clips (gated: accept the terms on the dataset page first)
uvx --from huggingface_hub hf download amathislab/musclemimic-retargeted --repo-type dataset \
--include "MyoFullBody/gmr/KIT/*" --local-dir data/musclemimic
uv run train Mjlab-SuperMimic-Flat-MyoFullBody \
--env.commands.motion.motion-file data/musclemimic/kit_kinesis_train.txt
MS-Human-700, evaluation, rendering and memory settings: see the README and docs.
Acknowledgments
The SuperMimic implementation is ported from Chong Zhang's
supermimic_vibed. MyoFullBody, derived from
MyoSuite, comes from MuscleMimic's
musclemimic-models, as do its tracking task and the retargeted KIT motions; MS-Human-700 from
MuJoCo Menagerie; the simulation framework is
mjlab on MuJoCo-Warp. The motions are from the KIT set of AMASS. The
MyoFullBody arm and hand derive from MoBL-ARMS, released for non-commercial use only. The render style of the videos is
inspired by MorphMimic. We thank Claude (Anthropic), with which the code was
developed through Claude Code.