Data hyperscaler for physical AI

Egocentric data for physical AI. Raw, annotated, understood.

Billion Hours records first-person video of people doing real work, on capture headsets we build ourselves, and annotates it in-house. Take the footage raw, take it annotated, or take both.

Raw egocentric videoFootage as recorded, with clip metadata and synced sensors where captured.
Annotation and understandingHands, objects, actions, language and reasoning on one timeline.
Clip slot · egocentric footage
RawIllustrative annotation

0.0 / 6.0 s
Action
Drag the divider: raw on the left, annotated on the right.All eight tasks
Delivered as
  • LeRobot v2 / v3
  • ROS2 MCAP
  • HDF5
  • RLDS
  • MP4 + JSON

Buy the footage, buy the labels, or buy both.

Every clip moves through the same pipeline. You choose where you take delivery: raw video straight after QA, the same video with annotation, or the annotation as data on its own.

Clip slot · egocentric footage
RawIllustrative annotation

Raw egocentric video

First-person footage of real tasks with hands in frame. Nothing drawn on it and nothing inferred from it.

  • MP4 footage with clip metadata: task, setting, duration
  • IMU and depth streams, synced to the video, where captured
  • Only hours that passed QA
  • A consent record for every clip

Used forPretraining, world models, your own labelling

Clip slot · egocentric footage
RawIllustrative annotation

Annotated video

The same clips with annotation aligned to every frame: objects, hand pose, action segments and narration.

  • Everything in the raw tier
  • Label files that share one clock with the video
  • Overlay renders for review
  • Layers chosen per order

Used forPolicy and VLA training, video-language models

clip-7.jsonexcerpt · scroll for more
{ "schema": "billionhours.track/1",
  "clip": "clip-7", "task": "Cleaning",
  "setting": "Car detailing bay",
  "duration": 6.0, "grid": 1000,
  "entities": [
    { "id": "cloth", "kind": "box",
      "label": "microfiber cloth",
      "path": [
        { "t": 0.0, "box": [680,500,980,950] },
        { "t": 0.1, "box": [659,248,958,696] },
        { "t": 0.2, "box": [564,260,848,686] },
        … 61 keyframes, 10 per second
      ] },
    { "id": "panel", "kind": "box",
      "label": "vehicle body panel",
      "path": [ { "t": 0.0, "box": [0,180,1000,1000] }, … ],
      "states": [
        { "t": 0, "value": "unwiped" },
        { "t": 2.6, "value": "hood wiped" }
      ] },
    { "id": "rh1", "kind": "hand", "side": "right",
      "path": [
        { "t": 0.0, "pts": [
            [818,978],[769,930],[746,841],[739,774], wrist, thumb…
            [740,732],[774,728],[762,640],[752,595],
            [742,562],[800,727],[784,636],[772,589],
            [760,552],[826,742],[813,657],[802,609],
            [793,573],[851,768],[850,709],[847,673],
            [843,644]
        ] }, … 58 keyframes, 21 joints each
      ] }
  ],
  "groups": [ { "id": "hand-right", "members": ["rh1"] } ],
  "segments": [
    { "from": 0, "to": 1.2, "verb": "wipe", "noun": "hood" },
    { "from": 1.2, "to": 2.6, "verb": "wipe", "noun": "hood edge" },
    { "from": 2.6, "to": 3.4, "verb": "move", "noun": "cloth" },
    { "from": 3.4, "to": 6.0, "verb": "wipe", "noun": "corner panel" }
  ],
  "narration": [
    { "from": 0, "to": 1.2,
      "text": "The [right hand](@hand-right) wipes the [hood](@panel) with a folded [microfiber cloth](@cloth)." },
    { "from": 1.2, "to": 2.6,
      "text": "The [cloth](@cloth) works up toward the base of the windshield." },
    { "from": 2.6, "to": 3.4,
      "text": "The view pans to the front corner of the car." },
    { "from": 3.4, "to": 6.0,
      "text": "Flat-palm strokes cover the corner [panel](@panel) with the [cloth](@cloth)." }
  ],
  "reasoning": [
    { "from": 0, "to": 3.0,
      "q": "Which hand holds the [cloth](@cloth)?",
      "a": "The [right hand](@hand-right), palm flat on the [cloth](@cloth) to spread pressure evenly." },
    { "from": 3.0, "to": 6.0,
      "q": "What surface is being cleaned?",
      "a": "A wrapped [vehicle body panel](@panel): first the hood, then the front corner." }
  ] }

Annotation data

Each annotation layer as structured data, packaged in the format your loader already reads.

  • Seven layers, listed below
  • Text that points at the things it names
  • LeRobot, MCAP, HDF5, RLDS or plain JSON
  • Custom schemas on request

Used forFine-tuning, evaluation sets, grounding and VQA

Annotation layers

Seven layers, one timeline

Hand keypoints and 3D pose

Joint positions for both hands on every frame, in 2D and lifted to 3D.

Boxes and segmentation masks

Objects, tools and hands localised, outlined and tracked through the clip.

Action segments

Start and end timestamps for each step of a task, with its verb and object.

Narrations and captions

Plain-language descriptions of what is happening, tied to the frames they describe.

VQA and reasoning labels

Question and answer pairs that test what a model understood about the scene.

Object state changes

The moment an object changes: creased to pressed, loose to fastened, soapy to rinsed.

Sensor sync

IMU and depth aligned to the video clock, where captured.

Need a layer that is not listed?Describe it in the sample request

Four things we do differently.

  • Consent per clip

    Each wearer is contracted directly, and consent for every clip can be verified by both the wearer and you. DPDP and GDPR compliant.

    How consent works
  • Richer capture

    Depth, motion and hand tracking recorded alongside the video.

    Specs and formats
  • Built to scale

    We are a data hyperscaler: our own capture headsets and in-house annotation let us record to your spec and deliver faster as volumes grow.

    The pipeline
  • Real work, real settings

    Skilled manual tasks recorded where they actually happen: homes, shops, kitchens and factories.

    Task catalog

One clip, raw and annotated.

Left of the divider is the footage as recorded. Right of it is what annotation adds. Switch to Raw to see the video on its own, or to Annotated for every layer.

footage loadedfootage coming, placeholder frame

Clip slot · egocentric footage
RawIllustrative annotation

0.0 / 6.0 s
Action
Narration

Reasoning

Raw

This is the raw deliverable: the clip as recorded, with nothing drawn on it. It ships with its metadata and, where captured, synced IMU and depth.

Point at an underlined phrase to find it in the frame. Point at something in the frame to find it in the text.

From a shift on the floor to a file in your loader.

  1. 01

    Capture

    People wear our headsets while they do their normal work. Each wearer is contracted directly and consents clip by clip.

    OutputRaw video, sensor logs

  2. 02

    QA

    Clips are screened for framing, hands in view and usable motion, then reviewed before they move on.

    OutputQA-passed hours

  3. 03

    Annotate

    Hands, objects, actions, language and state changes are labelled against one shared clock.

    OutputAnnotation layers

  4. 04

    Understand In development

    Grounded narration and reasoning turn a labelled clip into footage a model can be asked about.

    OutputVQA and reasoning sets

  5. 05

    Deliver

    Raw, annotated or annotation only, packaged for the stack you train on.

    OutputLeRobot, MCAP, HDF5, RLDS, MP4 + JSON

Every delivery ships with a full dataset card.

Viewpoint
Egocentric, head- or chest-mounted, hands in frame
Video
1080p at 30 fps as the baseline, delivered as MP4
Extra capture
Depth, motion (IMU) and hand trackingSynced to the video clock where captured
Hardware
Capture headsets built in-house
Clip metadata
Task, setting, duration, consent record
Annotation
Hand keypoints and 3D pose, boxes and masks, action segments, narration, VQA and reasoning, state changes, sensor sync
Coordinates
Integer grid, 0 to 1000 on each axis, independent of resolution
Compliance
DPDP and GDPR compliant, with a verifiable consent record for every clip
Volume
As requested, with capture capacity that scales up or down with your order
Licence
Matched to your use case, with pricing adjusted to the terms you need
dataset/                                   # v3 layout
  meta/
    info.json
    stats.json
    tasks.parquet
    episodes/chunk-000/file-000.parquet
  data/chunk-000/file-000.parquet
  videos/observation.images.head/
    chunk-000/file-000.mp4

dataset/                                   # v2 layout
  meta/  info.json  episodes.jsonl  tasks.jsonl
  data/chunk-000/episode_000000.parquet
  videos/chunk-000/observation.images.head/
    episode_000000.mp4

Example layouts. The final structure follows your spec.

Work you cannot stage in a lab.

We record where the work already happens: skilled manual tasks done every day, with tools, materials and workplaces that existing egocentric datasets barely cover.

  • Real tasks, real tools

    Each task as it is really done, with the tools and materials people actually use.

  • Real settings at scale

    Homes, shops, kitchens and factories, recorded at volume.

  • Our own headsets

    Because we build the capture hardware ourselves, we can record to any format or spec you need, turn orders around faster, and keep things simple on your side.

Task catalog

Eight tasks · open a clip slot

Request a sample dataset.

Tell us what you are training and which deliverable you want to see. We will reply with sample clips and a scope.

What do you need?
Annotation layers optional

We use these details only to reply to you; see our privacy policy.