Genesis Sim

Platforms & APIs 💻 Python ⚖️ Apache-2.0 🟢 Actively maintained
29.9k stars

Genesis World is a simulation platform for physical AI development, integrating a unified multi-physics engine, a photo-realistic renderer (Nyx), and a cross-platform compiler (Quadrants) behind a Pythonic interface. It solves the problem of needing a scalable, extensible simulation environment for robotics and AI research, from laptop to datacenter GPUs. It is for researchers and developers building robotics environments, ML pipelines, data generation, and agentic simulation.

✨ Key features

  • Unified multi-physics engine: Rigid, FEM, MPM, SPH, PBD, and more.
  • Photo-realistic rendering with Nyx, plus Luisa and Pyrender paths.
  • Cross-platform compiler (Quadrants) targeting CUDA, ROCm, Metal, Vulkan, x86, ARM64.
  • Pythonic simulation interface with asset parsing, controllers, sensors, GUI.
  • Scales from laptop to datacenter GPUs; supports parallel and heterogeneous environments.
  • Autodiff, GPU graphs, and fastcache machinery built-in.

🎯 Use cases

  • Simulating robot manipulation tasks like Franka picking and grasping.
  • Training and evaluating reinforcement learning policies in parallel environments.
  • Generating synthetic data for computer vision with realistic rendering.
  • Prototyping deformable object interactions (cloth, fluids, sand) for research.
  • Developing and testing sensor suites (depth, IMU, lidar, tactile) in simulation.

📦 Installation

🧰 Requirements: Requires Python >=3.10,<3.14 and PyTorch (install separately). Optional extras for IPC solver (pyuipc) and Nyx renderer (gs-nyx).

Using pip

Install PyTorch first following the official instructions.

Then, install Genesis via PyPI:

pip install genesis-world  # Requires Python>=3.10,<3.14;

For the latest version to date, make sure that pip is up-to-date via pip install --upgrade pip, then run command:

pip install git+https://github.com/Genesis-Embodied-AI/genesis-world.git

Users seeking to contribute are encouraged to install Genesis in editable mode. First, make sure that genesis-world has been uninstalled, then clone the repository and install locally:

git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
cd genesis-world
pip install -e ".[dev]"

Using uv

Install uv, then:

git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
cd genesis-world
uv sync

Then install PyTorch for your platform (e.g., CUDA 12.6):

uv pip install torch --index-url https://download.pytorch.org/whl/cu126

Run an example:

uv run examples/rigid/single_franka.py

🚀 Usage

# Example from README: run a rigid simulation with a Franka robot
# (Assuming you have installed genesis-world and have a script like examples/rigid/single_franka.py)
import genesis as gs

# Initialize Genesis
scene = gs.Scene()

# Add a plane and a Franka robot
plane = scene.add_entity(gs.morphs.Plane())
franka = scene.add_entity(
    gs.morphs.URDF(file='urdf/franka_description/robots/franka.urdf', pos=(0, 0, 0.5))
)

# Build the scene
scene.build()

# Control the robot (e.g., set joint positions)
# ...

# Run simulation for 100 steps
for i in range(100):
    scene.step()

(Note: This is a simplified example; actual usage may vary. See the examples directory for complete scripts.)

❓ FAQ

What Python versions are supported?

Genesis World requires Python >=3.10 and <3.14.

How do I install the latest version from GitHub?

Run pip install git+https://github.com/Genesis-Embodied-AI/genesis-world.git after upgrading pip.

What are the optional extras for IPC and Nyx?

For the IPC solver, install pyuipc (Linux/Windows x86, NVIDIA GPU). For the Nyx renderer, install gs-nyx.

Is Quadrants included with Genesis World?

Yes, Quadrants is bundled with Genesis automatically; no extra install is needed.

📊 Repository

Stars★ 29,882
Forks🍴 2,851
Open issues🐛 132
Last commit🕒 Sep 4, 2026
Created📅 Oct 2023
Language💻 Python
License⚖️ Apache-2.0

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.