Skip to main content

Run, record, and evaluate robot policies in the Genesis simulator through the standard LeRobot interfaces.

Project description

lerobot-genesis

CI PyPI Python License: MIT

The bridge between the Genesis physics simulator and Hugging Face LeRobot.

Genesis is a fast, open robotics simulator; LeRobot is the open standard for robot datasets and policies. There is no official link between them — this package is that link, the same role NVIDIA's IsaacLab-Arena plays for Isaac Lab. It lets you expose any Genesis scene as a Gymnasium environment, record rollouts as a LeRobotDataset, and (from v0.2) evaluate a trained LeRobot policy in Genesis through the standard lerobot-eval workflow.

   Genesis scene ──▶ GenesisEnv (gym.Env) ──▶ LeRobotDataset ──▶ train a LeRobot policy
                          ▲                                              │
                          └────────────────── lerobot-eval ◀────────────┘   (v0.2)

Install

pip install "lerobot-genesis[all]"   # bridge + genesis-world + lerobot

genesis-world needs a CUDA GPU and a few system libraries — see the Genesis install guide. The bridge itself is pure Python; pip install lerobot-genesis (no extras) imports without either heavy dependency present.

Quickstart — record a dataset

Drive a robot in a Genesis scene and save the rollout in LeRobot's format:

from lerobot_genesis import GenesisEnv, GenesisRobotDriver, LeRobotDatasetSink, record_episodes

driver = GenesisRobotDriver(robot="path/to/robot.urdf")          # any URDF / MJCF / USD
env = GenesisEnv(driver, task="reach the target")
sink = LeRobotDatasetSink(
    "me/my-genesis-dataset",
    fps=30,
    state_dim=driver.state_dim,
    action_dim=driver.action_dim,
    image_shape=driver.image_shape,
    task="reach the target",
)

record_episodes(env, policy=lambda obs: env.action_space.sample(), sink=sink, n_episodes=10)

A runnable end-to-end example (a Franka arm, no asset download) lives in examples/record_franka.py.

How it's designed

The simulator-specific work sits behind one small Protocol, so the Gymnasium contract and the recorder are testable on a CPU with no GPU and no upstream installed.

  • GenesisEnv — a gymnasium.Env over a Genesis scene. It owns the gym contract (the 5-tuple step, info["is_success"], the pixels/agent_pos observation, a continuous action Box) and delegates the physics to an injected SceneDriver.
  • GenesisRobotDriver — the reference SceneDriver: loads a robot, maps a normalised action onto a chosen subset of joints, steps physics, and reads a camera and joint state. Bring your own driver for richer scenes (objects, tasks, rewards).
  • record_episodes / LeRobotDatasetSink — roll a policy and write a LeRobotDataset (the verified v3 create → add_frame → save_episode → finalize loop).
  • GenesisEnvConfig — registers Genesis with LeRobot as --env.type=genesis.

Relationship to gym-genesis

Hugging Face's gym-genesis provides raw Gymnasium task scenes for Genesis. This package is complementary: it adds the LeRobot integration layer — dataset recording, env registration, and policy evaluation — and can wrap a gym-genesis env just as well as your own.

Roadmap

  • v0.1GenesisEnv, reference driver, LeRobotDataset recorder, --env.type=genesis.
  • v0.2 — EnvHub make_env + lerobot-eval policy evaluation; GR00T modality.json adapter; native vectorised (multi-env) rollouts.

License

MIT. An independent, community project — not affiliated with the Genesis or LeRobot teams.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lerobot_genesis-0.1.0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lerobot_genesis-0.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file lerobot_genesis-0.1.0.tar.gz.

File metadata

  • Download URL: lerobot_genesis-0.1.0.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lerobot_genesis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 007fccfd8333a39cc4b09234aebd4fb687798687bb7bb94cbf3a2c1e32695d50
MD5 83e4d9c4f8be3d0a9a9ac06a4217f30d
BLAKE2b-256 dbe5037ecab5fac4d67fe61e9b7953daaae6a97d7f16e210146cf74d57e29a19

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_genesis-0.1.0.tar.gz:

Publisher: publish.yml on arun-prasath2005/lerobot-genesis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lerobot_genesis-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lerobot_genesis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9065c8c287292c9da2b1f7358c0ed2c9eb4d11bbbe97116a9da30c0c1ca8f20a
MD5 0015e9cc1568d342630d6dcf0217a0cd
BLAKE2b-256 cf3d99d9fdaf53b36fd6864d8541818eb40ad67f8c4013d12abe254cbbdd0471

See more details on using hashes here.

Provenance

The following attestation bundles were made for lerobot_genesis-0.1.0-py3-none-any.whl:

Publisher: publish.yml on arun-prasath2005/lerobot-genesis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page