
Genie Sim is the simulation platform from AgiBot. It provides developers with a complete toolchain for environment reconstruction, scene generalization, data collection, and automated evaluation. Its core module, Genie Sim Benchmark is a standardized tool dedicated to establishing the most accurate and authoritative evaluation for embodied intelligence.
The platform integrates 3D reconstruction with visual generation to create a high-fidelity simulation environment. It pioneers LLM-driven technology to generate vast simulation scenes and evaluation configurations in minutes. The evaluation system covers 200+ tasks across 100,000+ scenarios to establish a comprehensive capability profile for models. Genie Sim also opens over 10,000 hours of synthetic data including real-world robot operation scenarios.
The platform will significantly accelerate model development, reduce reliance on physical hardware, and empower innovation in embodied intelligence. Simulation assets, dataset, and code are fully open source.
geniesim CLI: one command-line entry point for the entire platform โ docker lifecycle, ROS 2 workspace builds, health diagnosis (doctor), pure-Python wheel deploy, asset / scene bootstrap. Packaged as a standalone PEP 517 / PEP 621 wheel.SKILL.md recipes for benchmarking, inference checks, scene generation, asset search, and teleop โ invokable directly by Claude Code / agentic coding agents, so the simulator can be driven without a human first reading the docs.geniesim_ros brings physics, render, and the robot into ROS 2 natively โ teleop, MoveIt, and ros2_control close the loop on one shared sim_time. Multiple physics backends (Isaac Sim PhysX, Newton-standalone) selectable per scene, with cloth + soft-body support on the Newton path.flowchart LR
pip(["๐ฆ pip install<br/>geniesim_cli<br/><i>(host)</i>"]) ==> docker(["๐ณ geniesim<br/>docker up<br/><i>(host)</i>"]) ==> auto(["โ๏ธ tier-1 peers<br/>auto-install<br/><i>(in-container)</i>"]) ==> shell(["๐ป geniesim<br/>docker into<br/><i>(host)</i>"])
classDef step fill:#dbeafe,stroke:#1e40af,color:#1e3a8a,font-weight:bold
class pip,docker,auto,shell step
linkStyle 0,1,2 stroke:#1e40af,stroke-width:2px
# === on the host ===
pip install -e source/geniesim_cli/ # standalone CLI wheel
geniesim docker build # build the Isaac Sim 5.1 + Jazzy image
geniesim docker up # boot the container; the entrypoint
# editable-installs every tier-1 from
# the bind-mounted workspace
geniesim docker into # interactive shell inside the container
# === inside the container โ sanity-check the stack ===
geniesim status # per-distribution health probe
geniesim doctor # diagnose & repair (rosdep, env, โฆ)
geniesim bootstrap # re-install tier-1 peers + opt-in tier-2
The repo ships AGENTS.md + per-package skills/<name>/SKILL.md as machine-readable signposts. Claude Code, Cursor, etc. follow them on their own โ say "run the pnp benchmark against localhost:8999" or "launch the WBC scene with MoveIt" and the agent walks the trail.
AGENTS.md (root, boot sequence) โ source/AGENTS.md (module map) โ source/<pkg>/AGENTS.md (architecture + commands) โ source/<pkg>/skills/<name>/SKILL.md (copy-paste recipes). Full CLI verb table: .agent/geniesim_cli.md.
[!IMPORTANT] ๐จ Tier-1 peers come up automatically; tier-2 peers are opt-in.
geniesim docker up's entrypoint editable-installs every tier-1 peer declared insource/geniesim/pyproject.toml. The asset librarygeniesim_assetsis a tier-1 peer distributed out of band (sourced from HuggingFace / ModelScope), and editable-installed by the entrypoint so every other peer can find it.Tier-2 peers (
geniesim_teleopยทgeniesim_generatorยทgeniesim_world) have heavy stacks (VR / LLM / CUDA-ML) and are not auto-installed. Install withpip install -e "source/geniesim/[teleop|generator|world|all]"โ or rungeniesim bootstrapfor an interactive re-install of the whole tree.
flowchart LR
list(["๐ benchmark<br/>list / categories"]) ==> probe(["๐ check-<br/>inference"]) ==> run(["๐งช benchmark<br/>run ยท batch"]) ==> submit(["๐ RoboColiseum<br/>leaderboard"])
classDef step fill:#ede9fe,stroke:#5b21b6,color:#3b0764,font-weight:bold
class list,probe,run,submit step
linkStyle 0,1,2 stroke:#5b21b6,stroke-width:2px
The Genie Sim Benchmark is the engine behind RoboColiseum โ and the same tool you use to get ready for it:
instruction / robust / manip / spatial). The boards and their baseline scores are in the Genie Sim Benchmark Leaderboard below.source/geniesim_benchmark/skills/robocoliseum/; just ask an AI agent (Claude Code, Cursor, โฆ) to drive them.Run it locally โ cat source/geniesim_benchmark/USAGE.md for how to run a benchmark task on your own machine against your inference server (CLI verbs, common commands, and overrides).
flowchart LR
build(["๐จ ros build<br/>dev"]) ==> scene(["๐ฌ launch<br/>scene ร launcher"]) ==> sim(["โก RT Engine<br/>PhysX ยท Newton ยท mjwarp"]) ==> moveit(["๐ฆพ MoveIt 2<br/>+ WBC RViz"])
classDef step fill:#dcfce7,stroke:#15803d,color:#14532d,font-weight:bold
class build,scene,sim,moveit step
linkStyle 0,1,2 stroke:#15803d,stroke-width:2px
The RT Engine ships its own SKILLs that walk you through every step โ workspace build โ scene launch โ MoveIt + WBC RViz โ bringing your own robot โ teleop โ recording โ debugging. Don't memorize ros2 launch flags โ follow the skill:
# inside the container:
geniesim ros build dev
cat source/geniesim_ros/skills/build-workspace/SKILL.md # `geniesim ros build dev`
cat source/geniesim_ros/skills/launch-scene/SKILL.md # scene ร launcher matrix
cat source/geniesim_ros/skills/moveit-wbc/SKILL.md # MoveIt 2 + WBC RViz for Genie G2
cat source/geniesim_ros/skills/add-robot/SKILL.md # bring your own URDF / xacro
cat source/geniesim_ros/skills/*/SKILL.md # and more
geniesim_worldflowchart LR
pano(["๐ผ๏ธ Panorama<br/>(.png)"]) ==> da(["๐ญ DA360<br/>depth"]) ==> sharp(["โจ SHARP<br/>Gaussians"]) ==> world(["๐ 3D world<br/>(PLY ยท Gaussians)"])
classDef step fill:#ffedd5,stroke:#c2410c,color:#7c2d12,font-weight:bold
class pano,da,sharp,world step
linkStyle 0,1,2 stroke:#c2410c,stroke-width:2px
Turn an equirectangular panorama into an explorable photorealistic 3D world. (Loading the output into the RT Engine is a ๐ง W.I.P. โ for now the generated PLY / Gaussians are consumed by geniesim_world's own tooling.)
cat source/geniesim_world/skills/generate-world/SKILL.md
scene_reconstructionflowchart LR
input(["๐ฅ LiDAR and Images"]) ==> align(["๐ Pixel-level<br/> Alignment of Point Cloud and <br/>Camera Pose"]) ==> gs(["๐ 3DGS"]) ==> world(["๐ 3D world<br/>(PLY ยท Gaussians)"])
classDef step fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e,font-weight:bold
class input,align,gs,world step
linkStyle 0,1,2 stroke:#0369a1,stroke-width:2px
Reconstruct high-fidelity 3D scene assets from real-world LiDAR scans and camera images. The pipeline aligns point clouds with camera poses at pixel level, trains 3D Gaussian Splatting, and produces simulation-ready assets.
cat source/scene_reconstruction/AGENTS.md
See source/scene_reconstruction/README.md for the full pipeline details and AGENTS.md for the per-subsystem agent guides.
geniesim_generatorflowchart LR
nl(["๐ฌ NL prompt<br/>'an apple on the table'"]) ==> assets(["๐ search<br/>asset library"]) ==> dsl(["๐ Scene-Language<br/>LLM_RESULT.py"]) ==> usda(["๐๏ธ scene.usda<br/>+ layout graph"])
classDef step fill:#ede9fe,stroke:#6d28d9,color:#3b0764,font-weight:bold
class nl,assets,dsl,usda step
linkStyle 0,1,2 stroke:#6d28d9,stroke-width:2px
Describe a scene in words; an LLM grounds it against the asset library, writes a Scene-Language DSL program, and the generator compiles it into scene.usda + a relationship graph. Drive it through the Open WebUI agent loop, or have Claude write the DSL directly (no WebUI / no MCP server). Embeddings run via a text-embedding API (no GPU) or a local VL model (GPU) โ your pick at deploy time.
Generated scenes are written under source/geniesim_generator/src/benchmark/config/llm_task/<scene_id>/<run_id>/. If generated inside the Docker stack, the same bind-mounted files appear at /opt/geniesim_generator/src/benchmark/config/llm_task/<scene_id>/<run_id>/ in the container and at the source/... path on the host. Open the resulting scene.usda with Isaac Sim inside the Genie Sim container so its payload paths resolve as generated; if you open it from the host side, adjust the payload paths inside the USDA first.
cat source/geniesim_generator/skills/deploy-generator/SKILL.md # install + start: MCP stack + Open WebUI, text vs VL embeddings
cat source/geniesim_generator/skills/search-assets/SKILL.md # query the asset index by concept
cat source/geniesim_generator/skills/generate-scene/SKILL.md # prompt โ LLM_RESULT.py โ scene.usda
See source/geniesim_ros/README.md for the engine overview, source/README.md for the full module map (every geniesim_* package with its docs + skills), and AGENTS.md for the per-subsystem agent guides.
geniesim_teleopflowchart LR
up(["๐ณ docker5.1 up"]) ==> collect(["๐ฎ autoteleop.sh<br/>VR collection"]) ==> keep(["๐พ keep / discard<br/>(y / n)"]) ==> post(["๐ฆ post-process<br/>โ HDF5 episodes"])
classDef step fill:#fce7f3,stroke:#be185d,color:#831843,font-weight:bold
class up,collect,keep,post step
linkStyle 0,1,2 stroke:#be185d,stroke-width:2px
Collect demonstration data by teleoperating the robot with a Pico VR headset, then turn the recorded rosbags into HDF5 episodes. Once the image is built and the GUI container is up (geniesim docker5.1 up succeeds), the whole flow is two host-side scripts:
# 1. VR collection โ press y (keep) / n (discard) when the collection is done:
./source/geniesim_teleop/scripts/autoteleop.sh
# 2. Post-process the recording into HDF5 episodes:
./source/geniesim_teleop/scripts/autoteleop_post_process.sh <task_name>
See source/geniesim_teleop/README.md for the controller button map, Pico setup, and task configuration.
data_collectionflowchart LR
build(["๐จ docker build +<br/>autocollect build"]) ==> list(["๐ autocollect list<br/>pick a task"]) ==> run(["๐ฅ autocollect run<br/>cuRobo auto-planning"]) ==> ep(["๐พ episodes<br/>recording_data/"])
classDef step fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e,font-weight:bold
class build,list,run,ep step
linkStyle 0,1,2 stroke:#0369a1,stroke-width:2px
The automated counterpart to teleoperation: pre-orchestrated tasks are collected unattended using cuRobo trajectory planning โ no human in the loop. Install the geniesim client and assets first (see ยง 3.1).
# 1. Build the GenieSim base image, then the data-collection image:
geniesim docker build # โ registry.agibot.com/genie-sim/geniesim3:latest (base)
geniesim autocollect build # โ registry.agibot.com/genie-sim/geniesim3-data-collection:latest
# 2. Discover tasks, then collect one (headless, unattended):
geniesim autocollect list --robot=g2 <substr>
geniesim autocollect run <TASK> --headless --standalone
Or let your AI assistant drive the whole run โ point it at the skill and it follows the workflow (resolve task โ check prereqs โ launch โ monitor & verify):
cat source/data_collection/skills/run-data-collection/SKILL.md
Episodes land in source/data_collection/recording_data/. See source/data_collection/README.md (and its AGENTS.md / skill) for flags, task configs, and the two-process server/client layout.
The arc of the platform โ what shipped when, and what's coming next.
flowchart LR
v2["<b>v2.x ยท 2025</b><br/>Challenge tasks<br/>2ร sim speed"]
v30["<b>v3.0 ยท Jan 2026</b><br/>Isaac Sim 5.1<br/>Genie G2 ยท 3DGS"]
v31["<b>v3.1 ยท Apr 2026</b><br/>Genie Sim World<br/>RLinf"]
v32["<b>v3.2 ยท Jun 2026</b><br/>๐ง CLI ยท ๐ค SKILLs<br/>โก RT Engine"]
next["<b>Next</b><br/>Isaac Sim 6.0<br/>More Newton solvers<br/>Benchmark refactor"]
v2 --> v30 --> v31 --> v32 --> next
classDef done fill:#d1f0d8,stroke:#1f6f3d,color:#0b3b1f
classDef current fill:#cfe2ff,stroke:#084298,color:#084298,stroke-width:2px
classDef future fill:#fff3cd,stroke:#856404,color:#5c4400
class v2,v30,v31 done
class v32 current
class next future
geniesim_benchmark into a benchmark layer on top of geniesim_ros (collapses the two parallel stacks โ see .agent/geniesim_benchmark.md)ros2 bag via the record-episode SKILL)geniesim_world outputs into the RT Engine (load .ply / .gsp Gaussians from a scene_*.yaml)spatial board (alongside instruction / robust / manip), and the robust board now aggregates and scores tasks per perturbation type (instruction, robot pose, background, image quality, camera position). The full pipeline โ download datasets, fetch baseline weights, run an example leaderboard service, submit & track โ ships as agent-friendly one-click SKILLs under source/geniesim_benchmark/skills/robocoliseum/.geniesim CLI โ one command for docker, ROS 2 builds, bootstrap, status, doctor, deploy; bash/zsh completion; standalone PEP 517 / PEP 621 wheel.SKILL.md recipes (run-benchmark, check-inference, generate-scene, search-assets, deploy-generator, run-teleop) that Claude Code and other agents invoke to drive the simulator end-to-end.geniesim_ros ships physics + render + robot as a first-class ROS 2 node sharing one sim_time. Multiple physics backends (Isaac Sim PhysX, Isaac Sim Newton, Kit-free Newton-standalone) with cloth / soft-body on the Newton path.arm ร gripper matrix, drop-in MoveIt 2 + WBC RViz, three IK plugins; reference URDF for Franka, UR5, Aloha, ARX, Agilex; bring-your-own via xacro + offline mesh-prep tools.scene_pnp_g2_op) and whole-body control (scene_wbc_g2_sp).robot.usda + payloads/Physics/{physics,physx,mujoco}.usda); IsaacSim 5.1 + 6.0 share one CLI surface; fisheye camera + de-skewed rotary lidar.pyproject.toml, rendered in source/README.md; enforced by geniesim tool deps-dag in CI.Please refer to these links to download assets and dataset:
The four tables below are the RoboColiseum boards โ instruction, robust, manip, spatial โ reporting baseline scores for four reference models. The final GenieSim-Sim2Real table is not a competition board; it quantifies the simulation-to-reality fidelity of the benchmark. Each task is evaluated under a 2ร2 design that crosses the training-data source (simulation vs. real) with the evaluation environment (simulation vs. real), yielding the sim-to-sim, real-to-sim, sim-to-real, and real-to-real conditions. The close agreement between corresponding simulated and physical success rates indicates that evaluation in Genie Sim is a faithful proxy for real-world evaluation.
Baseline model repositories:
| Model | Repository |
|---|---|
| ฯ0.5 / ฯ0 | Anonymous-694/ACoT-VLA @ agibot_world_challenge |
| acot | AgibotTech/ACoT-VLA |
| GR00T-N1.7 | MiaoMieu/Isaac-GR00T |
GenieSim-Instruction
|
GenieSim-Robust
|
| Tasks | ฯ0.5 | ACoT-VLA | GR00T-N1.7 | ฯ0 |
|---|---|---|---|---|
| Open Door | 0.95 | 0.55 | 0.90 | 0.90 |
| Hold Pot | 0.55 | 0.45 | 0.11 | 0.20 |
| Pour Workpiece | 0.93 | 0.93 | 0.87 | 0.07 |
| Stock and Straighten Shelf | 0.40 | 0.18 | 0.24 | 0.18 |
| Take Wrong Item Shelf | 0.85 | 0.85 | 0.77 | 0.65 |
| Scoop Popcorn | 0.95 | 0.95 | 0.77 | 0.87 |
| Clean the Desktop | 0.00 | 0.00 | 0.02 | 0.00 |
| Place Block into Box | 0.58 | 0.58 | 0.50 | 0.45 |
| Sorting Packages | 0.51 | 0.28 | 0.20 | 0.15 |
| Sorting Packages Continuous | 0.10 | 0.00 | 0.00 | 0.00 |
| Avg. | 0.58 | 0.48 | 0.44 | 0.35 |
| Tasks | ฯ0.5 | ACoT-VLA | GR00T-N1.7 | ฯ0 |
|---|---|---|---|---|
| Pick Object Absolute Position | 0.80 | 0.81 | 0.55 | 0.46 |
| Pick Object Relative Position | 0.65 | 0.60 | 0.43 | 0.20 |
| Place Beverage to Another's Position | 0.40 | 0.53 | 0.35 | 0.11 |
| Place Object Relative Position | 0.50 | 0.51 | 0.43 | 0.21 |
| Sort Cubes by Size | 0.00 | 0.30 | 0.10 | 0.00 |
| Sort Number | 0.00 | 0.13 | 0.13 | 0.06 |
| Stack Bowls | 0.20 | 0.00 | 0.00 | 0.00 |
| Stack Three Building Blocks | 0.30 | 0.30 | 0.00 | 0.00 |
| Avg. | 0.36 | 0.40 | 0.25 | 0.13 |
| Tasks | Sim Env Sim Data (sim-to-sim) | Sim Env Real Data (real-to-sim) | Real Env Sim Data (sim-to-real) | Real Env Real Data (real-to-real) |
|---|---|---|---|---|
| Select Color | 0.86 | 0.75 | 0.85 | 0.73 |
| Recognize Size | 0.93 | 0.75 | 0.94 | 0.75 |
| Grasp Targets | 0.72 | 0.54 | 0.71 | 0.58 |
| Organize Items | 0.48 | 0.45 | 0.60 | 0.40 |
| Pack in Supermarket | 0.94 | 1.00 | 0.95 | 0.95 |
| Sort Fruit | 0.90 | 0.90 | 1.00 | 1.00 |
| Place Block into Drawer | 0.80 | 0.90 | 0.85 | 0.90 |
| Bimanual Chip Handover | 0.80 | 0.70 | 0.73 | 0.71 |
| Avg. | 0.80 | 0.75 | 0.83 | 0.75 |
โ Sim Data: 500~1500 episodes of simulation data. Real Data: 500 episodes of real-world data. All models are post-trained from the ฯ0.5 baseline.
All the data and code within source/geniesim_* and source/data_collection are under Mozilla Public License 2.0 unless licensed specifically. The source/scene_reconstruction project contains code under multiple licenses, for complete and updated licensing details, please see the LICENSE files
Please consider citing our work either way below if it helps your research.
@misc{yin2026geniesim30,
title={Genie Sim 3.0 : A High-Fidelity Comprehensive Simulation Platform for Humanoid Robot},
author={Chenghao Yin and Da Huang and Di Yang and Jichao Wang and Nanshu Zhao and Chen Xu and Wenjun Sun and Linjie Hou and Zhijun Li and Junhui Wu and Zhaobo Liu and Zhen Xiao and Sheng Zhang and Lei Bao and Rui Feng and Zhenquan Pang and Jiayu Li and Qian Wang and Maoqing Yao},
year={2026},
eprint={2601.02078},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2601.02078},
}
84 followers ยท starred May 2025
271 followers ยท starred Sep 2025
433 followers ยท starred May 2026
125 followers ยท starred Jul 2025

Genie Sim is the simulation platform from AgiBot. It provides developers with a complete toolchain for environment reconstruction, scene generalization, data collection, and automated evaluation. Its core module, Genie Sim Benchmark is a standardized tool dedicated to establishing the most accurate and authoritative evaluation for embodied intelligence.
The platform integrates 3D reconstruction with visual generation to create a high-fidelity simulation environment. It pioneers LLM-driven technology to generate vast simulation scenes and evaluation configurations in minutes. The evaluation system covers 200+ tasks across 100,000+ scenarios to establish a comprehensive capability profile for models. Genie Sim also opens over 10,000 hours of synthetic data including real-world robot operation scenarios.
The platform will significantly accelerate model development, reduce reliance on physical hardware, and empower innovation in embodied intelligence. Simulation assets, dataset, and code are fully open source.
geniesim CLI: one command-line entry point for the entire platform โ docker lifecycle, ROS 2 workspace builds, health diagnosis (doctor), pure-Python wheel deploy, asset / scene bootstrap. Packaged as a standalone PEP 517 / PEP 621 wheel.SKILL.md recipes for benchmarking, inference checks, scene generation, asset search, and teleop โ invokable directly by Claude Code / agentic coding agents, so the simulator can be driven without a human first reading the docs.geniesim_ros brings physics, render, and the robot into ROS 2 natively โ teleop, MoveIt, and ros2_control close the loop on one shared sim_time. Multiple physics backends (Isaac Sim PhysX, Newton-standalone) selectable per scene, with cloth + soft-body support on the Newton path.flowchart LR
pip(["๐ฆ pip install<br/>geniesim_cli<br/><i>(host)</i>"]) ==> docker(["๐ณ geniesim<br/>docker up<br/><i>(host)</i>"]) ==> auto(["โ๏ธ tier-1 peers<br/>auto-install<br/><i>(in-container)</i>"]) ==> shell(["๐ป geniesim<br/>docker into<br/><i>(host)</i>"])
classDef step fill:#dbeafe,stroke:#1e40af,color:#1e3a8a,font-weight:bold
class pip,docker,auto,shell step
linkStyle 0,1,2 stroke:#1e40af,stroke-width:2px
# === on the host ===
pip install -e source/geniesim_cli/ # standalone CLI wheel
geniesim docker build # build the Isaac Sim 5.1 + Jazzy image
geniesim docker up # boot the container; the entrypoint
# editable-installs every tier-1 from
# the bind-mounted workspace
geniesim docker into # interactive shell inside the container
# === inside the container โ sanity-check the stack ===
geniesim status # per-distribution health probe
geniesim doctor # diagnose & repair (rosdep, env, โฆ)
geniesim bootstrap # re-install tier-1 peers + opt-in tier-2
The repo ships AGENTS.md + per-package skills/<name>/SKILL.md as machine-readable signposts. Claude Code, Cursor, etc. follow them on their own โ say "run the pnp benchmark against localhost:8999" or "launch the WBC scene with MoveIt" and the agent walks the trail.
AGENTS.md (root, boot sequence) โ source/AGENTS.md (module map) โ source/<pkg>/AGENTS.md (architecture + commands) โ source/<pkg>/skills/<name>/SKILL.md (copy-paste recipes). Full CLI verb table: .agent/geniesim_cli.md.
[!IMPORTANT] ๐จ Tier-1 peers come up automatically; tier-2 peers are opt-in.
geniesim docker up's entrypoint editable-installs every tier-1 peer declared insource/geniesim/pyproject.toml. The asset librarygeniesim_assetsis a tier-1 peer distributed out of band (sourced from HuggingFace / ModelScope), and editable-installed by the entrypoint so every other peer can find it.Tier-2 peers (
geniesim_teleopยทgeniesim_generatorยทgeniesim_world) have heavy stacks (VR / LLM / CUDA-ML) and are not auto-installed. Install withpip install -e "source/geniesim/[teleop|generator|world|all]"โ or rungeniesim bootstrapfor an interactive re-install of the whole tree.
flowchart LR
list(["๐ benchmark<br/>list / categories"]) ==> probe(["๐ check-<br/>inference"]) ==> run(["๐งช benchmark<br/>run ยท batch"]) ==> submit(["๐ RoboColiseum<br/>leaderboard"])
classDef step fill:#ede9fe,stroke:#5b21b6,color:#3b0764,font-weight:bold
class list,probe,run,submit step
linkStyle 0,1,2 stroke:#5b21b6,stroke-width:2px
The Genie Sim Benchmark is the engine behind RoboColiseum โ and the same tool you use to get ready for it:
instruction / robust / manip / spatial). The boards and their baseline scores are in the Genie Sim Benchmark Leaderboard below.source/geniesim_benchmark/skills/robocoliseum/; just ask an AI agent (Claude Code, Cursor, โฆ) to drive them.Run it locally โ cat source/geniesim_benchmark/USAGE.md for how to run a benchmark task on your own machine against your inference server (CLI verbs, common commands, and overrides).
flowchart LR
build(["๐จ ros build<br/>dev"]) ==> scene(["๐ฌ launch<br/>scene ร launcher"]) ==> sim(["โก RT Engine<br/>PhysX ยท Newton ยท mjwarp"]) ==> moveit(["๐ฆพ MoveIt 2<br/>+ WBC RViz"])
classDef step fill:#dcfce7,stroke:#15803d,color:#14532d,font-weight:bold
class build,scene,sim,moveit step
linkStyle 0,1,2 stroke:#15803d,stroke-width:2px
The RT Engine ships its own SKILLs that walk you through every step โ workspace build โ scene launch โ MoveIt + WBC RViz โ bringing your own robot โ teleop โ recording โ debugging. Don't memorize ros2 launch flags โ follow the skill:
# inside the container:
geniesim ros build dev
cat source/geniesim_ros/skills/build-workspace/SKILL.md # `geniesim ros build dev`
cat source/geniesim_ros/skills/launch-scene/SKILL.md # scene ร launcher matrix
cat source/geniesim_ros/skills/moveit-wbc/SKILL.md # MoveIt 2 + WBC RViz for Genie G2
cat source/geniesim_ros/skills/add-robot/SKILL.md # bring your own URDF / xacro
cat source/geniesim_ros/skills/*/SKILL.md # and more
geniesim_worldflowchart LR
pano(["๐ผ๏ธ Panorama<br/>(.png)"]) ==> da(["๐ญ DA360<br/>depth"]) ==> sharp(["โจ SHARP<br/>Gaussians"]) ==> world(["๐ 3D world<br/>(PLY ยท Gaussians)"])
classDef step fill:#ffedd5,stroke:#c2410c,color:#7c2d12,font-weight:bold
class pano,da,sharp,world step
linkStyle 0,1,2 stroke:#c2410c,stroke-width:2px
Turn an equirectangular panorama into an explorable photorealistic 3D world. (Loading the output into the RT Engine is a ๐ง W.I.P. โ for now the generated PLY / Gaussians are consumed by geniesim_world's own tooling.)
cat source/geniesim_world/skills/generate-world/SKILL.md
scene_reconstructionflowchart LR
input(["๐ฅ LiDAR and Images"]) ==> align(["๐ Pixel-level<br/> Alignment of Point Cloud and <br/>Camera Pose"]) ==> gs(["๐ 3DGS"]) ==> world(["๐ 3D world<br/>(PLY ยท Gaussians)"])
classDef step fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e,font-weight:bold
class input,align,gs,world step
linkStyle 0,1,2 stroke:#0369a1,stroke-width:2px
Reconstruct high-fidelity 3D scene assets from real-world LiDAR scans and camera images. The pipeline aligns point clouds with camera poses at pixel level, trains 3D Gaussian Splatting, and produces simulation-ready assets.
cat source/scene_reconstruction/AGENTS.md
See source/scene_reconstruction/README.md for the full pipeline details and AGENTS.md for the per-subsystem agent guides.
geniesim_generatorflowchart LR
nl(["๐ฌ NL prompt<br/>'an apple on the table'"]) ==> assets(["๐ search<br/>asset library"]) ==> dsl(["๐ Scene-Language<br/>LLM_RESULT.py"]) ==> usda(["๐๏ธ scene.usda<br/>+ layout graph"])
classDef step fill:#ede9fe,stroke:#6d28d9,color:#3b0764,font-weight:bold
class nl,assets,dsl,usda step
linkStyle 0,1,2 stroke:#6d28d9,stroke-width:2px
Describe a scene in words; an LLM grounds it against the asset library, writes a Scene-Language DSL program, and the generator compiles it into scene.usda + a relationship graph. Drive it through the Open WebUI agent loop, or have Claude write the DSL directly (no WebUI / no MCP server). Embeddings run via a text-embedding API (no GPU) or a local VL model (GPU) โ your pick at deploy time.
Generated scenes are written under source/geniesim_generator/src/benchmark/config/llm_task/<scene_id>/<run_id>/. If generated inside the Docker stack, the same bind-mounted files appear at /opt/geniesim_generator/src/benchmark/config/llm_task/<scene_id>/<run_id>/ in the container and at the source/... path on the host. Open the resulting scene.usda with Isaac Sim inside the Genie Sim container so its payload paths resolve as generated; if you open it from the host side, adjust the payload paths inside the USDA first.
cat source/geniesim_generator/skills/deploy-generator/SKILL.md # install + start: MCP stack + Open WebUI, text vs VL embeddings
cat source/geniesim_generator/skills/search-assets/SKILL.md # query the asset index by concept
cat source/geniesim_generator/skills/generate-scene/SKILL.md # prompt โ LLM_RESULT.py โ scene.usda
See source/geniesim_ros/README.md for the engine overview, source/README.md for the full module map (every geniesim_* package with its docs + skills), and AGENTS.md for the per-subsystem agent guides.
geniesim_teleopflowchart LR
up(["๐ณ docker5.1 up"]) ==> collect(["๐ฎ autoteleop.sh<br/>VR collection"]) ==> keep(["๐พ keep / discard<br/>(y / n)"]) ==> post(["๐ฆ post-process<br/>โ HDF5 episodes"])
classDef step fill:#fce7f3,stroke:#be185d,color:#831843,font-weight:bold
class up,collect,keep,post step
linkStyle 0,1,2 stroke:#be185d,stroke-width:2px
Collect demonstration data by teleoperating the robot with a Pico VR headset, then turn the recorded rosbags into HDF5 episodes. Once the image is built and the GUI container is up (geniesim docker5.1 up succeeds), the whole flow is two host-side scripts:
# 1. VR collection โ press y (keep) / n (discard) when the collection is done:
./source/geniesim_teleop/scripts/autoteleop.sh
# 2. Post-process the recording into HDF5 episodes:
./source/geniesim_teleop/scripts/autoteleop_post_process.sh <task_name>
See source/geniesim_teleop/README.md for the controller button map, Pico setup, and task configuration.
data_collectionflowchart LR
build(["๐จ docker build +<br/>autocollect build"]) ==> list(["๐ autocollect list<br/>pick a task"]) ==> run(["๐ฅ autocollect run<br/>cuRobo auto-planning"]) ==> ep(["๐พ episodes<br/>recording_data/"])
classDef step fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e,font-weight:bold
class build,list,run,ep step
linkStyle 0,1,2 stroke:#0369a1,stroke-width:2px
The automated counterpart to teleoperation: pre-orchestrated tasks are collected unattended using cuRobo trajectory planning โ no human in the loop. Install the geniesim client and assets first (see ยง 3.1).
# 1. Build the GenieSim base image, then the data-collection image:
geniesim docker build # โ registry.agibot.com/genie-sim/geniesim3:latest (base)
geniesim autocollect build # โ registry.agibot.com/genie-sim/geniesim3-data-collection:latest
# 2. Discover tasks, then collect one (headless, unattended):
geniesim autocollect list --robot=g2 <substr>
geniesim autocollect run <TASK> --headless --standalone
Or let your AI assistant drive the whole run โ point it at the skill and it follows the workflow (resolve task โ check prereqs โ launch โ monitor & verify):
cat source/data_collection/skills/run-data-collection/SKILL.md
Episodes land in source/data_collection/recording_data/. See source/data_collection/README.md (and its AGENTS.md / skill) for flags, task configs, and the two-process server/client layout.
The arc of the platform โ what shipped when, and what's coming next.
flowchart LR
v2["<b>v2.x ยท 2025</b><br/>Challenge tasks<br/>2ร sim speed"]
v30["<b>v3.0 ยท Jan 2026</b><br/>Isaac Sim 5.1<br/>Genie G2 ยท 3DGS"]
v31["<b>v3.1 ยท Apr 2026</b><br/>Genie Sim World<br/>RLinf"]
v32["<b>v3.2 ยท Jun 2026</b><br/>๐ง CLI ยท ๐ค SKILLs<br/>โก RT Engine"]
next["<b>Next</b><br/>Isaac Sim 6.0<br/>More Newton solvers<br/>Benchmark refactor"]
v2 --> v30 --> v31 --> v32 --> next
classDef done fill:#d1f0d8,stroke:#1f6f3d,color:#0b3b1f
classDef current fill:#cfe2ff,stroke:#084298,color:#084298,stroke-width:2px
classDef future fill:#fff3cd,stroke:#856404,color:#5c4400
class v2,v30,v31 done
class v32 current
class next future
geniesim_benchmark into a benchmark layer on top of geniesim_ros (collapses the two parallel stacks โ see .agent/geniesim_benchmark.md)ros2 bag via the record-episode SKILL)geniesim_world outputs into the RT Engine (load .ply / .gsp Gaussians from a scene_*.yaml)spatial board (alongside instruction / robust / manip), and the robust board now aggregates and scores tasks per perturbation type (instruction, robot pose, background, image quality, camera position). The full pipeline โ download datasets, fetch baseline weights, run an example leaderboard service, submit & track โ ships as agent-friendly one-click SKILLs under source/geniesim_benchmark/skills/robocoliseum/.geniesim CLI โ one command for docker, ROS 2 builds, bootstrap, status, doctor, deploy; bash/zsh completion; standalone PEP 517 / PEP 621 wheel.SKILL.md recipes (run-benchmark, check-inference, generate-scene, search-assets, deploy-generator, run-teleop) that Claude Code and other agents invoke to drive the simulator end-to-end.geniesim_ros ships physics + render + robot as a first-class ROS 2 node sharing one sim_time. Multiple physics backends (Isaac Sim PhysX, Isaac Sim Newton, Kit-free Newton-standalone) with cloth / soft-body on the Newton path.arm ร gripper matrix, drop-in MoveIt 2 + WBC RViz, three IK plugins; reference URDF for Franka, UR5, Aloha, ARX, Agilex; bring-your-own via xacro + offline mesh-prep tools.scene_pnp_g2_op) and whole-body control (scene_wbc_g2_sp).robot.usda + payloads/Physics/{physics,physx,mujoco}.usda); IsaacSim 5.1 + 6.0 share one CLI surface; fisheye camera + de-skewed rotary lidar.pyproject.toml, rendered in source/README.md; enforced by geniesim tool deps-dag in CI.Please refer to these links to download assets and dataset:
The four tables below are the RoboColiseum boards โ instruction, robust, manip, spatial โ reporting baseline scores for four reference models. The final GenieSim-Sim2Real table is not a competition board; it quantifies the simulation-to-reality fidelity of the benchmark. Each task is evaluated under a 2ร2 design that crosses the training-data source (simulation vs. real) with the evaluation environment (simulation vs. real), yielding the sim-to-sim, real-to-sim, sim-to-real, and real-to-real conditions. The close agreement between corresponding simulated and physical success rates indicates that evaluation in Genie Sim is a faithful proxy for real-world evaluation.
Baseline model repositories:
| Model | Repository |
|---|---|
| ฯ0.5 / ฯ0 | Anonymous-694/ACoT-VLA @ agibot_world_challenge |
| acot | AgibotTech/ACoT-VLA |
| GR00T-N1.7 | MiaoMieu/Isaac-GR00T |
GenieSim-Instruction
|
GenieSim-Robust
|
| Tasks | ฯ0.5 | ACoT-VLA | GR00T-N1.7 | ฯ0 |
|---|---|---|---|---|
| Open Door | 0.95 | 0.55 | 0.90 | 0.90 |
| Hold Pot | 0.55 | 0.45 | 0.11 | 0.20 |
| Pour Workpiece | 0.93 | 0.93 | 0.87 | 0.07 |
| Stock and Straighten Shelf | 0.40 | 0.18 | 0.24 | 0.18 |
| Take Wrong Item Shelf | 0.85 | 0.85 | 0.77 | 0.65 |
| Scoop Popcorn | 0.95 | 0.95 | 0.77 | 0.87 |
| Clean the Desktop | 0.00 | 0.00 | 0.02 | 0.00 |
| Place Block into Box | 0.58 | 0.58 | 0.50 | 0.45 |
| Sorting Packages | 0.51 | 0.28 | 0.20 | 0.15 |
| Sorting Packages Continuous | 0.10 | 0.00 | 0.00 | 0.00 |
| Avg. | 0.58 | 0.48 | 0.44 | 0.35 |
| Tasks | ฯ0.5 | ACoT-VLA | GR00T-N1.7 | ฯ0 |
|---|---|---|---|---|
| Pick Object Absolute Position | 0.80 | 0.81 | 0.55 | 0.46 |
| Pick Object Relative Position | 0.65 | 0.60 | 0.43 | 0.20 |
| Place Beverage to Another's Position | 0.40 | 0.53 | 0.35 | 0.11 |
| Place Object Relative Position | 0.50 | 0.51 | 0.43 | 0.21 |
| Sort Cubes by Size | 0.00 | 0.30 | 0.10 | 0.00 |
| Sort Number | 0.00 | 0.13 | 0.13 | 0.06 |
| Stack Bowls | 0.20 | 0.00 | 0.00 | 0.00 |
| Stack Three Building Blocks | 0.30 | 0.30 | 0.00 | 0.00 |
| Avg. | 0.36 | 0.40 | 0.25 | 0.13 |
| Tasks | Sim Env Sim Data (sim-to-sim) | Sim Env Real Data (real-to-sim) | Real Env Sim Data (sim-to-real) | Real Env Real Data (real-to-real) |
|---|---|---|---|---|
| Select Color | 0.86 | 0.75 | 0.85 | 0.73 |
| Recognize Size | 0.93 | 0.75 | 0.94 | 0.75 |
| Grasp Targets | 0.72 | 0.54 | 0.71 | 0.58 |
| Organize Items | 0.48 | 0.45 | 0.60 | 0.40 |
| Pack in Supermarket | 0.94 | 1.00 | 0.95 | 0.95 |
| Sort Fruit | 0.90 | 0.90 | 1.00 | 1.00 |
| Place Block into Drawer | 0.80 | 0.90 | 0.85 | 0.90 |
| Bimanual Chip Handover | 0.80 | 0.70 | 0.73 | 0.71 |
| Avg. | 0.80 | 0.75 | 0.83 | 0.75 |
โ Sim Data: 500~1500 episodes of simulation data. Real Data: 500 episodes of real-world data. All models are post-trained from the ฯ0.5 baseline.
All the data and code within source/geniesim_* and source/data_collection are under Mozilla Public License 2.0 unless licensed specifically. The source/scene_reconstruction project contains code under multiple licenses, for complete and updated licensing details, please see the LICENSE files
Please consider citing our work either way below if it helps your research.
@misc{yin2026geniesim30,
title={Genie Sim 3.0 : A High-Fidelity Comprehensive Simulation Platform for Humanoid Robot},
author={Chenghao Yin and Da Huang and Di Yang and Jichao Wang and Nanshu Zhao and Chen Xu and Wenjun Sun and Linjie Hou and Zhijun Li and Junhui Wu and Zhaobo Liu and Zhen Xiao and Sheng Zhang and Lei Bao and Rui Feng and Zhenquan Pang and Jiayu Li and Qian Wang and Maoqing Yao},
year={2026},
eprint={2601.02078},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2601.02078},
}
84 followers ยท starred May 2025
271 followers ยท starred Sep 2025
433 followers ยท starred May 2026
125 followers ยท starred Jul 2025