# genesis-embodied-ai/genesis-world architecture

> Architecture diagram of the GitHub repository genesis-embodied-ai/genesis-world, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-20). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/genesis-embodied-ai/genesis-world
- Repository: https://github.com/genesis-embodied-ai/genesis-world

## Overview

Genesis World is a Python-facing physical-AI simulation platform. A user defines a scene from morphologies, materials, and assets; the scene builds a simulator and heterogeneous physics solvers; stepping advances shared state through collision, constraints, and couplers. Sensors and camera rendering expose observations, while recorders persist trajectories or other step data. The tree supports in-repo Pyrender rendering, URDF/USD processing, autodiff, and Quadrants-backed kernels; Nyx and Luisa are documented optional rendering paths but are not implemented in the sampled tree.

Main entry points: [`genesis/engine/scene.py`](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/scene.py) (Scene API), [`genesis/engine/simulator.py`](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/simulator.py) (Simulator), [`genesis/engine/solvers/__init__.py`](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/__init__.py) (Physics Solvers), [`genesis/engine/sensors/camera.py`](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/sensors/camera.py) (Camera Sensors)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Simulation Interface"]
  node_scene["Scene API<br/>[scene.py]"]
  node_sensor_manager["Sensor Manager<br/>[sensor_manager.py]"]
  node_recorder_manager["Recorder Manager"]
  node_visualizer["Scene Visualizer<br/>[visualizer.py]"]
end

subgraph group_assets["Assets and Models"]
  node_morphologies["Morphologies<br/>[morphs.py]"]
  node_urdf["URDF Parser<br/>[urdf.py]"]
  node_usd["USD Context<br/>[usd_context.py]"]
  node_entities["Entity Models<br/>[__init__.py]"]
end

subgraph group_physics["Physics Engine"]
  node_simulator["Simulator<br/>[simulator.py]"]
  node_solvers["Physics Solvers<br/>[__init__.py]"]
  node_rigid_solver["Rigid Solver<br/>[rigid_solver.py]"]
  node_collision["Collision Detection<br/>[collider.py]"]
  node_constraints["Constraint Solver<br/>[solver.py]"]
  node_couplers["Physics Couplers<br/>[sap_coupler.py]"]
  node_shared_state["Shared State<br/>[__init__.py]"]
end

subgraph group_observations["Sensors and Output"]
  node_camera["Camera Sensors<br/>[camera.py]"]
  node_rasterizer["Pyrender Rasterizer<br/>[rasterizer.py]"]
  node_recorders["Trajectory Recorders<br/>[trajectory.py]"]
end

subgraph group_compute["Kernel Runtime"]
  node_kernel_data["Kernel Data<br/>[array_class.py]"]
  node_autodiff["Autodiff Runtime<br/>[tensor.py]"]
end

node_user(("Simulation User"))
node_quadrants{{"Quadrants Backend"}}
node_nyx["Nyx Renderer"]
node_luisa["Luisa Renderer"]

node_user -->|"configures"| node_scene
node_scene -->|"loads models"| node_morphologies
node_morphologies -->|"parses URDF"| node_urdf
node_morphologies -->|"processes USD"| node_usd
node_scene -->|"creates entities"| node_entities
node_scene -->|"builds simulator"| node_simulator
node_simulator -->|"advances solvers"| node_solvers
node_simulator -->|"updates state"| node_shared_state
node_solvers -->|"dispatches rigid"| node_rigid_solver
node_rigid_solver -->|"detects contacts"| node_collision
node_rigid_solver -->|"solves constraints"| node_constraints
node_simulator -->|"coordinates coupling"| node_couplers
node_scene -->|"registers sensors"| node_sensor_manager
node_sensor_manager -->|"dispatches sensors"| node_camera
node_camera -->|"renders views"| node_rasterizer
node_scene -->|"controls GUI"| node_visualizer
node_scene -->|"configures recording"| node_recorder_manager
node_recorder_manager -->|"processes frames"| node_recorders
node_solvers -->|"uses kernel data"| node_kernel_data
node_kernel_data -->|"runs kernels"| node_quadrants
node_solvers -->|"supports gradients"| node_autodiff
node_camera -.->|"optional rendering"| node_nyx
node_camera -.->|"optional rendering"| node_luisa

click node_scene "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/scene.py"
click node_sensor_manager "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/sensors/sensor_manager.py"
click node_recorder_manager "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/recorders/recorder_manager.py"
click node_visualizer "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/vis/visualizer.py"
click node_morphologies "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/options/morphs.py"
click node_urdf "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/ext/urdfpy/urdf.py"
click node_usd "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/utils/usd/usd_context.py"
click node_entities "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/entities/__init__.py"
click node_simulator "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/simulator.py"
click node_solvers "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/__init__.py"
click node_rigid_solver "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/rigid_solver.py"
click node_collision "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/collider/collider.py"
click node_constraints "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/constraint/solver.py"
click node_couplers "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/couplers/sap_coupler.py"
click node_shared_state "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/states/__init__.py"
click node_camera "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/sensors/camera.py"
click node_rasterizer "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/vis/rasterizer.py"
click node_recorders "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/recorders/trajectory.py"
click node_kernel_data "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/utils/array_class.py"
click node_autodiff "https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/grad/tensor.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_scene,node_sensor_manager,node_recorder_manager,node_visualizer,node_user toneBlue
class node_morphologies,node_urdf,node_usd,node_entities toneAmber
class node_simulator,node_solvers,node_rigid_solver,node_collision,node_constraints,node_couplers,node_shared_state toneMint
class node_camera,node_rasterizer,node_recorders toneRose
class node_kernel_data,node_autodiff,node_quadrants,node_nyx,node_luisa toneIndigo
```

## Components

### Simulation Interface

- [Scene API](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/scene.py): `genesis/engine/scene.py`
- [Sensor Manager](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/sensors/sensor_manager.py): `genesis/engine/sensors/sensor_manager.py`
- [Recorder Manager](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/recorders/recorder_manager.py): `genesis/recorders/recorder_manager.py`
- [Scene Visualizer](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/vis/visualizer.py): `genesis/vis/visualizer.py`

### Assets and Models

- [Morphologies](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/options/morphs.py): `genesis/options/morphs.py`
- [URDF Parser](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/ext/urdfpy/urdf.py): `genesis/ext/urdfpy/urdf.py`
- [USD Context](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/utils/usd/usd_context.py): `genesis/utils/usd/usd_context.py`
- [Entity Models](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/entities/__init__.py): `genesis/engine/entities/__init__.py`

### Physics Engine

- [Simulator](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/simulator.py): `genesis/engine/simulator.py`
- [Physics Solvers](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/__init__.py): `genesis/engine/solvers/__init__.py`
- [Rigid Solver](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/rigid_solver.py): `genesis/engine/solvers/rigid/rigid_solver.py`
- [Collision Detection](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/collider/collider.py): `genesis/engine/solvers/rigid/collider/collider.py`
- [Constraint Solver](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/solvers/rigid/constraint/solver.py): `genesis/engine/solvers/rigid/constraint/solver.py`
- [Physics Couplers](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/couplers/sap_coupler.py): `genesis/engine/couplers/sap_coupler.py`
- [Shared State](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/states/__init__.py): `genesis/engine/states/__init__.py`

### Sensors and Output

- [Camera Sensors](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/engine/sensors/camera.py): `genesis/engine/sensors/camera.py`
- [Pyrender Rasterizer](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/vis/rasterizer.py): `genesis/vis/rasterizer.py`
- [Trajectory Recorders](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/recorders/trajectory.py): `genesis/recorders/trajectory.py`

### Kernel Runtime

- [Kernel Data](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/utils/array_class.py): `genesis/utils/array_class.py`
- [Autodiff Runtime](https://github.com/genesis-embodied-ai/genesis-world/blob/main/genesis/grad/tensor.py): `genesis/grad/tensor.py`

### Other components

- **Simulation User**
- **Quadrants Backend**
- **Nyx Renderer**
- **Luisa Renderer**

## Connections

- Simulation User → Scene API: configures
- Scene API → Morphologies: loads models
- Morphologies → URDF Parser: parses URDF
- Morphologies → USD Context: processes USD
- Scene API → Entity Models: creates entities
- Scene API → Simulator: builds simulator
- Simulator → Physics Solvers: advances solvers
- Simulator → Shared State: updates state
- Physics Solvers → Rigid Solver: dispatches rigid
- Rigid Solver → Collision Detection: detects contacts
- Rigid Solver → Constraint Solver: solves constraints
- Simulator → Physics Couplers: coordinates coupling
- Scene API → Sensor Manager: registers sensors
- Sensor Manager → Camera Sensors: dispatches sensors
- Camera Sensors → Pyrender Rasterizer: renders views
- Scene API → Scene Visualizer: controls GUI
- Scene API → Recorder Manager: configures recording
- Recorder Manager → Trajectory Recorders: processes frames
- Physics Solvers → Kernel Data: uses kernel data
- Kernel Data → Quadrants Backend: runs kernels
- Physics Solvers → Autodiff Runtime: supports gradients
- Camera Sensors → Nyx Renderer: optional rendering
- Camera Sensors → Luisa Renderer: optional rendering
