01 · the eye — a brain-inspired sensor
Two ways to see a moving world.
A normal camera re-reads every pixel on a fixed clock — the whole frame at once, most of it unchanged. An event camera is built like a retina: each pixel fires on its own, the microsecond its brightness changes. Same blob, two sensors —
This isn't a thought experiment. It ships today, in
Sony IMX636 · Prophesee EVS
a stacked event-vision sensor. So what does one actually output?
UniEvent · the space-time of a sensor
One suite, zero to hero — for event-based vision. This is a real event stream: every dot is one event, born on its true microsecond timestamp.
03 · the reveal — representation is everything
So… what were you looking at?
A single millisecond of an event camera is almost nothing — a few hundred sparse spikes tracing the edges of whatever moved. Too thin to be sure what it is. Now integrate over time: accumulate those same events onto the image plane and watch the scene fill in.
Same events. We just chose how to turn spikes into structure — an event frame. That choice is the entire game: the wrong representation hides the signal, the right one makes it obvious. It is exactly what UniEvent does, from raw (x, y, t, p), in one call.
04 · the four — one stream, four ways
One clip. Every representation. One call.
The same 120,000 events, re-binned four ways. Watch the time axis reshape — continuous spikes, collapsed to a frame, quantized into 16 voxel slabs, rewired as a kNN graph. The counts are real unievent output; the morph shows one canonical stream taking each shape.
Each `represent()` output is a model-ready array — raw events → one stream → representation → the right model. The native path leads with spike → 🧠 neuromorphic SNN (events are spikes).
05 · the old way → the one import
From a tangle of formats to one import.
The event-camera world has no standard. Do it yourself and you write — and re-write, per dataset — a decoder, a parser, a builder for every representation, and a visualizer for every one.
you build every box yourself — per dataset, per representation
import unievent as ue↓ue.represent(stream, as_="spike")every representation — and the Labs render it for you
06 · the read — the Opus touch · perceiving a sensor it cannot natively see
Claude reads the sensor.
Stuck on what you're seeing? Claude (Opus 4.8) is reading this sensor with you— a modality language models have never been able to natively see, grounded in real measured stats, never vibes. Here's its read:
Pre-computed narration is integrity-audited (a second agent flags any unsupported claim), grounded in the same real stats and never fabricated.
And Opus does real engineering here too: python scripts/adapter_demo.py — paste a new dataset format, Claude writes a conforming adapter, the conformance test flashes green, and all four builders run on a format it had never seen.
07 · zero → hero · the merge
The thing that taught you is the thing you build with.
Every frame you just saw is real unievent output — one canonical (x, y, t, p) stream, every representation, one call. The library is the engine; the experience is its face. One suite, zero to hero — for research and education in event-based vision.
import unievent as ue
ue.represent(ue.sample_stream(), as_="frame").to_web(".../frame")
Built by Yazan (@INQUIRELAB) — PhD researcher and educator in neuromorphic, event-based vision. An Event-Vision-to-AI textbook is on the way from our INQUIRE.ai team.
MIT-licensed library · CC0 hero data · open-source for the field · built in one day, commit by commit.