What is GenesisLab?#
GenesisLab is a comprehensive framework for robot reinforcement learning (RL) built on top of Genesis, the world’s fastest physics simulation platform.
Motivation#
Robot learning requires:
Fast simulation for efficient training
Modular design for easy experimentation
Rich observations for complex behaviors
Flexible rewards for diverse tasks
Domain randomization for sim-to-real transfer
GenesisLab addresses these needs by providing a unified framework that:
Leverages Genesis’s ultra-fast parallel simulation
Implements a clean manager-based architecture
Supports diverse sensor modalities
Enables easy task and robot configuration
Integrates seamlessly with popular RL libraries
What Can You Do with GenesisLab?#
1. Train Legged Robots#
Train quadrupeds and humanoids to walk, run, and navigate complex terrains:
import gymnasium as gym
import genesislab.envs
# Train a quadruped on rough terrain
env = gym.make("GenesisLab-Go2-Rough-v0", num_envs=4096)
Supported Robots:
Unitree Go2, A1, B2
Unitree H1, G1 (humanoids)
ANYmal-D
Custom URDF/MJCF robots
2. Develop Custom Tasks#
Create your own tasks with minimal code:
from genesislab.tasks import LocomotionTask
from genesislab.managers import ObservationManager, RewardManager
class MyCustomTask(LocomotionTask):
def setup_scene(self):
# Define your scene
pass
def setup_managers(self):
self.observation_manager = ObservationManager(...)
self.reward_manager = RewardManager(...)
3. Experiment with Sensors#
Use various sensor modalities:
Proprioception: Joint positions, velocities, torques
IMU: Angular velocity, linear acceleration, orientation
Vision: RGB, depth, segmentation cameras
LiDAR: Point cloud sensing
Contact sensors: Force and contact detection
4. Test Sim-to-Real Transfer#
Apply domain randomization for robust policies:
Dynamics randomization (mass, friction, motor strength)
Observation noise injection
Action delays and noise
Terrain randomization
How is GenesisLab Different?#
vs Isaac Lab#
Similarities:
Both provide RL frameworks for robotics
Manager-based architecture
Gymnasium integration
Differences:
GenesisLab uses Genesis (faster simulation)
Simpler configuration system
Focus on locomotion and manipulation tasks
Lightweight and easy to extend
vs Legged Gym / RSL RL#
Similarities:
Focus on legged robot locomotion
Support for terrain randomization
Differences:
GenesisLab supports multiple robot types (not just legged)
More modular manager system
Built-in Gymnasium compatibility
Native support for vision and LiDAR
vs MuJoCo / IsaacGym#
GenesisLab is a framework built on top of Genesis physics engine, not a physics engine itself:
Provides task definitions and RL utilities
Manager-based abstractions
Pre-configured robot models and tasks
Easier to get started with robot learning
Architecture at a Glance#
┌─────────────────────────────────────────────────────────┐
│ Gymnasium Env │
│ ┌───────────────────────────────────────────────────┐ │
│ │ LabScene │ │
│ │ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │ │
│ │ │ Observer │ │ Action │ │ Reward │ │ │
│ │ │ Manager │ │ Manager │ │ Manager │ │ │
│ │ └──────────┘ └──────────┘ └───────────────┘ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │ │
│ │ │ Command │ │ Event │ │ Termination │ │ │
│ │ │ Manager │ │ Manager │ │ Manager │ │ │
│ │ └──────────┘ └──────────┘ └───────────────┘ │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Genesis Scene │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────────┐ │
│ │ Robot │ │ Sensor │ │Terrain │ │ Objects │ │
│ └────────┘ └────────┘ └────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────┘
Next Steps#
Learn about GenesisLab’s architecture
Understand core concepts
Read the design philosophy
Check out the getting started guide