LOCAL LEROBOT WORKBENCH

Dataset Assembly Studio

Landing page GitHub
Static snapshot — this demo explains each phase; it is not connected to a backend.

Review, normalize, and curate without touching a source dataset. Click through the nine phases to see what each one does.

PROJECT SETTINGS

Output contract

One verified LeRobot v2.1 dataset assembled from every approved checkpoint.

30 FPS · 640×480 · H.264
CAMERA 01 · FIXEDwristRequired in every approved dataset

Define the folder name, output directory, camera pair, and an optional per-task episode cap before any source is opened.

CURRENT DATASET

Camera mapping

Map each source camera view to the canonical output camera.

Per-dataset mapping
CAMERA 01 · FIXEDwrist ← source view
✓ mapped
CAMERA 02 · SELECTABLEfront ← source view
✓ mapped

Source datasets rarely share the same camera names. Here you choose which recorded view feeds the fixed wrist output and which feeds the selectable second camera.

CURRENT DATASET

Joint mapping

Action and observation state in one canonical six-joint order.

Auto-suggested

Action and observation state are exported in the same canonical six-joint SO-101 order. Suggested mappings are filled automatically; change a selector only when the source order differs.

CANONICAL ORDERshoulder_pan · shoulder_lift · elbow_flex · wrist_flex · wrist_roll · gripper
✓ auto-mapped

Apply the same canonical order to every dataset so the combined export stays consistent across sources.

Assembly tray

Review every episode of the current dataset in a gallery with staging and all-camera preview.

Episodes are checked for consistency — frame counts, camera coverage, and task association — before they can be added to the temporary stage.

DIVERSITY SAMPLER

Subtask groups

Build a temporary stage with exact per-variant counts or a total subgroup cap. Nothing enters the real recipe until you commit it in Tasks.

Deterministic spread

Choose an episode to preview its front and wrist cameras.

Output cameraswrist+frontChange these in Output; map source views in Cameras.

TEMPORARY · CURRENT DATASET

Staged episode tray

Include or exclude episodes individually from each row, or use the bulk controls for the whole stage.

Per-episode inclusion

Prepare a shared prompt for the whole stage, or review each episode individually and apply a unique final prompt before committing it to the saved recipe.

SAVED RECIPE · CURRENT DATASET

Included episodes

This list is independent of the temporary stage and always shows what is currently included.

Included episodes are listed here with their final prompts; edit or exclude them at any time.

ALL APPROVED CHECKPOINTS

Global balance

Draft and excluded checkpoints never enter these counts.

Selected Retained after cap

Deterministic per-prompt and per-task-group caps spread the approved checkpoints evenly across tasks, so one task cannot dominate the combined export.

LOCAL CLUSTERS · GROQ NAMES

Task groups

Groups organize balancing only. Approved and exported prompts are never changed.

BLOCKING VALIDATION

Preflight

Nothing is silently dropped. Resolve every blocker before export.

What it verifies:

  • Every approved checkpoint is present and readable.
  • The two-camera output contract holds across the whole selection.
  • Joint and camera mappings are consistent with the export schema.
  • Task-group caps are respected and no checkpoint is dropped silently.

Frozen manifest preview

After preflight passes, the export manifest is shown here before anything is written.

FINAL HANDOFF

Export

Reconfirm the two-camera contract, then run the verified export in the background.

Preflight required
CAMERA 01wristFixed

The export runs as a background job: normalized v2.1 data with rebuilt indices and edited prompts, optionally packaged as a .tar.gz archive. Job progress is shown in the jobs list below.

Export jobs

Completed exports appear here with their status and archive path.