Data formats
Formats are chosen so a robotics team can read a release with tools it already has, without a proprietary runtime.
MP4 — video
H.264 in MP4, constant frame rate, one file per sensor stream per episode. Streams within an episode share a clock, so a timestamp in the annotations refers to the same instant in every stream.
Parquet — episodes and annotations
Columnar Parquet for every tabular file: episodes, annotations and provenance. Readable with pyarrow, pandas, polars, DuckDB or Spark without depending on us.
JSON — manifests, calibration, provenance
The manifest, per-episode calibration and licensing metadata are plain JSON against a published schema. Provenance is available both as JSON per episode and as a Parquet table for the whole release.
{
"episode_id": "ep_000123",
"streams": {
"head": {
"model": "gopro-head",
"resolution": [1920, 1080],
"fps": 30,
"intrinsics": {"fx": 1142.8, "fy": 1141.3, "cx": 959.5, "cy": 539.5},
"distortion": {"model": "fisheye", "k": [-0.041, 0.008, -0.002, 0.0]},
"mount": {"position": "head", "pitch_deg": -12.0}
}
}
}MCAP — synchronized sensor streams
Where a capture involves more than video — force, torque or IMU channels on instrumented setups — the synchronized streams are delivered as MCAP alongside the MP4 files. MCAP is present only in datasets whose manifest lists it.
Python loaders
Custom collection programs ship with a loader written against your training pipeline: your batch shape, your label mapping, your augmentation hooks. It is delivered as source, not as a binary.
Planned exports
LeRobot-compatible and ROS-compatible exports are planned and not available today. They are in no current release, and no delivery date is committed.