“Unstructured” is a euphemism for “my system can’t do this.”
Video, sensor logs, agent traces, and spatial data have structure: frames, clocks, spans, and coordinates. Spiral keeps that structure as typed columns next to your rows. You query them in place with SQL, Python, or Rust, on CPUs and GPUs.
Your video files stay in your bucket.
Spiral reads the structure inside your files.
Spiral lists the files in your bucket without copying them. An MCAP import makes each recording a row and each topic a typed column with its own clock. MP4 files stay in place as references. A query for two seconds of one camera decodes from the keyframe before them and returns only those frames.
Native types
Video, images, sensor readings, point clouds, polygons, and embeddings are typed columns. Structs and lists nest to any depth, so each span of an agent trace keeps its tool calls and messages.
Logical over physical
Spiral selects the encoding, layout, cache, and processor from the type. It can change them later with no data migration.
Zephyr
Zephyr is Spiral’s accelerator layer. It runs fused multimodal functions on the GPU: one pass decodes video, resizes frames, and hands tensors to PyTorch.
Derived columns
A detector writes its output as a column, for example an anomaly score. Spiral stores the column beside its source rows.
Query every modality as a table.
A robot log holds frames from several cameras and readings on clocks at several rates. Agent traces nest spans inside spans, with tool calls and screenshots, and each run appends new spans. In spatial data, points share coordinates with the polygons on a map. Most databases store this data as opaque blobs, and it ends up in loose files. In Spiral, a query lines up a camera frame with the force reading taken at the same instant, because every element keeps the recording’s clock.
Spiral keeps no second copy for the GPU or for search.
Yes: Frames decoded on the GPU
Training reads frames as tensors in GPU memory. No decoded copy of the video lands on disk or in CPU memory.
No: Frame dumps on disk
Teams dump frames to image files because the training job cannot read the video. Spiral decodes only the frames that a query asks for.
Yes: Search on the same rows
The index holds only compact codes, which Spiral rebuilds from the table. Every distance in a result is exact, because Spiral ranks the candidates against the table’s own vectors.
No: A separate vector database
A separate vector database is a second copy of your rows to keep in sync. Spiral’s index points at the table’s own rows, and it still finds them after compaction.
What it works with.
Workflows:Investigate,Enrich,and Curate