Turn your robot logs into training data
Your robots record all day. The moments that make your model better — the failures, the near-misses, the clean runs — are buried in it. Coldstack finds them across your whole fleet and exports them as training data. Raw MCAP never leaves your bucket.
The engine is working and validated on real public robot logs — metadata, signal, and CLIP image/text search, plus LeRobot export. We're recruiting design partners to prove it at fleet scale. The object-storage read path is benchmarked against real S3 (bounded, coalesced range-reads); end-to-end latency at fleet/petabyte scale isn't proven yet.
The problem
Mid-tier fleets either delete data they'll need, or bleed on storage. Usually both.
The moments that matter — failures, edge cases, training-data candidates — require searching the entire corpus, fast. Every current option fails on cost or capability.
Hot storage + Elasticsearch / pgvector
Ruinous at PB scale — $/GB/mo runs 10–20× S3.
S3 / Glacier archive
Cheap but unsearchable. Retrieval means hours plus engineer time.
In-house Spark / Iceberg pipeline
Only Waymo/Tesla-tier teams can afford to build and run it.
Vertical platforms (Foxglove, Roboto)
Sell dashboards and triage, not an embeddable primitive. Priced as SaaS seats.
One query API
Semantic, signal, and metadata — in a single call.
import coldstack
ns = coldstack.Client(api_key=...).namespace("fleet-a")
results = ns.query(
text="gripper slipping on transparent object", # visual semantic
signal="torque_z > 5 for 2s and velocity < 0.1", # time-series pattern
filter={"robot_id": ["r-204", "r-207"]}, # metadata
limit=50,
)
for r in results:
print(r.recording_id, r.t_start, r.t_end, r.score)
# → presigned URL to the raw slice in your bucketSemantic
"gripper slipping on transparent object" → ranked episode segments, from sampled camera frames embedded with a pluggable CLIP-class model.
Signal
"torque_z > 5 for 2s and velocity < 0.1" → matching timestamps, from downsampled numeric channels — no need to touch raw data.
Metadata
Robot ID, time range, topics, message schemas, tags. Composed with the semantic and signal filters in a single query.
How it works
BYO-bucket. We host only the index.
Point at a bucket
Give Coldstack a scoped, read-only role on an S3 prefix. We incrementally index new MCAP files as they land. Raw data never leaves your account.
We build the index
Metadata rows, downsampled signal sketches, and sampled-frame embeddings — all written back to object storage. The index is ~1–3% of raw.
Query and export
One composable API returns matching segments plus presigned URLs, and cuts them into training-ready episode exports (LeRobot / RLDS-compatible).
0.5–2 TB
Per robot, per day
time-synced multimodal data
~99.9%
Never read again
but the rest is what matters
0.02%
Index footprint
measured on a camera/lidar log
≥5×
Cheaper (target)
vs hot-storage stacks
Architecture bets
Object-storage-native. Index-only. Open format.
Everything on object storage
Index shards, signal sketches, and embeddings all live in S3. Query nodes are stateless with an NVMe/RAM cache for hot namespaces. No always-on database in the hot path.
Index-only custody
Raw MCAP never leaves the customer's bucket. We store only derived data — metadata rows, downsampled signals, embeddings, byte offsets. It kills the #1 enterprise objection and shrinks our storage to ~1–3% of raw.
Cold-by-default economics
A query on a cache miss costs a bounded number of S3 GETs. Cache-pinning for hot workloads is a paid tier, not the default. Target: ≤10% the cost of a hot-storage alternative.
Open index format
The on-disk layout is designed to be publishable as a spec, à la MCAP. The moat is the managed query engine, not format lock-in.
FAQ
Where does my raw data live?+
In your own S3 bucket. Coldstack holds a scoped, read-only role on a single prefix and never copies raw data out. We custody only the derived index (~1–3% of raw).
What formats do you support?+
MCAP first — it has become the de facto robot-log standard. ROS bag 1/2 are supported via conversion.
Is there a query UI?+
Python SDK first, CLI second, plus a minimal query console. We are infrastructure — rich dashboards and replay are your job (integrate Foxglove, don't rebuild it).
What does it cost?+
Priced per GB-indexed per month, plus per-query above a free tier. Design-partner pilots are flat $2–5k/mo over 3–6 months, with co-defined success criteria.
Is it available now?+
The engine works today — validated on real public robot logs (metadata, signal, CLIP image/text search, LeRobot export). We're recruiting 2–3 design partners to run it on their own fleets and prove the economics at scale.
Be a design partner.
Shape the retrieval layer.
We're recruiting 2–3 mid-tier fleets for hands-on pilots with co-defined success criteria. If your log storage bill hurts, or you've lost a failure in the archive — let's talk.