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.
Eye gaze

What a gaze delivery includes
The episode schema lists gaze_target in the annotations group, recording where attention was directed when your spec calls for it.
The head rig matches the eye-line viewpoint and adds IMU data, for tasks where gaze and head motion matter.
Hand joints, contact events and action segments ship on the same nanosecond timeline, so gaze can be read against what the hands did.
The skill spec names whether gaze is in scope and how it is represented, so the order matches the model you train.
Definition
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
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
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
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
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
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
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
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
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
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
| Field | What it encodes | Delivery field | Stated spec |
|---|---|---|---|
| Gaze target | Where attention was directed, where the spec calls for it | annotations/gaze_target | Listed in the annotations group; data type, shape and frame not stated |
| Head video | Eye-line first-person view | streams/head_rgb | 60 fps |
| Head IMU | Head motion and orientation | streams/imu_head | 200 Hz, 6-DoF |
| Hand joints | Per-joint 3D hand pose | annotations/hand_joints | float32 [T, 2, 21, 3], metres, head-camera frame |
| Contact events | Grasp and release | annotations/contact_events | Recorded with hand pose and depth |
| Action segments | Sub-action boundaries with verb and noun | annotations/action_segments | list[{start_ns, end_ns, verb, noun}]; 97 verbs, 512 nouns |
| Depth | Per-pixel distance | streams/depth_mm | 30 fps |
| Timestamps | Per-stream time | *_timestamp_ns | int64 nanoseconds, PTP domain |
Differentiation
| Data type | What it is | How it differs from gaze |
|---|---|---|
| Gaze target (this page) | Where attention was directed | The primary field |
| Head IMU | 6-DoF head motion at 200 Hz | Records how the head moved, not where attention was directed |
| Hand tracking data | 21-joint 3D hand skeleton with visibility flags | Finger shape, not attention |
| Action segments | Verb and noun with start and end times | Labels what was done, not where the wearer looked |
| Body pose | Whole-body joints, where the task needs it | Posture of the wearer, not attention |
Formats
| Format | Gaze as stated | Gaze key stated? |
|---|---|---|
| HDF5 / zarr | annotations/ group mirrors the episode schema, which lists gaze_target | Yes, via the mirrored schema |
| RLDS | Step keys observation.hand_joints and action; int64 nanosecond timestamps | No; set per program in the skill spec |
| LeRobot | observation.state packs hands then body; action | No; set per program in the skill spec |
| WebDataset | ann.json carries annotations; which fields appear is set in the skill spec | No; set per program in the skill spec |
Stated vs per program
| Detail | Stated on the site | Set per program in the skill spec |
|---|---|---|
| A gaze_target field exists | Yes, in the annotations group | Whether your order includes it |
| What gaze_target records | Where attention was directed | How it is represented |
| Eye-tracking hardware | Not stated | Yes |
| Gaze sampling rate and alignment to frames | Not stated | Yes |
| Data type, shape and coordinate frame | Not stated | Yes |
| Accuracy or calibration of gaze | Not stated | Yes |
| Gaze key in RLDS, LeRobot, WebDataset | Not stated | Yes |
FAQ
Sources
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.