Introduction
rfx provides multiple simulation backends that allow you to develop, test, and train robot policies without physical hardware. All simulation backends implement the same unifiedSimRobot interface, making it easy to switch between simulation and real hardware.
When to Use Simulation
Development
Test control logic and algorithms locally without hardware access
Training
Train RL policies with thousands of parallel environments on GPU
Testing
Unit test your robot code with MockRobot (no dependencies required)
Validation
Verify policy behavior before deploying to real hardware
Quickstart
The fastest way to get started is with the Genesis backend:Genesis currently requires Python 3.13 or earlier. Python 3.14 support is pending upstream wheel releases.
Minimal Python API
All simulation backends use the same interface:Available Backends
rfx supports three simulation backends:Genesis - GPU-accelerated physics
Genesis - GPU-accelerated physics
Fast parallel simulation on GPU with built-in visualization.Install:
uv pip install genesis-worldBest for: Parallel RL training, rapid prototypingMuJoCo MJX - JAX-based simulation
MuJoCo MJX - JAX-based simulation
JAX-accelerated MuJoCo with JIT compilation support.Install:
pip install mujoco mujoco-mjx jax[cuda]Best for: Advanced RL research, custom gradientsMock - Pure PyTorch testing
Mock - Pure PyTorch testing
Lightweight CPU backend with no external dependencies.Install: Built-in (no extra dependencies)Best for: Unit testing, CI/CD, quick experiments
Simulation vs Real Hardware
The unified API makes switching between simulation and real hardware seamless:robot.observe()- Get current staterobot.act(action)- Send control commandsrobot.reset()- Reset to initial state
Common Configuration
Control simulation behavior with optional parameters:Next Steps
Backend Details
Learn about Genesis, MuJoCo MJX, and Mock backends
MockRobot for Testing
Use MockRobot for unit tests without dependencies
