
AI workflow
Visible flame or smoke on a camera becomes a phone ringing.
The one analyzer no arming state can gate. Ten stages, from a frame read at 256 pixels to a rung only a person may press.
The problem
What this is for
A house already has smoke alarms. What it does not have is anything that tells somebody who is out that their kitchen is alight. A smoke alarm is a siren in an empty hallway. The cameras are already there, already watching, and already connected to a phone.
The workflow
10 stages, and what runs where
Each stage names the module behind it. The chip says whether it runs on your network or ours.
- On the camera
- 1 stage
- On the appliance
- 4 stages
- In the cloud
- 3 stages
- With a person
- 2 stages
- On the camera
The cameras that are already up
No new sensor and no new wiring. The lenses at the doors and in the halls are asked a third question beside a firearm and a person.
The same streams the appliance already opens. A camera refused as unsuitable is not analysed for anything, this included.
- On the appliance
Read at 256 pixels, on purpose
The fire model runs smaller than anything else here. Shrinking a frame keeps the large structure a fire is and destroys the fine detail a handgun is.
FIRE_INFERENCE_PX is 256 in fire_detector.py. The checkpoint was trained at 640 and is close to its worst there.
- On the appliance
The size is a measurement
On the committed corpus a real house fire scores 0.733 at 256 and 0.136 at 640. Across the swept range 256 is the only size where every real fire outscores every confuser.
training/fire_sweep.py writes sweep-fire.csv, and test_fire_pipeline.py reads it back so the constant and its evidence cannot drift apart.
- On the appliance
Two floors, because smoke is the weaker reading
Flame and smoke are scored against separate bars, and smoke has to clear the higher one. Grey diffuse things are common and mostly not smoke.
FIRE_EMISSION_FLOOR is 0.5 and SMOKE_EMISSION_FLOOR is 0.6. The sunset in the corpus scores its 0.445 as smoke.
- On the appliance
One fire, however long it burns
Boxes are associated across frames, so a fire is one subject rather than a fresh alert every second. A repeat says whether it has spread.
fire_pipeline.py. First sighting at once, then any new high, then every 10 seconds while it lasts.
- In the cloud
A fire is not a class of weapon
A sighting arrives carrying its own kind and a class of flame or smoke. A weapon class on one is refused on the box and refused again on arrival.
detectionKind in ingest/wire.ts and contract.py, refused in both directions and pinned by check:detection.
- In the cloud
Arming does not gate it
Every state and every zone, interior and exterior. Disarmed, with everybody asleep upstairs, is the cell where a house fire kills people.
fireAllows in arming-view.ts. Twelve cells, all of them true, and the one kind watched where a firearm is not.
- In the cloud
A band, and the same one after dark
Possible, probable, or critical, against published floors. This is the one kind night does not judge more strictly, because flame is its own light source.
FIRE_BAND_THRESHOLDS in bands.ts: 0.6, 0.8 and 0.92, day and night alike.
- With a person
An agent looks at the frame
A house is set up monitored, and the agent is asked the question this incident actually raised. Nobody is asked to confirm a firearm.
A home defaults to the mode where a person reviews first. An agent can only confirm what they were asked.
- With a person
Only a person asks for an engine
The fire service is a rung somebody presses, and it asks for fire alone. No automation and no clock in this system may press it.
request_fire in lifecycle.ts, held out of AUTOMATABLE_ACTIONS. Police are set false on the request, because a fire is not a crime scene.

What it runs on
A home, running the Home configuration. Segments are settings over one codebase, never separate products.
Your cameras
The same lenses the firearm watch reads. Interior and exterior both count here, which is the one place that setting does not decide anything.
One appliance
The fire model sits on the box beside the firearm one and is verified by sha256 against the manifest before it will load.
Your roster
Who is told, and on which channel. A fire message is an emergency kind, so it may ring a phone and it wants an answer.
A monitoring agent
A house starts in the mode where somebody reviews the frame first. Requesting the fire service stays a human action either way.
Why this shape
What the design buys
Nothing new on the ceiling
The cameras are already at the doors and in the halls. This is the same frames, asked one more question, on the box already reading them.
It reaches a phone, not a hallway
A smoke alarm is loud where nobody is standing. This goes to the roster, wherever they are, and it asks for an acknowledgement.
It never waits for the house to be armed
The case it exists for is a disarmed house full of sleeping people. No arming state, and no schedule, can switch it off.
Limits
What it refuses
Stated here rather than found later. Each of these is enforced somewhere in the code, not only written on a page.
Not a smoke, carbon monoxide, or medical alarm
A lens sees one room and cannot sample the air. It can report later than an alarm would, and it detects nothing about carbon monoxide.
Measured on eleven photographs
The corpus behind those floors is a probe rather than a false-alert rate. Between the worst real fire in it and the best thing that is not one there is 0.06.
A gunshot looks like fire
A muzzle flash scores 0.333 on this checkpoint, under the floor that lets the box say anything. Both detectors watch the same camera, so it stays in the corpus.
A barbecue reaches the driveway camera
Exterior lenses are watched too, so a fire pit or a neighbour's bonfire will raise one. Dismissing it as a fire you lit records that the detector was right.
Read next
Where to go from here
OptiArms for home
The segment this runs on: arming, monitoring, and what a house pays a month.
Home visual alarm
The other analyzer on the same cameras, stage for stage.
Questions and answers
Whether this is a smoke alarm, and what else the cameras watch for.
Pricing
One flat monthly rate for a household. The fire watch is part of it.
The other analyzers
Firearm detection, Loss prevention and Home visual alarm, on the same appliance and the same pipeline.