Cross-Simulator Support#
MetaSim enables you to write code once and run it across multiple physics simulators without modifications. This is one of the core features that makes RoboVerse a unified platform for robot learning.
Supported Simulators#
Simulator |
Backend |
GPU Parallel |
Best Use Case |
|---|---|---|---|
|
MuJoCo |
Via MJX |
Fast prototyping, CPU training |
|
MuJoCo MJX |
Native |
Massively parallel RL |
|
Isaac Sim |
Native |
High-fidelity sim2real |
|
Isaac Gym |
Native |
GPU-accelerated RL |
|
SAPIEN 3 |
Native |
Manipulation research |
|
SAPIEN 2 |
- |
Legacy support |
|
Genesis |
Native |
Large-scale training |
|
PyBullet |
- |
Debugging, education |
Basic Usage#
Switching Simulators#
Change the simulator by setting the simulator parameter in your scenario:
from metasim.scenario.scenario import ScenarioCfg
# Run with MuJoCo
scenario = ScenarioCfg(
robots=["franka"],
simulator="mujoco", # Change this to switch simulators
num_envs=1,
)
# Or switch to Isaac Sim
scenario = ScenarioCfg(
robots=["franka"],
simulator="isaacsim",
num_envs=1,
)
Command Line Examples#
Most scripts support the --sim argument to select the simulator:
# Run with MuJoCo
python scripts/advanced/replay_demo.py --sim=mujoco --task=StackCube
# Run with Isaac Gym
python scripts/advanced/replay_demo.py --sim=isaacgym --task=StackCube
# Run with SAPIEN 3
python scripts/advanced/replay_demo.py --sim=sapien3 --task=PickCube
Considerations#
Feature Parity#
Not all features are available across all simulators. Check the Support Matrix for detailed compatibility information.