Raw · with audioORIGINAL · WITH SOUNDAnnotation · With audioANNOTATED · WITH SOUND
Player 0 seconds equals recorded 22.0 seconds. The lines on the annotation clip are projections of the device's OpenXR 26 joints, not a post-hoc vision model. Both streams are 44.1 kHz mono; the file start is 288 ms later than RGB frame 0, so here it is overlaid starting from recorded 22 seconds. When played together, only the stream you pressed sounds.
Player 0 s is record 22.0 s. The lines are the device OpenXR 26-joint projection, not a later vision model. Both players carry 44.1 kHz mono. The file starts 288 ms after RGB frame 0, and that offset is applied from record 22 s. When both play, only the one you pressed stays audible.
Source 22.00 s
E6 Sample Data Package Description
Device UID 2934393122. Recording time 2026-07-08 15:53, duration approximately 32.0 seconds. The demo video on the website is cut from 22.0 seconds of this recording to the end, with OpenXR 26 joints projected onto the left and right RGB streams. The raw RGB is 60 Hz; the demo clip is a 10 Hz preview used to verify that the joints land on the hands. Training should read the original mp4, csv, and calibration files, not this preview clip.
What's in this package
Modality
Files
Measured in this segment
RGB
rgb.mp4, rgb_metainfo.csv, camera_params_rgb.json
HEVC, 3840×1200 side-by-side, 1920×1200 per monocular view, 1920 frames, 60.0 Hz. Exposure 6.67 ms.
Also 1280×480 side-by-side, 1914 frames, approximately 59.9 Hz. Extrinsics Y approximately +4.3 cm, angled further downward relative to tracking.
Head Pose
head_pose.csv
1920 rows, 60 Hz. Position xyz plus quaternion xyzw. Start and end times match the RGB exposure midpoint.
Hand 26 joints
hand_tracking.csv
607 rows, approximately 19.0 Hz. 477 valid left, 485 valid right. Joint names are consistent with OpenXR XR_EXT_hand_tracking.
IMU
gyro.csv, accel.csv, imu_calibration.json
Approximately 1015 Hz. Gyroscope in rad/s, accelerometer in m/s². Includes bias, scale, non-orthogonality, and camera time alignment.
Audio
audio.m4a, audio_metainfo.csv
44.1 kHz, mono AAC, approximately 96 kbps, 31.6 seconds. The file start is approximately 288 ms later than RGB frame 0; the two files cannot be hard-aligned at their 0-second marks.
Handle
controller_poses.csv
One row is all zeros; left and right are inactive. This segment cannot be used as a controller 6DoF.
Time
The unified time is UTC in nanoseconds. RGB alignment uses mid_exposure_utc_ns, not the player's PTS starting at 0. The head pose in this section coincides frame-by-frame with this exposure midpoint. Hand timestamps are a subset of the head-pose timestamps, with a nearest-neighbor error of 0 ms, so they are approximately 19 Hz sampled onto 60 Hz, not a separate clock.
In calibration, RGB is approximately −10 ms relative to head pose, grayscale approximately +5 ms, and IMU approximately +5.4 ms relative to head pose. These values are in time_sync.json. This section uses 0 for RGB. In the 23.4–24.6 second scan, −9.9 ms shifted the projected wrist by 4.7 pixels (p50). Skin-tone distance within ±40 ms is 3.1–4.5 pixels, which does not resolve to milliseconds. Edge p90 is still approximately 46 pixels.
Projection
The extrinsics are Camera→Body. The body coordinate system has +X pointing right, +Y pointing up, and the lens facing −Z. The output footage is upright; a +90° rotation about the optical axis in camera coordinates was applied during projection. The lens uses equidistant fisheye r = f·θ; the small pinhole distortion coefficients are not used to cover hands at the image edges. Both left and right hands are projected onto the left and right views respectively. Hands with active not equal to 1 are not drawn.
Differences from the Spec Sheet
The product page lists two RGB options: rolling shutter 2328×1748, or global shutter 1600×1200. This segment is recorded at 1920×1200. For batch training, bucket by camera_params_rgb.json; do not mix with the other two tiers under the same intrinsics. SLAM 5 mm is still the nominal figure from the documentation. This segment has no ground truth, so it cannot be written up as verified accuracy.
Training Contract
This is a human first-person observation, not a robot end-effector action. OpenXR 26 joints are not a 7-DoF gripper. Train by reading the 60 Hz rgb.mp4, not the 10 Hz preview on the website. Hands remain at about 19 Hz:hands_flags.jsonl Per-joint visibility and dt_ns are present; confidence is empty because the device CSV has no such column, so no fake score was filled in.
rgb_index.jsonl There are 1920 rows; each row connects that frame's RGB to head pose, hands, tracking, and the downward-facing ctrl grayscale, and records dt_ns. ctrl is in the observations, not in the empty controller_poses. Audio packet 0 is 288.06 ms later than RGB frame 0, recorded in time_sync.json.
Offset scan over 23.4–24.6 seconds, 25 frames: distance from skin tone to the projected wrist and index fingertip. The p50 is 3.1–4.5 pixels within ±40 ms, so this proxy cannot resolve milliseconds. A −9.9 ms calibration moved the wrist by 4.7 pixels (p50) in the same window. The RGB offset used for this take is 0. The p90 is still about 46 pixels; the edges do not close, and this is not checkerboard calibration. The numbers are in time_offset_sweep.json.
The four-sentence scenarios are human-written narratives, not model outputs:narration.jsonl. Objects have time intervals only: no boxes, no masks, no 6DoF:object_spans.jsonl. The pixel trajectories of the wrist and index fingertip are in hand_uv_rgb.jsonl—that is a joint projection, not object detection.
How to read during training
Each episode includes at least: rgb, tracking, ctrl from six monocular cameras; 60 Hz head pose; approximately 19 Hz two-hand 26-joint data with active flags; approximately 1 kHz gyroscope and accelerometer; 44.1 kHz audio; three sets of camera parameters and IMU calibration. Do not resample the hands to 60 Hz without preserving dt. This segment has no task language, object 6DoF, or contact force, so it is not sufficient on its own for training manipulation policies.
In public formats, the closest fields are the OpenXR hand skeleton, LeRobot / RLDS episodes, and the multi-camera synchronization conventions of Ego-Exo4D, HOT3D, and Project Aria. These are points of comparison, not on-device measurement results.
E6 sample episode note
Device UID 2934393122. Recorded 2026-07-08 15:53, about 32.0 seconds. The site demo runs from 22.0 s to the end, with OpenXR 26-joint skeletons on the left and right RGB views. Source RGB is 60 Hz. The player file is a 10 Hz preview for checking that joints land on the hands. Training should read the source mp4, csv, and calibration files, not this preview.
What is in the pack
Stream
Files
Measured on this take
RGB
rgb.mp4, rgb_metainfo.csv, camera_params_rgb.json
HEVC, 3840×1200 side-by-side, 1920×1200 per eye, 1920 frames, 60.0 Hz. Exposure 6.67 ms.
SLAM gray area
tracking.mp4 and its meta / calibration
1280×480 side-by-side, 640×480 per eye, 1912 frames, about 59.8 Hz.
Hand gray
ctrl.mp4 and its meta / calibration
Same 1280×480 layout, 1914 frames, about 59.9 Hz. Extrinsic Y is about +4.3 cm, aimed further down than tracking.
Head pose
head_pose.csv
1920 rows, 60 Hz. xyz plus quaternion xyzw. Endpoints match RGB mid-exposure.
26 joints
hand_tracking.csv
607 rows, about 19.0 Hz. Left active 477, right active 485. Names match OpenXR XR_EXT_hand_tracking.
IMU
gyro.csv, accel.csv, imu_calibration.json
About 1015 Hz. Gyro in rad/s, accel in m/s². Bias, scale, non-orthogonality, and camera time alignment are included.
Audio
audio.m4a, audio_metainfo.csv
44.1 kHz mono AAC, about 96 kbps, 31.6 s. File start is about 288 ms after RGB frame 0. Do not hard-align both files at t = 0.
Controller
controller_poses.csv
One all-zero row, both hands inactive. Not a 6DoF controller episode.
Time
The shared clock is UTC nanoseconds. Align RGB on mid_exposure_utc_ns, not on a player PTS that starts at zero. On this take, head pose matches that mid-exposure timestamp exactly. Hand timestamps are a subset of the head-pose timestamps, with zero nearest-neighbor error. The hand stream is sampled at approximately 19 Hz on the 60 Hz clock, not on a second clock.
Calibration stores about −10 ms for RGB versus head pose, about +5 ms for grayscale, and about +5.4 ms for IMU versus pose. Those values are in time_sync.json. This take applies 0 for RGB. On a 23.4–24.6 s sweep the factory −9.9 ms shift moves the projected wrist 4.7 px (p50). A skin-color proxy stays at 3.1–4.5 px across ±40 ms, so it cannot pick a millisecond. Edge p90 is still about 46 px.
Projection
Extrinsics are Camera-to-Body. Body axes are +X right, +Y up, cameras looking toward −Z. The delivered frames are upright, so projection adds +90° about the camera optical axis. The lens model is equidistant fisheye, r = f·θ. The small pinhole radial coefficients do not cover hands at the edge of the frame. Both hands are drawn on both eyes. A hand with active not equal to 1 is not drawn.
How This Differs from the Brochure
The product page lists two RGB modes: rolling shutter 2328×1748, or global shutter 1600×1200. This recording is 1920×1200. Bucket training data by camera_params_rgb.json. Do not share one intrinsic matrix across those resolutions. The 5 mm SLAM figure remains a nominal specification. This clip has no ground truth and is not a verified accuracy result.
Training contract
This is a human egocentric observation, not a robot end-effector action. The 26 OpenXR joints are not a 7-DoF gripper. Train on the 60 Hz rgb.mp4, not the 10 Hz preview. Hands stay near 19 Hz. hands_flags.jsonl has per-joint visibility and dt_ns. Confidence is null because the device CSV has no such column. No score was invented.
rgb_index.jsonl has 1920 rows. Each row joins that RGB frame to head pose, the hand sample, tracking, and the downward ctrl pair, with dt_ns. Audio packet 0 is 288.06 ms after RGB frame 0. See time_sync.json and time_offset_sweep.json.
The four scene sentences are a human review, not a model: narration.jsonlObjects are time spans only, with no boxes, masks, or 6DoF: object_spans.jsonl. hand_uv_rgb.jsonl is the projected wrist and index tip, not an object detector.
How to read it for training
One episode should carry six monocular views from rgb, tracking, and ctrl; 60 Hz head pose; both 26-joint hands at about 19 Hz with an active flag; gyro and accel near 1 kHz; 44.1 kHz audio; and the three camera files plus IMU calibration. Do not resample the hands to 60 Hz without keeping dt. This take has no language, object 6DoF, or contact force, so it is not enough by itself to train a manipulation policy.
Nearby public formats are the OpenXR hand skeleton, LeRobot / RLDS episodes, and the multi-camera sync used by Ego-Exo4D, HOT3D, and Project Aria. Those are references, not measurements from this device.