1,000-hour dataset

Multi-camera egocentric human-demonstration video for robot learning · four-camera rig.
2026.07.02 · External

1,121 hours of multi-camera egocentric human-demonstration video. Every episode is captured on a synchronized four-camera rig — egocentric, exocentric, and both wrists — and ships with action-level annotations on a single 29.97 fps timeline.

At a glance
Headline figures for the 1,000-hour dataset. Hours are wall-clock; frames and annotations track the 29.97 fps capture rate; size is set by the aggregate bitrate.
1,121
Hours
Wall-clock, across all four camera streams
121M
Frames
29.97 fps · 960 × 720
655,192
Action annotations
Action-level labels across the dataset
15.7 TB
Total size
H.264 · ~32 Mbps aggregate (4 × 8 Mbps) over ~1,000 h

1,534 episodes (mean 43.9 minutes, continuous single-session recordings), each carrying action annotations on the same 29.97 fps timeline as the video. Captured 2026-05-12 → 2026-06-18 across 232 scripted tasks at 9 venues.

Sample diversity
Planned target hours across 8 environments × 35 action categories. Row = action; column = environment. Color scales with √(hours).
0 h
78 h (max)
Action Home Food & Bev. Office Hotel Edu. Farm Retail Construction Total
Pick & Place782412888412154
Open & Close591612124103
Grasp & Release471288883
Push & Pull518867
Dig & Rake1212832
Scan & Tag8812432
Push Pull Drag881228
Wipe & Sanitize888428
Pour & Dispense888428
Pour & Transfer16824
Assemble & Dis.48841236
Cut & Prepare4884428
Fold & Wrap488424
Insert & Connect488424
Inspect & Measure4884832
Load & Unload4884428
Operate & Equip.488424
Sort & Organize488424
Rotate & Turn128828
Mix & Stir12820
Fold & Arrange12820
Wipe & Clean12820
Insert & Extract12820
Toggle & Switch12416
Press & Squeeze12416
Cut & Separate12416
Fill & Empty12416
Sweep & Collect84416
Adjust & Position44412
Carry & Transport444820
Cover & Uncover44412
Cut & Trim44412
Plant & Harvest44412
Spray & Water44412
Tie & Secure444416
Camera coverage
Four synchronized camera streams on every episode — head, third-person, and both wrists.

Every episode is captured on the full four-camera rig — egocentric (E), exocentric (X), left wrist (L), and right wrist (R) — for complete multi-view coverage on every recording.

E — Egocentric
Head-mounted
X — Exocentric
Fixed third-person
L — Left wrist
Wrist-mounted
R — Right wrist
Wrist-mounted
Technical specifications
Capture and annotation share one 29.97 fps timeline, so video and labels stay frame-aligned.
Dataset format
LeRobot v3.0
Resolution
960 × 720
Frame rate
29.97 fps
Bitrate (per camera)
~8 Mbps
Video codec
H.264 · yuv420p
Annotations
Action spans · free-text
Sample structure & metadata fields
How each sample is laid out on disk as a LeRobot v3.0 dataset, and the per-frame fields delivered with it.

Each sample is a LeRobot v3.0 dataset — a metadata folder, per-frame records in Parquet, and one H.264 video per camera, all on a shared 29.97 fps timeline.

AOn-disk layout
// LeRobot v3.0 dataset
dataset/
├── meta/
│   ├── info.json              # format · fps · features · camera roles
│   ├── tasks                  # task_index → task text
│   ├── episodes/              # per-episode metadata + stats
│   ├── custom_metadata.csv    # metadata
│   └── custom_annotation.json # annotation
├── data/
│   └── chunk-000/file-000000.parquet        # per-frame records
└── videos/
    └── {camera}/chunk-000/file-000000.mp4   # H.264, one per camera
BPer-frame fields · data/…parquet
Table. Columns in each per-frame Parquet record.
FieldTypeDescription
indexint64Global frame index across the dataset
episode_indexint64Episode this frame belongs to
frame_indexint64Frame position within the episode
timestampfloat64Seconds from episode start (29.97 fps)
task_indexint64Task label · resolves via meta/tasks
CVideo streams · videos/…mp4

Four synchronized RGB streams per episode, each H.264 at 960 × 720: base_0 (egocentric), base_1 (left wrist), base_2 (right wrist), base_3 (exocentric).

Sample views
The four camera views — one representative frame each, from sample episode 000001.
Egocentric · ep 000001 Egocentric view
Fig. Egocentric view — episode 000001.
Exocentric · ep 000001 Exocentric view
Fig. Exocentric view — episode 000001.
Left wrist · ep 000001 Left-wrist view
Fig. Left-wrist view — episode 000001.
Right wrist · ep 000001 Right-wrist view
Fig. Right-wrist view — episode 000001.
Sample annotation
Each episode is segmented into consecutive action spans, every span carrying a free-text label. Shown: the first ten spans of an actual annotation.

Annotations divide each episode into consecutive action spans, every span carrying a natural-language label. Below: the first ten spans of an actual episode annotation, verbatim.

{
  "episodes": [{
    "episode_id": "0",
    "spans": [
      { "start_time": 0.0,  "end_time": 2.3,  "label": "spray liquid from spray bottle over countertop and sink and target condition sprayed" },
      { "start_time": 2.3,  "end_time": 6.3,  "label": "pick knife handle from countertop and place knife on countertop" },
      { "start_time": 6.3,  "end_time": 8.6,  "label": "place knife blade into knife block and pick knife handle from countertop and place knife handle into knife block" },
      { "start_time": 8.6,  "end_time": 11.1, "label": "pick cleaver from knife holder and place cleaver on countertop" },
      { "start_time": 11.1, "end_time": 13.1, "label": "pick cleaver from knife block and place cleaver on countertop" },
      { "start_time": 13.1, "end_time": 16.1, "label": "pick knife handle from knife block and place knife handle on countertop" },
      { "start_time": 16.1, "end_time": 19.7, "label": "place knives on bottom of sink and pick knives from countertop and place knives on bottom of sink" },
      { "start_time": 19.7, "end_time": 23.7, "label": "pick up sponge from sink and place sponge on countertop" },
      { "start_time": 23.7, "end_time": 38.5, "label": "wring cloth over sink until dry" },
      { "start_time": 38.5, "end_time": 40.5, "label": "pick tissue paper from countertop and place tissue paper on countertop" },
      ...
    ]
  }]
}
Synjuku
1,000-hour dataset · 2026.07.02