protomotions.simulator package¶
Physics simulator interfaces providing unified API across different engines.
Simulator (Base Class)¶
- class Simulator(config, robot_config, terrain, device, scene_lib, visualization_markers)¶
Base class for all physics simulators.
Provides unified interface for IsaacGym, IsaacLab, Genesis, and Newton engines. Handles robot spawning, environment setup, scene management, terrain integration, and state management.
Key Responsibilities:
Environment setup and robot spawning
State management with unified RobotState format
PD control and direct torque control
Visualization markers
Data conversion between simulator orderings
- Parameters:
config – SimulatorConfig (num_envs, physics params)
robot_config – Robot morphology and control
terrain – Optional terrain for complex surfaces
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Key Methods:
reset()- Reset simulationstep(actions)- Step physics with actionsget_robot_state()- Get current robot stateset_robot_state(state)- Set robot state
Example:
sim = IsaacGymSimulator(config, robot_config, device=device) sim.reset() for _ in range(1000): actions = policy(sim.robot_state) sim.step(actions)
IsaacGym Simulator¶
- class IsaacGymSimulator(config, robot_config, terrain, device, scene_lib, visualization_markers)¶
Simulator implementation using NVIDIA IsaacGym.
Provides GPU-accelerated physics simulation optimized for RL training. Fastest simulator option for parallel environment simulation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
IsaacLab Simulator¶
- class IsaacLabSimulator(config, robot_config, terrain, device, scene_lib, visualization_markers)¶
Simulator implementation using NVIDIA IsaacLab (Isaac Sim).
Provides GPU-accelerated physics with photorealistic rendering. Supports USD assets, advanced materials, and ray tracing.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Features:
Photorealistic rendering
USD asset pipeline
Advanced materials and lighting
Camera sensors
Genesis Simulator¶
- class GenesisSimulator(config, robot_config, terrain, device, scene_lib, visualization_markers)¶
Simulator implementation using Genesis physics engine.
Modern physics engine for robotics and animation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Newton Simulator¶
- class NewtonSimulator(config, robot_config, terrain, device, scene_lib, visualization_markers)¶
Simulator implementation using Newton physics engine.
High-performance physics engine built on NVIDIA Warp for fast parallel simulation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Features:
Very fast simulation performance
Built on NVIDIA Warp for GPU acceleration
Efficient parallel environment execution
Modern Python-based architecture