Manipulation primitive

Egocentric Grasping Data Collection

A grasp is the moment a manipulation policy has the least room for error and the least amount of training data that actually shows the fingers. We capture grasping first-person, against a written spec, with 3D hand pose and contact events tracked through the reach, the grasp, and the release.
Streams
Ten, synced under 2 ms
First batch
Median 48 h
Billing
Per validated hour
License
Buyer-owned
A human hand grasps a household object mid-demonstration, with a depth sensor and annotated contact point visible.
A grasp captured as one continuous, labeled motion through reach, contact, and release — not a single still frame.

Requirements

What does egocentric grasping data need?

01

Named grasping tasks and objects in the spec

A policy needs grasp data for a specific set of objects and settings, not a generic pile of hand-and-object video. The skill spec names the tasks, objects, and environments before capture starts, so each becomes a coverage cell that is counted and checked.

02

Hand pose through the whole grasp, not a snapshot

3D hand pose with a per-joint visibility flag is tracked through reach, grasp, and release, so occlusion during the grasp is flagged rather than guessed at.

03

Contact events at the moment of grasp

contact_events marks when and where fingers make and break contact with the object, aligned to the same clock as video, depth, and hand pose, so the exact moment of grasp is in the data.

04

The grasp inside its action segment, not isolated

A grasp is one phase of a larger action segment — reach, grasp, transport, release — recorded continuously, so the context leading into and out of the grasp stays in the episode.

05

Rights you can ship on

A perpetual, buyer-owned commercial license backed by a documented consent chain, so a policy trained on the data can go into a product.

Definition

What is egocentric grasping data?

It is first-person (egocentric) video of a human grasping an object, recorded from a head-mounted camera at the operating viewpoint a manipulation policy will actually see from. The grasp itself — the moment fingers make contact with and close around an object — is the focal event, but it is captured inside a continuous episode, not as an isolated clip.

This page is about buying that data to a written spec, not a general hand-object interaction page, a pick-and-place page, a hand-tracking page, or a contact-event definition; those are linked below and compared in the table further down this page.

The data is human demonstration recorded from the performer’s own viewpoint. This page makes no claim that robot or teleoperation grasps are captured.

Why it matters

Why train robot grasping on first-person human video?

A grasp is a short, high-precision event. First-person capture puts the camera at the viewpoint a manipulation policy itself will operate from, so the geometry a policy learns to condition on at inference is the same geometry it trained on, with the hands and the object in frame.

A policy that only ever sees a grasp already completed, or sees it from across a room, has little signal for how fingers actually approach, close around, and release an object. Grasp-focused egocentric data keeps the hand and the object in frame through that whole sequence, with the moment of contact marked on the same clock as the rest of the episode.

This page does not state a grasp success rate, a grasp-quality metric, or a benchmark number, because none of those are fields this site delivers; what is delivered is described in the tables below.

Skill spec

How are grasping tasks and objects specified in the skill spec?

The skill spec names the objects, grasping tasks, and settings before capture starts. Each named combination of object, task, and setting becomes a coverage cell with validated hours tracked against it, the same way any other spec line item is tracked. The spec describes what the contributor is asked to do, not a grasp-type label attached to the footage.

Firsthand designs the first draft of a skill spec with you on a call, including hours budgeted per object and task cell. A Spec Pilot, a small and fast first batch, is reviewed against every axis of the spec before volume scales, with the same reject log and validated-hour billing as a full collection.

The spec is also where failure-case coverage for grasping is planned, if it is wanted: an occluded grasp, a slipped grasp that is re-grasped, or a grasp attempted in dim light are named scenarios like any other, not an afterthought.

Capture

How are grasps captured?

A head-mounted camera keeps the hand and the object in frame from the operating viewpoint through the whole reach-grasp-release cycle. An optional wrist-mounted camera can run alongside it for a closer-range view of the grasp itself. Where manipulation precision requirements are high, a stereo pair adds binocular depth for finer contact-level geometry.

Head and wrist IMU streams are synchronized to the same clock as the cameras. All streams are hardware-triggered from a single PTP grandmaster clock and aligned under 2 ms, with per-stream nanosecond timestamps in the PTP domain, so the frame where fingers make contact lines up exactly with the depth and hand-pose frame for that same instant.

Capture takes place in the settings this site already lists for custom collections, not at a customer’s own facility.

Labels

Which labels and streams describe a grasp?

A grasp is not a single tag on a clip. It is described by several streams recorded on one clock, each covering a different part of the event. The table below lists each element and the format field that carries it.

hand_joints tracks 21 joints per hand in 3D, in metres, in the head-camera frame, on every frame of the reach, grasp, and release. hand_visible flags occlusion per joint, which matters most during the grasp itself, when fingers are most likely to be hidden from the camera by the object or the other hand. contact_events marks when and where contact is made and broken. action_segments gives the grasp its place inside the larger task, as a {start_ns, end_ns, verb, noun} record on the same clock.

The fields documented on this site do not include a grasp-quality score, a grasp-type taxonomy, a 6-DoF grasp pose, an object pose, or force, pressure, or tactile channels, and this page makes no claim to any of them. What is captured is the hand’s own tracked pose and the timing of contact, not a model of the grasp’s mechanics.

QA

How is grasping data QA’d and accepted?

Acceptance is measured against signed accept criteria written into the spec before capture begins. Each batch goes through per-batch QA and a reject log ships with every batch. An episode is accepted only if RMS reprojection stays under 0.28 px and the drift is within tolerance; otherwise it goes to the reject log and is recaptured at our cost.

Coverage against the named object and task cells in the spec is checked the same way: a cell either has enough validated hours against it or it does not, checked against the list rather than an impression of variety.

Only footage that clears the criteria is billed as a validated hour.

Consent and rights

How are consent, anonymization, and licensing handled?

Every contributor signs a documented consent release, and each episode links to that signed release through a documented consent chain. Faces, license plates, and screens are detected and irreversibly blurred at ingest, and a reviewer confirms the result before anything ships.

Every custom collection ships under a perpetual, buyer-owned commercial license. Exclusivity is available so the data is never resold. This page makes no certification claims.

Delivery

How is grasping data licensed and delivered?

Delivery formats are RLDS, LeRobot, and WebDataset, plus HDF5, zarr, and Rerun .rrd for full-fidelity review of the aligned streams. The episode schema is the canonical layout, and each format is a projection of it, so hand_joints, contact_events, and action_segments for a grasp are part of the layout your loader reads. In WebDataset, each sample’s ann.json carries hand_joints, action, and contact_events. Converter source is readable, so you can retarget the schema to your own loader.

Units are metric throughout: depth in millimetres, hand joints in metres.

Fast · on demand · custom

How do you start a custom grasping data collection?

Describe the objects, grasping tasks, and settings your policy needs. We turn that into a written spec covering tasks, environments, capture tier, annotation depth, and accept criteria, then quote reach, timeline, and price against that document before any capture begins. Pricing details are on the pricing page rather than here.

Where coverage is already deep, the first validated batch lands in a median of 48 hours from signed spec. Thin environments typically take three to four weeks, because vetting operators there is the bottleneck, and that timeline is quoted up front. On-demand top-ups run against the same spec and accept criteria, so new grasping data stays consistent with what you already hold.

At a glance

What you get.

Capture
Head-mounted, with optional wrist camera and stereo depth
Labels
hand_joints (21 per hand) · hand_visible · contact_events · action_segments
Sync
Hardware-triggered PTP clock, under 2 ms
Spec to first batch
a median of 48 hours (deep coverage)
Delivery
RLDS · LeRobot · WebDataset · HDF5 · zarr · Rerun
License
Perpetual, buyer-owned, documented consent chain

Every collection runs through the same seven-stage end-to-end custom collection pipeline. End-to-end custom data collection is a managed service that takes an AI data need from problem to owned dataset in a single accountable pipeline.

Grasp elements

Which labels and streams describe a grasp?

Each grasp-related element, how it is captured or labeled as stated on this site, and the format field that carries it.
ElementHow it is captured or labeledFormat field
Hand pose through the graspTwo hands, 21 joints each, per frame, in metres, in the head-camera framehand_joints: annotations/ group; ann.json in WebDataset
Occlusion during the graspA visibility flag per joint, most relevant when fingers are hidden by the object or the other handhand_visible: annotations/ group
Moment of contactWhen and where fingers make and break contact with the object, on the same clock as video and depthcontact_events: annotations/ group; ann.json in WebDataset
The grasp inside its taskRecorded as part of a larger reach-grasp-transport-release action segment, not isolatedaction_segments: annotations/ group
Depth at the graspBinocular depth from an optional stereo pair where manipulation precision requirements are highdepth_mm: streams/ group; depth.png in WebDataset
Link to the named taskEach episode ties back to the task and object named in the specepisode_id, skill_id: meta group; meta.json in WebDataset

Related pages

This page vs. dexterous manipulation, hand-object interaction, pick-and-place, hand-tracking, and contact-event pages

Six related pages on this site, their focus, and what you get from each.
PageFocusWhat you get
Egocentric grasping data (this page)Buying first-person human video focused on the grasp itselfA custom collection to a skill spec naming grasping tasks and objects
Dexterous manipulation training dataFine-grained, multi-finger manipulation beyond a single graspA custom collection with per-finger hand pose and contact events
Hand-object interaction video dataThe general moment fingers meet an object, across any interactionA custom collection with hand pose, contact events, and depth
Egocentric pick and place dataThe full reach, grasp, transport, and place cycle as one motionA custom collection scoped to the pick-and-place primitive
Egocentric hand tracking dataWhere the fingers are in 3D space, independent of any taskA custom collection focused on hand_joints and hand_visible
Hand-object contact dataThe contact event itself as a label productA custom collection built around contact_events

FAQ

Grasping training data egocentric, answered.

What is egocentric grasping data?
First-person video of a human grasping an object, with 3D hand pose, contact events, and depth recorded on one clock, collected to a buyer-written skill spec.
Does this include a grasp-success or grasp-quality score?
No. This site does not deliver a grasp-quality metric, a grasp-type taxonomy, or a success rate. What is captured is the hand’s tracked pose and the timing of contact.
Is a 6-DoF grasp pose or object pose included?
No. Those fields are not part of this site’s delivery schema and this page makes no claim to them.
Is force, pressure, or tactile sensor data included?
No. The data captures hand pose and contact timing, not force, pressure, or tactile sensing.
How is the moment of grasp marked in the data?
contact_events marks when and where contact is made and broken, aligned to the same clock as the video, depth, and hand pose.
Is robot or teleoperation grasping data included?
No. This is first-person human demonstration data, and this page makes no claim about robot or teleoperation capture.
Can a spec target specific objects and grasping tasks?
Yes. The skill spec names the objects, tasks, and settings before capture starts, and each becomes a coverage cell that is counted and checked. Grasp-type labels are not part of the delivery.
How fast can a first batch ship?
A median of 48 hours from signed spec where coverage is deep, and three to four weeks where it is thin. For cost, see the pricing page.

Sources

Where are the delivery formats documented?

Request a custom dataset.

Tell us the objects and grasping tasks your policy needs. We will quote reach, timeline, and price against a written spec, with a first validated batch in a median of 48 hours where coverage is deep.