Sage Grande · Summer of AI · 2026
Honest edge-AI wildfire smoke detection.
A smoke detector that runs on the camera node itself — and reports its own false positives as carefully as its detections. Built on one rule: move the work, not the data.
The problem
Every camera in the wild is full of things that look like smoke — fog banks, sunset cloud, marine layer, city glow, even a volcano. A model trained on clean datasets meets them all at once, and its field precision falls off a cliff.
We measured it. A well-known research detector scored a field precision of 0.127. And on an independent 3.47-million-frame archive of a per-frame vision-language detector's “fire” verdicts, we checked the largest bursts against county fire-department records: zero of the 36 biggest were real reported fires — they were per-camera artifacts, storms, and lava glow.
The approach
Almost every frame is boring, so almost every frame should cost almost nothing. Mortimus runs a cascade on the node and escalates only when the evidence earns it.
A low-cost frame difference. A static scene stops here.
cost: negligibleTiled contrast & color analysis of what actually changed. A clear scene stops here.
cost: lowOnly suspicious frames reach the node's vision-language model for a smoke / clear / unknown verdict. Fail-closed: missing evidence never becomes an alert.
cost: paid rarely, on purposeCompact smoke scores go to Beehive — plus at most one snapshot per alert. Raw video never leaves the edge.
move the work, not the dataWhy it's different
Every model is scored against human-labeled field imagery — and the errors are reported by condition (sunset, fog, night, glow), not hidden behind a single accuracy number.
Evaluation is event-grouped and leave-one-incident-out. A fire never appears in both training and test, so the numbers mean what they say.
Frame → dataset fingerprint → model → benchmark → deployed champion. A model that can't name what made it doesn't ship.
Two or more cameras triangulate a plume onto the terrain. Fixing one systematic geometry error took localization from 6.84 km to 1.03 km.
Measured, not asserted
In-domain benchmarks (e.g. an F1 of 0.884 on a matched dataset) are reported as exactly that — in-domain, not a claim about the field. The distinction is the point.