MyoHub/myo_sim

Musculoskeletal Models in MuJoCo

Python

207

280 commits

updated Oct 4, 2026

See the code

README

MyoSim

CI License Python PyPI

MyoSim is the MuJoCo musculoskeletal model library used by MyoSuite. It provides anatomically detailed XML models of the human arm, leg, torso, and hand, plus a Python package for loading and composing them.

Models

ModelDoFMusclesPreviewVersion
MyoLeg2980Screenshot 2026-08-07 at 9 00 43 AMstable
MyoArm3863myoarm_demostable
MyoTorso (MyoBack)18210stable
MyoHand2339stable
MyoFullBody123416stable
MyoLeg261826Screenshot 2026-08-07 at 8 56 17 AMbeta
MyoFinger45legacy
MyoElbow26legacy

Legacy models ship in the pip package under myo_sim/models/legacy/ and load via registry names such as myoelbow, myofinger, and osl. They are maintained for backwards compatibility only — see myo_sim/models/legacy/README.md.

Buildable Models

The following registered models can be compiled with myo_sim.build.compose.build_model("<name>"):

  • myotorso — torso scaffold with torso muscles.
  • myotorso_abdomen — simple abdomen scaffold.
  • myotorso_arm_r — torso with the right arm only.
  • myotorso_arms — torso with the right arm plus a mirrored-left arm.
  • myoarm_r — passive anatomical torso scaffold with the right arm.
  • myoarms — passive anatomical torso scaffold with mirrored arms.
  • myohand_r — passive anatomical torso scaffold with the right hand derived from the pruned right arm.
  • myohands — passive anatomical torso scaffold with right and mirrored-left hands derived from pruned arms.
  • myolegs — passive anatomical torso scaffold with legs.
  • myolegs26 — passive anatomical torso scaffold with reduced-muscle legs and simplified kinematic chain.
  • myolegs_abdomen — simple abdomen scaffold with legs.
  • myofullbody — full body with torso, mirrored arms, and legs.

To generate compiled MuJoCo XML files for the primary composed assemblies, run:

uv run python -m myo_sim.build.compose --generate

This writes loadable XML files for myoarms, myotorso, myolegs, myolegs26, and myofullbody under myo_sim/models/. Treat these as generated snapshots for GUI viewing and compatibility; for source edits, update the component XML files and myo_sim/build/compose.py, then regenerate. Those downstream XMLs are not actively maintained.

Install

pip install myo-sim

Quickstart

import mujoco
import myo_sim

# Load a model by registry name
model, data = myo_sim.load("myolegs")
print(f"Joints: {model.njnt}, Muscles: {model.nu}")

# Or compose another registered model
model, data = myo_sim.load("myotorso")

# Legacy models (backwards compatibility)
model, data = myo_sim.load("myoelbow")
# Compose a full-body MjSpec model
from myo_sim.build.compose import build_model
model = build_model("myofullbody")
print(f"Full body — joints: {model.njnt}, muscles: {model.nu}")

Development

git clone https://github.com/MyoHub/myo_sim.git
cd myo_sim
uv sync --dev
uv run pytest tests/ -x -n auto --ignore=tests/test_equivalence.py

See CONTRIBUTING.md for the full contributor guide.

Citation

If you find this repository useful in your research, please cite the following works:

@misc{MyoSuite2022,
  author    = {Caggiano, Vittorio and Wang, Huawei and Durandau, Guillaume
               and Sartori, Massimo and Kumar, Vikash},
  title     = {{MyoSuite}: A contact-rich simulation suite for musculoskeletal motor control},
  year      = {2022},
  doi       = {10.48550/ARXIV.2205.13600},
  url       = {https://arxiv.org/abs/2205.13600},
}
@article{Li2026MuscleMimic,
  title={Towards Embodied AI with MuscleMimic: Unlocking full-body musculoskeletal motor learning at scale},
  author={Li, Chengkun and Wang, Cheryl and Ziliotto, Bianca and Simos, Merkourios and Kovecses, Jozsef and Durandau, Guillaume and Mathis, Alexander},
  journal={arXiv preprint arXiv:2603.25544},
  year={2026}
}

License

Apache 2.0 — see LICENSE.

biomechanics
mujoco
muscle-model

MyoHub/myo_sim

Musculoskeletal Models in MuJoCo

Python

207

280 commits

updated Oct 4, 2026

See the code

README

MyoSim

CI License Python PyPI

MyoSim is the MuJoCo musculoskeletal model library used by MyoSuite. It provides anatomically detailed XML models of the human arm, leg, torso, and hand, plus a Python package for loading and composing them.

Models

ModelDoFMusclesPreviewVersion
MyoLeg2980Screenshot 2026-08-07 at 9 00 43 AMstable
MyoArm3863myoarm_demostable
MyoTorso (MyoBack)18210stable
MyoHand2339stable
MyoFullBody123416stable
MyoLeg261826Screenshot 2026-08-07 at 8 56 17 AMbeta
MyoFinger45legacy
MyoElbow26legacy

Legacy models ship in the pip package under myo_sim/models/legacy/ and load via registry names such as myoelbow, myofinger, and osl. They are maintained for backwards compatibility only — see myo_sim/models/legacy/README.md.

Buildable Models

The following registered models can be compiled with myo_sim.build.compose.build_model("<name>"):

  • myotorso — torso scaffold with torso muscles.
  • myotorso_abdomen — simple abdomen scaffold.
  • myotorso_arm_r — torso with the right arm only.
  • myotorso_arms — torso with the right arm plus a mirrored-left arm.
  • myoarm_r — passive anatomical torso scaffold with the right arm.
  • myoarms — passive anatomical torso scaffold with mirrored arms.
  • myohand_r — passive anatomical torso scaffold with the right hand derived from the pruned right arm.
  • myohands — passive anatomical torso scaffold with right and mirrored-left hands derived from pruned arms.
  • myolegs — passive anatomical torso scaffold with legs.
  • myolegs26 — passive anatomical torso scaffold with reduced-muscle legs and simplified kinematic chain.
  • myolegs_abdomen — simple abdomen scaffold with legs.
  • myofullbody — full body with torso, mirrored arms, and legs.

To generate compiled MuJoCo XML files for the primary composed assemblies, run:

uv run python -m myo_sim.build.compose --generate

This writes loadable XML files for myoarms, myotorso, myolegs, myolegs26, and myofullbody under myo_sim/models/. Treat these as generated snapshots for GUI viewing and compatibility; for source edits, update the component XML files and myo_sim/build/compose.py, then regenerate. Those downstream XMLs are not actively maintained.

Install

pip install myo-sim

Quickstart

import mujoco
import myo_sim

# Load a model by registry name
model, data = myo_sim.load("myolegs")
print(f"Joints: {model.njnt}, Muscles: {model.nu}")

# Or compose another registered model
model, data = myo_sim.load("myotorso")

# Legacy models (backwards compatibility)
model, data = myo_sim.load("myoelbow")
# Compose a full-body MjSpec model
from myo_sim.build.compose import build_model
model = build_model("myofullbody")
print(f"Full body — joints: {model.njnt}, muscles: {model.nu}")

Development

git clone https://github.com/MyoHub/myo_sim.git
cd myo_sim
uv sync --dev
uv run pytest tests/ -x -n auto --ignore=tests/test_equivalence.py

See CONTRIBUTING.md for the full contributor guide.

Citation

If you find this repository useful in your research, please cite the following works:

@misc{MyoSuite2022,
  author    = {Caggiano, Vittorio and Wang, Huawei and Durandau, Guillaume
               and Sartori, Massimo and Kumar, Vikash},
  title     = {{MyoSuite}: A contact-rich simulation suite for musculoskeletal motor control},
  year      = {2022},
  doi       = {10.48550/ARXIV.2205.13600},
  url       = {https://arxiv.org/abs/2205.13600},
}
@article{Li2026MuscleMimic,
  title={Towards Embodied AI with MuscleMimic: Unlocking full-body musculoskeletal motor learning at scale},
  author={Li, Chengkun and Wang, Cheryl and Ziliotto, Bianca and Simos, Merkourios and Kovecses, Jozsef and Durandau, Guillaume and Mathis, Alexander},
  journal={arXiv preprint arXiv:2603.25544},
  year={2026}
}

License

Apache 2.0 — see LICENSE.

biomechanics
mujoco
muscle-model

Project health

Latest release

0.2.3 · Sep 16, 2026

Releases this year

4

Significant stargazers

combinatorylogic

83 followers · starred Nov 2024

Katsu Uchiyama

10 followers · starred Mar 2025