[ DATASET RELEASE ]
AllIndustry‑100K: a 50‑hour sample of skilled factory manipulation
A 50-hour sample of skilled factory manipulation, segmented into 13,861 task clips with instructions, dexterity primitives, 3D hand pose, and camera trajectories. Curated for the research team at Spirit AI.
Dataset statistics
The delivery contains 88.7 hours of task-verified footage in 13,861 clips. Every clip is ranked by a composite hand-pose quality score, defined in section 05, and the top two quality tiers together hold 52.7 hours. That set constitutes the 50-hour sample. The low tier ships alongside it in full, as task diversity and language grounding do not require clean hand pose.
| Task-verified footage | 88.7 h |
| Annotated task clips | 13,861 |
| 50-hour sample (high and medium tiers) | 52.7 h |
| high tier (q ≥ 0.40) | 27.6 h · 4,233 clips |
| medium tier (0.15 ≤ q < 0.40) | 25.1 h · 4,409 clips |
| low tier (q < 0.15) | 36.0 h · 5,219 clips |
| Curated task types | 49 |
| Distinct free-text task labels | 3,075 |
| Anonymized operators | 111 |
| Dexterity primitives | 80 in 11 families |
| Training episodes | 22,359 · 31.9 h |
| Delivered volume | 1.06 TB, dual-region |
Each clip carries a natural-language instruction, a free-text label, a curated task type, held-object annotations for both hands, subtask captions with primitive codes, and its quality score with a corpus-wide rank. Clip lengths range from 3 to 152 seconds with a median of 11 seconds, long enough to contain complete manipulation cycles while remaining task-pure.
The platform
The sample is accompanied by a dedicated exploration platform. Its library provides full-text search over the task and subtask annotations, with filters for task type, dexterity primitive, operator, and quality tier, over both the task clips and the training-episode windows. Results are ordered by the composite quality score and are served from the same object storage that holds the delivery. Each clip opens into an inspection view with frame-accurate scrubbing, the subtask annotations, a 3D hand-pose viewer, and the recovered camera trajectory where available.
An interactive excerpt of the platform is embedded below, restricted to five clips drawn from five task types. All search, playback, and inspection functionality operates as it does for authorized users.
Collection pipeline and camera specifications
Footage is captured with head-mounted cameras worn by the operators themselves, inside active facilities spanning jewelry finishing, diamond processing, textiles, steel, appliance assembly, machining, and agriculture. There are no scripted takes and no interruptions to production. The resulting footage reflects the true distribution of skilled manual work, including repetition, variation, tool changes, and interruptions.
This sample was collected at a subset of our partner sites specifically for Spirit AI. The same operation extends to stereo head rigs and, more recently, six-camera arrays. Additional synchronized viewpoints raise both hand-pose accuracy and the usable yield per raw hour, and can be brought to future collections where they are of interest.
Capture
| Mount | head-mounted, egocentric |
| Video | 3840 × 2160, 30 fps, HEVC |
| Proxies | 854 × 480, H.264, per chunk |
| Lens model | OpenCV fisheye, K + 4 coefficients |
| Calibration | per camera, best rms 0.69 px |
| Pose frame | undistorted pinhole, K shipped |
| Fleet | 25 calibrated cameras |
Training pipeline
Eleven processing stages sit between raw footage and training-ready episodes. The funnel below tracks the hours surviving each of the major stages; every hour that drops out does so for a stated, measurable reason, and the intermediate products of each stage form part of the delivery. Hand pose combines a WiLoR detector [7] with the MANO hand model [8], camera trajectories come from DPVO monocular SLAM [9], and episodes are packaged in the LeRobot format [11].
Ingest
Audio is stripped for privacy, 480p proxies are rendered, and footage is normalized into five-minute chunks.
Calibration
Per-camera fisheye intrinsics are fitted; all downstream pose estimation operates in the undistorted pinhole frame.
Task annotation
A vision-language pass produces a task tree per chunk: tasks, subtasks, captions, held objects, tools, and a primitive code from an 80-atom controlled vocabulary. A second automated pass verifies every annotation against the video.
Hand pose
A detector and MANO regressor estimate both hands in 3D at 6 Hz, as absolute camera-frame keypoints.
Review and refinement
Every clip frame is reviewed at 3 Hz by a second vision-language model. Flagged frames are re-estimated on review-guided crops, camera translation is re-solved deterministically per row, and every proposed correction must pass geometric gates calibrated from the data.
Camera trajectory
Monocular SLAM recovers the camera-to-world trajectory per chunk at 6 Hz.
Export
Each clip becomes a parquet table: camera pose, 21-keypoint hands, wrist poses, and per-hand confidence flags, filed under anonymized worker units.
Episodes
Contiguous trackable windows of at least two seconds are rendered to LeRobot v2 with 14-dimensional state and action per hand, under stratified held-out splits by task family.
Quality assurance
The backbone of the quality process is a full-corpus independent review. Every clip frame, 1,240,047 frame reviews in total, was judged at 3 Hz by a GLM vision model presented with the frame and the estimated hand pose rendered upon it. Each review returns a verdict per hand, missed-hand detections with suggested regions, a free-text note, and a confidence grade. Flagged frames were re-estimated on review-guided crops, and every proposed correction was required to pass span, depth, and velocity gates calibrated from the data itself. A random sampling of frames was additionally adjusted under manual review.
Task labels were curated by manual review: the job descriptions that ground the task annotation pass were written per station from direct observation at each site, and every clip carries an automated annotation-versus-video verification verdict.
The review stream is further distilled into per-clip metadata: hand-coverage fractions, an occlusion fraction mined from 1.28 million review notes, a foreign-hand estimate from per-camera workspace models, and a low-confidence fraction. These combine into a single score per clip:
q=cboth·(1 − focc)·(1 − ffor)·(1 − ½ func)
where cboth denotes the fraction of pose rows with both hands present, focc the occlusion fraction from review notes, ffor the estimated foreign-hand contamination, and func the fraction of rows flagged low confidence.
The score determines the tier assignment, the corpus-wide rank, and the default ordering in the library. Nothing is silently discarded; rows that carry flags ship with their flags.
Fine-tuning results
Egocentric human video has become the most scalable route to manipulation data. Ego4D [5] and EPIC-KITCHENS [6] established the scale available in everyday first-person footage. EgoMimic [4] demonstrated egocentric human demonstrations transferring into real robot policies, and EgoDex [3] paired 829 hours of egocentric video with 3D hand tracking. Most directly, the Dyna-2 report [1] fits manipulation scaling laws to more than one million hours of human video, and Skild's S1 [2] pretrained on egocentric human video to obtain in-context learning, in which a single video demonstration substitutes for hundreds of post-training episodes. Industrial footage with tracked hands and grounded task language remains the scarcest portion of that supply, and it is the portion this sample occupies.
GR00T N1.7
We validate the sample by fine-tuning GR00T N1.7 [10], a three-billion-parameter vision-language-action model that treats human hands as a first-class embodiment and is pretrained on roughly twenty thousand hours of egocentric human video. Training uses the sample's LeRobot episode packs directly: 14-dimensional wrist-pose and aperture actions per hand at 6 Hz, approximately ten thousand training episodes, and two held-out evaluations, one over unseen episodes of seen task types (IID) and one over entire task types excluded from training (strata). We compare a pretrained baseline (the pretrained model after the one thousand steps required to calibrate a fresh action head), checkpoints fine-tuned on this egocentric video sample at increasing step counts, and a run trained on the same sample without pretraining. Evaluation is open-loop action prediction on matched held-out trajectories, the standard offline proxy in this literature; we report MSE, L1, and accuracy at two tolerances in normalized action units.
| Model | MSE ↓ | L1 ↓ | acc@0.5 ↑ | acc@0.1 ↑ |
|---|---|---|---|---|
| Pretrained baseline | 0.363 ± 0.155 | 0.415 ± 0.101 | 0.728 ± 0.105 | 0.227 ± 0.063 |
| Fine-tuned, 4k steps | 0.320 ± 0.168 | 0.362 ± 0.107 | 0.782 ± 0.102 | 0.295 ± 0.089 |
| Fine-tuned, 9k steps | 0.278 ± 0.154 | 0.327 ± 0.111 | 0.807 ± 0.107 | 0.344 ± 0.114 |
| Fine-tuned, 10k steps | 0.290 ± 0.182 | 0.333 ± 0.123 | 0.801 ± 0.112 | 0.347 ± 0.124 |
| No pretraining, 10k steps | 0.295 ± 0.182 | 0.340 ± 0.123 | 0.800 ± 0.112 | 0.322 ± 0.124 |
| Model | MSE ↓ | L1 ↓ | acc@0.5 ↑ | acc@0.1 ↑ |
|---|---|---|---|---|
| Pretrained baseline | 0.231 ± 0.144 | 0.324 ± 0.101 | 0.813 ± 0.102 | 0.258 ± 0.068 |
| Fine-tuned, 4k steps | 0.194 ± 0.144 | 0.271 ± 0.110 | 0.852 ± 0.107 | 0.369 ± 0.111 |
| Fine-tuned, 9k steps | 0.169 ± 0.122 | 0.239 ± 0.105 | 0.873 ± 0.099 | 0.454 ± 0.157 |
| Fine-tuned, 10k steps | 0.164 ± 0.131 | 0.236 ± 0.111 | 0.878 ± 0.102 | 0.459 ± 0.160 |
| No pretraining, 10k steps | 0.199 ± 0.131 | 0.264 ± 0.111 | 0.857 ± 0.102 | 0.410 ± 0.160 |
Seen task types
acc@0.1, higher is better
Unseen task types
acc@0.1, higher is better
Three observations stand out. First, the dataset teaches: fine-tuning improves every metric monotonically on both splits, with precision (acc@0.1) rising 53 percent relative on held-out IID episodes and 78 percent on unseen task types. Second, it generalizes rather than memorizes: the gains on entirely unseen task types exceed the IID gains. Third, it composes with large-scale video pretraining: at matched training length the fine-tuned pretrained model beats the run without pretraining on all unseen-task metrics, while even the model trained on this data alone reaches competent absolute performance.
Spirit VLA v1.5
We repeat the exercise on Spirit VLA v1.5 [12], a 5.4-billion-parameter vision-language-action model whose native bimanual action layout, a 14-dimensional end-effector representation per timestep, matches the sample's action convention. The baseline is the pretrained model evaluated zero-shot, with no gradient steps, after injecting the sample's action-normalization statistics. We fully fine-tune on the same training split and evaluate the same two held-out sets with the same metrics, reporting checkpoints at four-thousand-step intervals. Training first runs to 20k steps; we then warm-start from the 20k checkpoint and continue to 40k steps with a restarted learning-rate schedule.
| Model | MSE ↓ | L1 ↓ | acc@0.5 ↑ | acc@0.1 ↑ |
|---|---|---|---|---|
| Pretrained baseline | 0.455 ± 0.323 | 0.469 ± 0.154 | 0.669 ± 0.125 | 0.174 ± 0.059 |
| Fine-tuned, 4k steps | 0.266 ± 0.182 | 0.354 ± 0.104 | 0.764 ± 0.096 | 0.252 ± 0.066 |
| Fine-tuned, 8k steps | 0.247 ± 0.178 | 0.334 ± 0.105 | 0.781 ± 0.098 | 0.282 ± 0.077 |
| Fine-tuned, 12k steps | 0.236 ± 0.200 | 0.329 ± 0.113 | 0.790 ± 0.097 | 0.284 ± 0.083 |
| Fine-tuned, 16k steps | 0.228 ± 0.189 | 0.320 ± 0.110 | 0.795 ± 0.103 | 0.293 ± 0.093 |
| Fine-tuned, 20k steps | 0.211 ± 0.146 | 0.311 ± 0.094 | 0.805 ± 0.087 | 0.290 ± 0.081 |
| Fine-tuned, 24k steps | 0.219 ± 0.167 | 0.311 ± 0.100 | 0.805 ± 0.095 | 0.299 ± 0.088 |
| Fine-tuned, 28k steps | 0.214 ± 0.178 | 0.312 ± 0.101 | 0.805 ± 0.093 | 0.289 ± 0.076 |
| Fine-tuned, 32k steps | 0.217 ± 0.164 | 0.312 ± 0.106 | 0.806 ± 0.102 | 0.295 ± 0.089 |
| Fine-tuned, 36k steps | 0.200 ± 0.159 | 0.300 ± 0.092 | 0.818 ± 0.080 | 0.304 ± 0.087 |
| Fine-tuned, 40k steps | 0.207 ± 0.165 | 0.303 ± 0.103 | 0.818 ± 0.096 | 0.304 ± 0.092 |
| Model | MSE ↓ | L1 ↓ | acc@0.5 ↑ | acc@0.1 ↑ |
|---|---|---|---|---|
| Pretrained baseline | 0.266 ± 0.177 | 0.355 ± 0.110 | 0.773 ± 0.105 | 0.232 ± 0.069 |
| Fine-tuned, 4k steps | 0.200 ± 0.147 | 0.303 ± 0.103 | 0.818 ± 0.100 | 0.291 ± 0.092 |
| Fine-tuned, 8k steps | 0.178 ± 0.130 | 0.274 ± 0.104 | 0.840 ± 0.101 | 0.356 ± 0.109 |
| Fine-tuned, 12k steps | 0.177 ± 0.143 | 0.274 ± 0.111 | 0.843 ± 0.107 | 0.347 ± 0.111 |
| Fine-tuned, 16k steps | 0.181 ± 0.125 | 0.280 ± 0.101 | 0.832 ± 0.100 | 0.334 ± 0.104 |
| Fine-tuned, 20k steps | 0.167 ± 0.124 | 0.267 ± 0.099 | 0.847 ± 0.098 | 0.352 ± 0.104 |
| Fine-tuned, 24k steps | — | — | — | — |
| Fine-tuned, 28k steps | 0.166 ± 0.123 | 0.265 ± 0.098 | 0.850 ± 0.094 | 0.358 ± 0.102 |
| Fine-tuned, 32k steps | 0.164 ± 0.134 | 0.263 ± 0.104 | 0.853 ± 0.104 | 0.356 ± 0.105 |
| Fine-tuned, 36k steps | 0.159 ± 0.110 | 0.261 ± 0.096 | 0.850 ± 0.096 | 0.367 ± 0.110 |
| Fine-tuned, 40k steps | 0.165 ± 0.124 | 0.263 ± 0.100 | 0.852 ± 0.101 | 0.368 ± 0.109 |
Seen task types
acc@0.1, higher is better
Unseen task types
acc@0.1, higher is better
Fine-tuning halves aggregate error on seen task types (MSE 0.455 to 0.207) and raises precision 75 percent relative (acc@0.1 0.174 to 0.304); on task types never seen in training, precision rises 59 percent (0.232 to 0.368), and the final checkpoint is the strongest of the entire run. Most of the gain arrives within the first two thousand steps. Beyond that point the seen-task-type numbers move within evaluation noise, while unseen-task-type precision keeps improving through the continued run to 40k steps. Extended training therefore continues to buy generalization after in-distribution performance has saturated.
If there are other models you would like to see fine-tuning demonstrations for, we are happy to set up fine-tuning for particular architectures of interest; because the episodes follow the LeRobot convention, integrating a new architecture is straightforward.
Conclusion
It has been a great honor to curate this data sample for the team at Spirit AI. Please reach out with any requests you may have for adjustments to the annotations or data formats provided here. We are very much excited for further collaboration.
All best,ditto.
Citations
- [1]Dyna Robotics. Dyna-2: A 1-Million-Hour Scaling Law for World-Action Models. 2026. dyna.co/dyna-2
- [2]Skild AI. Introducing S1: In-Context Learning for Robotics. 2026. skild.ai/blogs/s1
- [3]Hoque, R., Huang, P., Yoon, D. J., Sivapurapu, M., and Zhang, J. EgoDex: Learning Dexterous Manipulation from Large-Scale Egocentric Video. arXiv:2505.11709, 2025.
- [4]Kareer, S., et al. EgoMimic: Scaling Imitation Learning via Egocentric Video. 2024.
- [5]Grauman, K., et al. Ego4D: Around the World in 3,000 Hours of Egocentric Video. CVPR 2022.
- [6]Damen, D., et al. Scaling Egocentric Vision: The EPIC-KITCHENS Dataset. ECCV 2018.
- [7]Potamias, R. A., et al. WiLoR: End-to-end 3D Hand Localization and Reconstruction in-the-wild. 2024.
- [8]Romero, J., Tzionas, D., and Black, M. J. Embodied Hands: Modeling and Capturing Hands and Bodies Together. SIGGRAPH Asia 2017.
- [9]Teed, Z., Lipson, L., and Deng, J. Deep Patch Visual Odometry. NeurIPS 2023.
- [10]NVIDIA. GR00T N1: An Open Foundation Model for Generalist Humanoid Robots. 2025.
- [11]Cadene, R., et al. LeRobot: State-of-the-art Machine Learning for Real-World Robotics. Hugging Face, 2024.
- [12]Spirit AI. Spirit v1.5. 2026. github.com/Spirit-AI-Team/spirit-v1.5