CoolFace
Datasetpublic

DynamicIntelligence/humanoid-robots-training-dataset

Dynamic Intelligence — Humanoid Robot Training Dataset A first-person (egocentric) video dataset of human hand manipulation, designed for training humanoid robot policies via imitation learning. Each episode captures a person performing an everyday household task — folding clothes, moving dishes, opening doors — filmed from a head-mounted iPhone using its built-in LiDAR and depth sensors. The dataset pairs each video with frame-level 3D hand tracking and camera pose data, giving… See the full description on the dataset page: https://huggingface.co/datasets/DynamicIntelligence/humanoid-robots-training-dataset.

sourceHugging Facecc-by-nc-4.0updated 6mo agoView on Hugging Face
0likes2.4kdownloads
Dataset Card

Dynamic Intelligence — Humanoid Robot Training Dataset

A first-person (egocentric) video dataset of human hand manipulation, designed for training humanoid robot policies via imitation learning. Each episode captures a person performing an everyday household task — folding clothes, moving dishes, opening doors — filmed from a head-mounted iPhone using its built-in LiDAR and depth sensors.

The dataset pairs each video with frame-level 3D hand tracking and camera pose data, giving learning algorithms both the visual input and the corresponding spatial trajectories they need to reproduce the demonstrated behavior on a robot.


How it works

Recording setup. A person wears an iPhone 13 Pro on their head (using a head mount). The phone runs the Record3D app, which simultaneously captures:

  • RGB video at 30 FPS
  • Depth maps via the LiDAR sensor
  • 6-DoF camera pose from ARKit (position + orientation of the phone in the room)

Processing pipeline. After recording, each episode goes through an offline pipeline:

  1. 1.Hand detectionMediaPipe detects 2D hand landmarks in every RGB frame
  2. 2.3D reconstruction — The 2D landmarks are projected into 3D space using the corresponding depth map, producing real-world XYZ positions (in cm) relative to the camera
  3. 3.Action computation — Frame-to-frame deltas are computed for both the camera and hand positions, representing the "actions" a robot would need to take

Result. Each episode contains a synchronized video and a parquet file with per-frame 3D observations and actions, formatted for the LeRobot framework.


Dataset overview

Episodes145
Total data frames~59,000
Video FPS30
Tasks12 household manipulation tasks
FormatLeRobot v2.0
SensoriPhone 13 Pro (RGB + LiDAR + ARKit)
PerspectiveEgocentric (head-mounted)

Tasks

#Task instructionEpisodesCount
1Fold the t-shirt on the bed.0–78
2Pick up the two items on the floor and put them on the bed.8–1710
3Fold the jeans on the bed.18–2710
4Fold the underwear on the table.28–3710
5Put the pillow in its correct place.38–4710
6Place the tableware on the kitchen counter.48–5710
7Get out of the room and close the door behind you.58–669
8Put the sandals in the right place.67–7610
9Put the cleaning cloth in the laundry basket.77–8610
10Screw the cap back on the bottle.87–959
11Tuck the chairs into the table.96–12631
12Put the dishes in the sink.127–14418

What's in the data

Each episode has two files: a video (.mp4) and a parquet table with one row per tracked frame.

Observations (what the robot sees)

ColumnShapeUnitDescription
observation.camera_posefloat[6]cm, degreesPosition (x, y, z) and orientation (roll, pitch, yaw) of the head-mounted camera in the room. Comes from ARKit's visual-inertial odometry.
observation.left_handfloat[9]cm3D positions of 3 keypoints on the left hand: wrist, thumb tip, and index fingertip (x, y, z each).
observation.right_handfloat[9]cm3D positions of 3 keypoints on the right hand: wrist, index fingertip, and middle fingertip (x, y, z each).

Actions (what the robot should do)

ColumnShapeDescription
action.camera_deltafloat[6]Frame-to-frame change in camera pose (dx, dy, dz, droll, dpitch, dyaw). Represents head movement.
action.left_hand_deltafloat[9]Frame-to-frame change in left hand keypoint positions.
action.right_hand_deltafloat[9]Frame-to-frame change in right hand keypoint positions.

Metadata columns

ColumnTypeDescription
episode_indexintWhich episode (0–144)
frame_indexintFrame number within the episode
timestampfloatTime in seconds from episode start
language_instructionstringNatural language task description (same for all frames in an episode)
next.doneboolWhether this is the last frame of the episode

Coordinate system

All 3D positions are relative to the camera:

  • X → right
  • Y → down
  • Z → forward (into the scene)

Hand values of [0, 0, 0] mean the hand was not detected in that frame (e.g. out of view or occluded).


File structure

├── data/
│   ├── chunk-000/          # Parquet files for episodes 0–99
│   └── chunk-001/          # Parquet files for episodes 100–144
├── videos/
│   ├── chunk-000/rgb/      # MP4 videos for episodes 0–99
│   └── chunk-001/rgb/      # MP4 videos for episodes 100–144
├── meta/
│   ├── info.json           # LeRobot dataset config
│   └── stats.json          # Column statistics (min/max/mean/std)
└── README.md

Quick start

With LeRobot

python
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset("DynamicIntelligence/humanoid-robots-training-dataset")

sample = dataset[0]
print(sample["language_instruction"])        # "Fold the t-shirt on the bed."
print(sample["observation.camera_pose"])     # tensor of shape [6]
print(sample["action.left_hand_delta"])      # tensor of shape [9]

Direct download

python
import pandas as pd
from huggingface_hub import hf_hub_download

path = hf_hub_download(
    repo_id="DynamicIntelligence/humanoid-robots-training-dataset",
    filename="data/chunk-000/episode_000000.parquet",
    repo_type="dataset",
)
df = pd.read_parquet(path)
print(f"{len(df)} frames")
print(df[["timestamp", "observation.camera_pose", "language_instruction"]].head())

Visualizer

Browse episodes interactively: [DI Hand Pose Sample Dataset Viewer](https://huggingface.co/spaces/DynamicIntelligence/dynamic_intelligence_sample_data)

The viewer shows the egocentric video alongside time-series plots of camera pose and hand positions, so you can see exactly what the person was doing and how the tracking data aligns with the video.


Citation

bibtex
@dataset{dynamic_intelligence_2025,
  author = {Dynamic Intelligence},
  title = {Humanoid Robot Training Dataset: Egocentric Hand Manipulation Demonstrations},
  year = {2025},
  publisher = {Hugging Face},
  url = {https://huggingface.co/datasets/DynamicIntelligence/humanoid-robots-training-dataset}
}

Contact

Organization: Dynamic Intelligence Email: shayan@dynamicintelligence.company