Eye gaze

Egocentric Video with Eye Gaze Data

Some policies need to know not only what the hands did but where the wearer was looking. We collect custom first-person video on demand against your written skill spec, with a gaze target annotation delivered beside hand pose, contact events, action segments, depth and IMU on one PTP clock.
Gaze field
annotations/gaze_target
Rig
Head-mounted camera with IMU
Sync
Median 1.12 ms, 2.0 ms ceiling
License
Buyer-owned
A contributor wearing a head-mounted capture rig performs a manual task, beside a graphic of synchronized video, hand-pose and annotation layers.
The gaze target sits in the annotations group, on the same clock as the head camera, depth and IMU.

What a gaze delivery includes

Where the wearer looked, with the signals around it.

01

A gaze target annotation

The episode schema lists gaze_target in the annotations group, recording where attention was directed when your spec calls for it.

02

Head-eye-line viewpoint

The head rig matches the eye-line viewpoint and adds IMU data, for tasks where gaze and head motion matter.

03

Hands and actions beside it

Hand joints, contact events and action segments ship on the same nanosecond timeline, so gaze can be read against what the hands did.

04

You specify the fields

The skill spec names whether gaze is in scope and how it is represented, so the order matches the model you train.

Definition

What is egocentric video with eye gaze data?

Egocentric video with eye gaze data is first-person footage of a task, recorded from a head-mounted camera, delivered together with a record of where the wearer’s attention was directed. The viewpoint is the eye-line view; the gaze annotation says which part of that view the wearer was attending to.

The site is specific about the field and quiet about the instrument. Firsthand’s episode schema lists gaze_target in its annotations group, and the site describes it as where attention was directed, where the spec calls for it. It does not state an eye-tracking device, a gaze sampling rate or an accuracy figure, so this page makes none of those claims.

This page is for robot learning, VLA and humanoid teams that want to specify gaze fields and order them collected, fast and on demand, as a custom collection.

Why it matters

Why do robot learning teams ask for gaze data?

Gaze is a signal about intent: where a person looks tends to lead where the hands go. The site’s collection pages recommend the head-rig tier when gaze matters, because it matches the eye-line viewpoint and adds IMU data for tasks where gaze and head motion are part of what the model needs to learn.

The site also notes that when footage is anonymized, the hands, objects, gaze and scene are the signal that must be left untouched, which is why a consented operator and their point of view stay intact in delivered data.

The site does not state a measured benefit from adding gaze to a training mix, so none is quoted here. Whether gaze is worth the added equipment and review for your policy is a decision to test on a small first batch.

Capture

How is gaze captured in a Firsthand collection?

The site’s action-labels entry states that Firsthand captures action labels directly at the time of recording rather than inferring them afterward, and lists gaze target among them with hand pose, wrist trajectories, contact events, body joints and action segments, annotated as part of the same capture session as the egocentric video and depth.

The site does not state which sensor or method produces gaze_target, whether the rig carries eye-tracking cameras, or how often the gaze field is sampled. Those details are set per program in the skill spec and confirmed on the first batch.

Fields

Which fields ship alongside gaze data?

The field table lists what travels with gaze_target, using the names and rates the episode schema and capture specs state. The gaze row itself is deliberately thin: the schema names the field, and its data type, shape and frame are not itemised on the site.

Because every field sits on one timeline, a gaze annotation can be read against the head camera at 60 fps, the 200 Hz head IMU and the hand joints for the same moment.

Differentiation

How is gaze different from head motion, hand pose and action labels?

Gaze is not head motion. The head IMU records how the head moved at 200 Hz, 6-DoF; gaze_target records where attention was directed. Gaze is also not hand pose, which is the per-joint 3D position of the fingers, and it is not an action segment, which is a verb and noun with start and end times.

These combine in practice. The differentiation table shows what each covers so you can specify exactly the fields you need.

Synchronization

How is gaze kept in sync with video, depth and IMU?

Every sensor runs in one PTP clock domain and exposures are hardware-triggered. The site states a 1.12 ms median offset, 1.94 ms at the 99th percentile and a 2.0 ms ceiling, measured as the absolute timestamp offset between the head camera and every other stream.

The streams run at different rates: cameras at 60 fps, depth at 30 fps and the IMUs at 200 Hz. The site does not state the rate at which gaze_target is sampled, so how it is aligned to a video frame is set per program in the skill spec.

Formats

Which formats carry gaze data?

All formats are exported from the same QA-passed episodes as projections of the canonical episode schema. If you plan to read gaze_target directly, ask for HDF5 or zarr, whose annotations/ group mirrors the episode schema.

For RLDS, LeRobot and WebDataset the site states how hand joints and actions are carried but not a gaze key, and says which fields appear inside a shard’s ann.json is set in the skill spec. Where gaze sits in those layouts is therefore set per program.

Collection and licence

How is a custom gaze dataset collected, licensed and priced?

Paid, consented contributors perform the real task against your spec while wearing the rig. We do not capture robot or teleoperation data, and we do not capture at a customer’s own facility. Every episode is tied to a signed contributor release, and faces, plates and screens in frame are detected and irreversibly blurred at ingest, with a reviewer confirming the result.

The dataset ships under a perpetual, irrevocable, worldwide commercial licence that is non-exclusive by default, with the buyer owning the resulting dataset and exclusivity available. Where coverage is deep, the median time from signed spec to first validated batch is a median of 48 hours; where it is thin, turnaround runs three to four weeks. Billing is per validated hour, not per raw hour recorded, and there is no list price: you are quoted against your spec.

Getting started

How do you request a custom gaze dataset?

Write down the tasks, environments and objects your model needs, say whether gaze is in scope and how you expect to read it, and name the delivery format. Most orders begin with a Spec Pilot: a small, fast first batch that proves the spec and accept criteria hold on real footage before you scale.

At a glance

What you get.

Gaze field
annotations/gaze_target, listed in the episode schema annotations group
What it records
Where attention was directed, where the spec calls for it
Head-mounted rig
Head camera matching the eye-line viewpoint, with 200 Hz 6-DoF IMU
Also delivered
Hand joints, contact events, action segments (97 verbs, 512 nouns), depth at 30 fps
Clock
One PTP domain; median 1.12 ms, p99 1.94 ms, 2.0 ms ceiling
Formats
RLDS, LeRobot, WebDataset, HDF5 / zarr
Eye-tracking hardware, gaze sampling rate, data type, shape, coordinate frame, accuracy
Set per program in the skill spec
Spec to first batch
a median of 48 hours (deep coverage)
License
Perpetual, irrevocable, buyer-owned, non-exclusive by default

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.

Field map

Gaze and neighbouring fields with their delivery names

Field names, shapes and rates as the episode schema and capture specs state them. Gaze data type, shape and frame are not itemised.
FieldWhat it encodesDelivery fieldStated spec
Gaze targetWhere attention was directed, where the spec calls for itannotations/gaze_targetListed in the annotations group; data type, shape and frame not stated
Head videoEye-line first-person viewstreams/head_rgb60 fps
Head IMUHead motion and orientationstreams/imu_head200 Hz, 6-DoF
Hand jointsPer-joint 3D hand poseannotations/hand_jointsfloat32 [T, 2, 21, 3], metres, head-camera frame
Contact eventsGrasp and releaseannotations/contact_eventsRecorded with hand pose and depth
Action segmentsSub-action boundaries with verb and nounannotations/action_segmentslist[{start_ns, end_ns, verb, noun}]; 97 verbs, 512 nouns
DepthPer-pixel distancestreams/depth_mm30 fps
TimestampsPer-stream time*_timestamp_nsint64 nanoseconds, PTP domain

Differentiation

Gaze vs the neighbouring data types

What each related field covers, and how it differs from gaze.
Data typeWhat it isHow it differs from gaze
Gaze target (this page)Where attention was directedThe primary field
Head IMU6-DoF head motion at 200 HzRecords how the head moved, not where attention was directed
Hand tracking data21-joint 3D hand skeleton with visibility flagsFinger shape, not attention
Action segmentsVerb and noun with start and end timesLabels what was done, not where the wearer looked
Body poseWhole-body joints, where the task needs itPosture of the wearer, not attention

Formats

How each format carries gaze

What the site states per format; unstated details are set per program.
FormatGaze as statedGaze key stated?
HDF5 / zarrannotations/ group mirrors the episode schema, which lists gaze_targetYes, via the mirrored schema
RLDSStep keys observation.hand_joints and action; int64 nanosecond timestampsNo; set per program in the skill spec
LeRobotobservation.state packs hands then body; actionNo; set per program in the skill spec
WebDatasetann.json carries annotations; which fields appear is set in the skill specNo; set per program in the skill spec

Stated vs per program

What the site states and what is set per program

Details not stated on this site are agreed in the written skill spec and confirmed on the Spec Pilot batch.
DetailStated on the siteSet per program in the skill spec
A gaze_target field existsYes, in the annotations groupWhether your order includes it
What gaze_target recordsWhere attention was directedHow it is represented
Eye-tracking hardwareNot statedYes
Gaze sampling rate and alignment to framesNot statedYes
Data type, shape and coordinate frameNot statedYes
Accuracy or calibration of gazeNot statedYes
Gaze key in RLDS, LeRobot, WebDatasetNot statedYes

FAQ

Egocentric video with eye gaze data, answered.

What is egocentric video with eye gaze data?
First-person task footage delivered with a gaze target annotation recording where the wearer’s attention was directed. On Firsthand’s episode schema that is the gaze_target field in the annotations group, delivered beside hand joints, contact events and action segments.
Does Firsthand use eye-tracking hardware?
The site does not state it. It lists a gaze_target annotation field but names no eye-tracking device, sampling rate or accuracy, so those are set per program in the skill spec.
Is gaze delivered with every episode?
Not automatically. The schema lists gaze_target, but whether a given delivery includes it is a spec decision. Name it in the skill spec and confirm it on the Spec Pilot batch.
How closely is gaze synchronized with the video?
Every stream sits on one PTP clock, with a 1.12 ms median offset, 1.94 ms at the 99th percentile and a 2.0 ms ceiling. How the gaze field is sampled against 60 fps video is not stated and is set per program.
Which format should I choose to read gaze?
HDF5 or zarr if you want gaze_target directly, since its annotations/ group mirrors the episode schema. Where gaze sits in RLDS, LeRobot or WebDataset is set per program in the skill spec.
How fast and how priced is a gaze collection?
Where coverage is deep, the median from signed spec to first validated batch is 48 hours; where thin, three to four weeks. There is no list price: you are quoted against your spec and billed per validated hour.

Sources

Where are the delivery formats documented?

Request a custom gaze dataset.

Tell us the tasks, environments, whether gaze is in scope, and the format you load from. A first validated batch arrives in a median of 48 hours where coverage is deep.