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 simulation

  • step(actions) - Step physics with actions

  • get_robot_state() - Get current robot state

  • set_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