
Rerun Lerobot
Ingest a LeRobot (HuggingFace) dataset into Rerun.
Install
npx skills add rerun-io/rerun --skill rerun-lerobot -g -a claude-code -y- Repository
- rerun-io/rerun11.7k
- Category
- Data and ML
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,654 tokens
- Runs scripts
- Yes, review before use
What it does
Ingest a LeRobot (HuggingFace) dataset into Rerun. Read when converting a LeRobot dataset to RRDs, splitting it into per-episode segments, or registering it on a Rerun catalog. Covers the built-in directory importer (log_file_from_path), the per-episode LeRobotReader, and when to drop to ParquetReader for custom control.
Rerun LeRobot ingestion
There are two ways in, and which one you want depends on whether you are viewing or converting.
- Just viewing? Rerun has a built-in LeRobot importer: point
log_file_from_path(or the viewer, orrerun <dir>on the CLI) at the dataset directory and it ingests episodes, camera videos, and state/action tables with no conversion code. - Converting?
rr.experimental.LeRobotReaderreads the dataset one episode at a time as a lazy chunk stream, which is what you want for per-episode RRDs and for lenses.
The download step needs huggingface_hub.
Step 0: pick a dataset and check the HF token
Both scripts below live in scripts/ next to this file, and run standalone through uv, they declare huggingface_hub inline, so there is no environment to set up.
Two facts decide what a dataset costs to fetch, and the Hub search results show neither. Get both, for every candidate, in one call:
uv run scripts/find_lerobot_dataset.py <query> --robot-type <robot> --want 5
codebase_version decides whether a partial download is possible at all.
- v2.1 and earlier store one parquet and one mp4 per episode (
video_pathends inepisode_{episode_index:06d}.mp4), so "just the first N episodes" downloads only those episodes. - v3.0 concatenates every episode into a few large files (
video_pathends infile-{file_index:03d}.mp4), so any subset costs the whole download. If the user asked for a few episodes, prefer a v2.1 dataset, for the download only.LeRobotReaderreads a single episode out of either version once the files are local.
How camera frames are stored decides the size, and it varies by two orders of magnitude.
The frames and MB/ep columns report it:
mp4: avideo-dtype feature, one file per episode beside the parquet.inline: animage-dtype feature, raw frames inside the episode parquet, which is far larger for the same footage.
