CueFrame

An open-source C++ runtime

Visual context for
real-time interaction.

Track what is visible, retain earlier observations, and check the evidence before a response is published.

C++20 · OpenCV · ONNX · CPU inference

Inside a recorded run

latest-1 / 8 seconds
Inspect a moment
Camera evidenceLoading recorded trace
Recorded object detection output
0.90 s

Response history

Select an event to inspect its evidence

A replay of local inference on controlled transformations of a CC0 photograph. Responses use templates and an injected 400 ms delay. This is recorded output, not live browser inference.

Temporal evidence

A current view, an earlier observation, and the distinction between them.

Observe one cup, retain its earlier image when the scene is blank, and request clarification when two cups are visible.

Latency measurements

Same input, model and queue capacity. Different choices about which frame waits.

Acquisition → observation

Observed latency across three runs per queue policy
Queue policy Median p95
Latest frame 191 ms 209 ms
Bounded FIFO 353 ms 374 ms

YOLOX-s FP32 · Apple M4 Pro

30 input fps · 4 queue slots · 2 CPU threads
240 frames per run · 3 runs per policy

View the raw measurements
Latency distributions, median and p95 values, and queue wait versus inference time for both policies.

Latency includes acquisition, decode, queue wait and evidence update; it excludes image export and response delay. Latest-frame admission trades dropped frames for fresher evidence. These measurements describe this workload, not interaction accuracy.

Inspect the evidence-to-response timeline Actual response timing with publication, suppression, historical evidence and clarification.

Runtime design

The runtime separates capture, model execution, evidence storage and response validation.

Architecture and contracts
Bounded concurrency
Independent capture and inference, explicit overload policies, and owned frame data.
Temporal references
Timestamped object tracks and bounded history for current, spatial and previous-object queries.
Publication checks
Suppress responses when a turn is superseded, a target changes, or evidence expires.

Run locally

No camera or API key required.

Complete setup instructions
After building CueFrame
./build/cueframe_run \
  --input examples/coffee.png \
  --frames 30 --out runs/demo