Query everything
Run on signal, not noise.
Petabytes in, signal out. Query what matters across every modality, at every scale, straight from object storage. Make each training dataset a testable hypothesis, and keep each experiment reproducible and reversible. Build better models and evals.
Decide what the model learns.
Cut the failed grasps or keep them as negatives? Upweight or downsample? Rebalance synthetic versus real? Spend less time munging, and more time making decisions.
In LeRobot community results, curating 1,200 of 5,688 episodes moved success ~50 points; algorithm changes moved 5–20. Hugging Face.select
+40%
throughput · one-third the data
A third of the data beat all of it: slow, missed, and failed demos cut, recovery behavior deliberately kept.
Figure · Helix logistics ↗
weight
31.6 → 56.3
shirts per hour
Even successful demos carry dead time, and behavior cloning imitates it. The fix was weighting moments, not collecting more.
XDOF · WARP-RM ↗
mix
+32%
over hand-tuned weights
Mixture ratios are usually set by hand. Re-Mix learned them from worst-case training loss and beat the field's hand-picked weights.
Re-Mix · CoRL 2024 ↗
Iterate on training datasets as fast as you do on code.
Spiral gives you lightning-fast queries for exploration, and GPU-saturating throughput for training.
Skild reports spending $3 on quality control for every $1 of data collection. S1.Mixing 93 clean-looking episodes into GR00T training cut closed-loop success from 73% to 43%; offline loss never moved. Pebblous.datasets/
failed_grasps_v3/
failed_grasps_v3_rebalanced/
failed_grasps_v3_rebalanced_final/
full export
840k moments
notebooks/
score_failures_v2.ipynb
last run unknown
Signals → Sets
Expand from one sample to an improved training set.
Investigate the episode, enrich the archive, curate the matches, train against the result. Run queries on your data in-place, and automatically version intermediate work. Make each experiment build on the last.
Investigate
“Find every failure like this one.”
Start with one surprising interval: a failed grasp or a regressed eval slice. Search synchronized video, actions, state, force, and model output together to recover matches, near-misses, and baselines across the population.
seed · t+7.9spopulation search
2,684
related moments across 840,000 episodes
Enrich
Make hidden behavior queryable.
Turn behavior you can see into named, versioned signals you can query. Tracks, contact, slip, and recovery retain their provenance and declared grain.



Curate
Build the exact set the model needs.
Compose signals into a reviewed boundary. Keep the population, supporting evidence, checks, and exact membership attached as the cohort and its underlying data change.
contact_duration≥ 500 msslip_distance> 15.0 mmcommanded_release= falseprogress_score @ rm_v2Train
Stream the result directly to GPUs.
Consume the cohort by name and version. Mix exact selections and stream aligned windows into your training loop, without another export.
query = (
db.mix(
("failed-grasp-regressions", "v12", 0.3),
("nominal-grasps", "v41", 0.7),
)
.shuffle(buffer_size=4096, seed=47, epoch=epoch)
)
for batch in query.to_torch(device="cuda", batch_size=16):
policy.update(batch["frames"], batch["state"])Machine-scale, multiplayer-ready
Build a better learning machine.
Spiral keeps every iteration of the loop versioned, reversible, and shareable, so nothing learned is lost and nothing is learned twice.
failed-grasp-regressions v13 published
maya · +214 −87 vs v12 · checks 12/12 · tag v13
merge maya/rebalance
maya · near-misses sampled 2×
drop all recovery demos
scan-agent · closed-loop dipped · discarded · scratch/no-recovery
87 held at the cut flagged: glare, not slip
maya · recheck before we publish
rebalance: sample near-misses 2×
maya · maya/rebalance
eval holdout frozen
priya · no_eval_overlap · pass · tag eval-v4
slip_distance v3 recomputed corpus-wide
jun · tracker_v3 · depth_v5 · 840k moments
How Spiral works.
A storage and query engine for compressed, multimodal data. From creators of Vortex
Multimodal engine
Query across every modality, at every scale.
Video · Audio · Images · Traces · TabularYour storage
Read from and write to the bucket you already have.
S3 · GCS · R2 · CAIOS · MinIO · TigrisIn-place queries
Iterate fast without ingesting.
MCAP · LeRobot · MP4 · ParquetGPU data loading
Saturate your GPUs without staging a byte.
NVDEC · CUDA · PyTorchOpen Storage
Built on Vortex, the fastest open-source storage format, by every metric.
Vortex · Linux FoundationTime travel
Re-run a query against the exact commit, tag, or branch behind a result.
AS OF COMMIT · TAG · BRANCHConnect your data.
Trace the moment, find the population, inspect the selection.
We onboard a few teams at a time, and we partner deeply with people building the future.