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 —

illustration — teaching aid, not sensor data
Frame cameraevery pixel, every frame · ~30–1000 fps · mostly redundant
Event sensoreach pixel fires alone · µs latency · ~mW · brain-inspired
~1 µslatency
nomotion blur
>120 dBdynamic range
milliwattspower

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?

see real events

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.

ON OFFdrag to orbit
loading…
provenanceue.represent(stream, as_="spike")
what am I looking at?
a single slice — sparse edges. can you be sure what it is?
integration 0.0 ms · 0 events

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.

integration0.0 ms

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.

Spike
Raw spikes — every event, microsecond-exact. The native form; what a spiking network consumes.
→ spiking neural nets · neuromorphic AI

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.

ue.represent(stream, as_="spike")
→ ready for AI

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.

the usual way · complex
per-vendor decoders
.raw decoder.aedat decoder.dat decoder.hdf5 decoder
↓ custom parsing, per format
hand-write a builder for EACH rep
spike buildervoxel builderframe buildergraph builder
…and a visualizer for EACH rep
spike vizvoxel vizframe vizgraph viz
+ per-dataset glue× every new dataset

you build every box yourself — per dataset, per representation

UniEvent · one call
import unievent as ueue.represent(stream, as_="spike")
spikevoxelframegraph

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.

one (x, y, t, p) stream↓ ue.represent
spike
🧠 neuromorphic SNN
voxel
sparse 3D-conv
frame
CNN
graph
GNN

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.

$ pip install -e ".[io]"
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.