Core Concepts¶
SIMPLE couples MuJoCo (contact-rich rigid-body physics and robot control)
with Isaac Sim (photorealistic ray-traced rendering). Physics and rendering
are strictly decoupled: MuJoCo integrates at 500 Hz (physics_dt = 0.002),
Isaac Sim consumes the synchronized states and renders RGB frames at the task’s
render_hz (50 Hz for the whole-body pipelines).
BaseDualSim (envs/base_dual_env.py) is the gymnasium.Env that owns
both simulators and the active Task. Isaac Sim is initialized lazily — the
SimulationApp is created only when "isaac" appears in sim_mode — so
MuJoCo-only workflows pay no rendering cost. Concrete environments
(TabletopGraspEnv, LocoManipulationEnv, SonicLocoManipEnv) subclass it.
import gymnasium as gym
import simple.envs as _ # register all envs
env = gym.make("simple/G1WholebodyBendPickMP-v0", sim_mode="mujoco_isaac")
obs, info = env.reset()
obs, reward, terminated, truncated, info = env.step(action)