Show your footage a moment. Get back every time it happened.
ElideDB is a memory for video. Ingest your recordings once. Then hand it a clip, a spill, a dropped part, a near miss, and it returns every other time something like that happened, ranked, with the span inside each recording, in about half a second. No labels. Nothing trained on your data. Works on footage it has never seen.
$ elidedb add kitchen /videos/robot_runs # ingest, once $ elidedb query kitchen /clips/spill.mp4 # ask with a clip # match span source 1 41.2% 12.5- 24.3s run_0114/frames.mp4 2 38.7% 0.0- 11.8s run_0088/frames.mp4 3 31.1% 3.2- 15.0s run_0203/frames.mp4 3 hits in 554 ms
Your fleet records everything. Almost none of it is ever looked at again.
A gripper drops a part overnight. A test drive clips a cone. A customer reports the arm "did something weird" on Tuesday. You have the footage. Somewhere. In hours of recordings across a dozen cameras.
The property you care about, what happened and in what order, is exactly what text search and image search are worst at. To a model trained on captioned photographs, opening a drawer and closing it are nearly the same picture. The difference is in the order the frames arrive.
Sources for every figure are linked in the project README.
Ask your footage with footage. Get moments, not homework.
The questions every engineering lead asks us
Half a second where you spend afternoons
Fair questions
What footage does it work on?
Any video: robot fleets, dashcams, factory floors, lab rigs, drones. It was measured across simulated kitchens, real robot manipulation, road driving, and aerial footage with the same untouched system. Clips shorter than four seconds cannot be encoded.
Do we need GPUs?
For ingest, you want one: about 14 minutes of GPU per hour of video on Apple Silicon; CUDA is supported. A robot querying its own memory needs no encoder at all. Querying with an outside clip runs the encoders once per clip, on GPU or CPU.
Is there a language model making things up?
No. There is no generative model anywhere in the path. Two frozen vision encoders turn video into traces, and an elastic time alignment ranks them. Every result is evidence from your actual frames.
Can I search with words?
Not yet, by design. An earlier version searched by sentence and it taught us the problem: words erase what happened and in what order. That version is deprecated. A vocabulary layer that sits on top of the motion representation, rather than instead of it, is being optimised for release.
What happens to our raw files?
They are read once and never copied, moved, or modified. The store keeps compact derived traces, about 0.8 GB per hour of video, and a manifest pointing at your files. Deleting a store deletes only the traces.
Can we evaluate it on our own data before anything else?
That is the intended first step. The source is available for evaluation, testing, and research, with a manual that walks through ingesting your footage and scoring results against your own ground truth. Commercial use is licensed separately.
What does it cost?
We are onboarding early teams now and shaping pricing with them. The cost model underneath is simple: ingest is a one-time compute cost per hour of video, and every query after that is half a second on a machine you already own.
Everything is written down
I spent years at NYU building synchronized capture rigs: cameras, LiDAR, and microphones recording city streets for research. We got very good at collecting data. Then I watched every team, ours included, hit the same wall: the recordings pile up, and the only search tool anyone has is their own eyes.
ElideDB is the memory I wished those rigs had. We spent weeks trying to teach a model what "similar" means, and the thing that finally worked on footage it had never seen was refusing to teach it anything. It answers from your frames, in half a second, and it tells you where it is weak.
Ask real robot footage with real robot footage
The demo holds 1,122 robot manipulation recordings. Pick a few clips of a kind and it returns the rest of that kind. Nothing it ranks needs a model at query time, so it loads in seconds. Production deployments run on your own hardware, next to your data.