Everyone can detect. Almost nobody can read. A satellite already sees the thermal pixel; that problem is solved. What it cannot do is say what the pixel means. This instrument reads the picture — using 104 sentences a person wrote — and it tells you where that reading stops working.
Each pair below is the same point on the California ground, photographed on the same calendar day in two different years. In one of them, that ground is burning. The pairing is the control: with the day of year held fixed, a scorer reading nothing but the date is reduced to a coin. We build it this way because the looser version — a fire against a picture of the same ground taken weeks earlier — can be solved by the date alone, and anything measured that way tells you nothing about reading fire.
One honest correction to that description, added 2 Sep 2026. We say “in one of them, that ground is burning.” For most pairs it is nearer the truth to say that ground has burned. The fire image is the least-cloudy Sentinel-2 scene in the ten days from discovery, and across all 362 pairs that lands a median of +5 days after the fire was found — only 13% are same-day and 70% are three days or later. Choosing least-cloudy also selects against smoke. So a large part of what this instrument has demonstrably learned may be burn scar rather than active fire. That would explain three things at once: why the working band tracks scar area, why performance fell across processing eras, and why our false-alarm arm came back inverted — on a fresh alert there is no scar to read yet. We have not yet measured a same-day-only arm, so this is a live hypothesis about our own instrument, not a settled finding. It is published here before it is resolved because it cuts against us.
Click the plate you think is burning — then see what the instrument said, and why. Twelve pairs, keep score.
Sixty-five more fires were split off before any of this was built and never scored. On 1 September they were scored once. They are all from 2023, matched against 2022 ground, while everything the instrument was built on is 2024–2026 — so this asked whether the reading survives a jump to a year, a season and a satellite-processing era it had never seen.
It does not — not by the standard we set beforehand. Against a calendar-only rule scoring 0.63 on those pairs, the instrument scores 0.72, picking the burning scene 47 of 65 times. We wrote down in advance that anything under floor + 0.10 is a failure; this is floor + 0.09. It misses by twelve thousandths and we are calling it a miss, because a bar moved after seeing the result was never a bar. And the interval says it more plainly than we first reported. The 95% CI is 0.615–0.831. That excludes a coin flip — but a coin is not the null here. The null we declared is the calendar floor of 0.63, and 0.63 sits inside that interval. So on the year it had never seen, this result is not statistically separable from reading the date. This sentence previously claimed the interval ruled out chance while citing the 0.63 floor beside it — using the flattering null for the claim and the honest one for the miss. Corrected 2 Sep 2026. (The wording is paraphrased rather than quoted, so a stale claim cannot be searched back out of a live page.)
So read the headline figures as what they are. 82% and +0.25 are measured on 2024–2026 fires and hold there. Asked about a year it never saw, the same instrument gives +0.09. Both are real, they answer different questions, and anyone deciding whether to trust this should be using the second one.
Twelve of the eighty-nine held-out pairs — nine the instrument read correctly and, deliberately, all three of its worst misses. Every driver shown is a sentence a person wrote, not a coefficient. Read the misses: the sentences driving them are fog, thin cirrus and low cloud — things that look like smoke to a reader of pictures. The failures are the same kind as the successes and legible in the same words.
NASA's hotspot feed is public and free, and several sites plot it. Plotting is not the work. Three things happen here that plotting does not do — and you can check all three on this page.
A hotspot map shows heat. It cannot tell you whether that heat is a fire somebody already reported. Every pixel here is checked against CAL FIRE's live incident list, and what gets highlighted is only the residue — heat with no incident against it. The teal markers are the incidents being subtracted.
A raw pixel carries radiative power and a confidence flag. It does not tell you whether a cluster is a rice-straw burn or an unreported ignition. These are clustered, tested for multi-satellite agreement and distance to the nearest known incident, then labelled — including weak · likely agricultural or industrial, which is most of them, and which the map says out loud.
No hotspot viewer tells you how many of its pixels became named fires. This one does: 146 alerts, 3 fires, 2.1%. That number is the reason to trust the other numbers, and it is why the 143 are on this page at all.
What this map is not: it reads point data — hotspot coordinates and an incident list — not imagery. xenoglyph's image meaning-read, which scores a satellite crop through a wildfire lens, is a separate component and produced nothing on this page. Saying so is the same discipline as publishing the 143.
Cooperative aircraft over the same ground, right now, off two antennas we own and run — 1090 MHz ES for the transport fleet and 978 MHz UAT for the low-altitude general aviation that a 1090-only receiver never hears at all. Every class below is inferred from what the aircraft broadcasts plus public convention. This is one instrument of several, and the smallest of them; it is here because it is the easiest to check.
| Flight | Class | Operator | Airframe | Alt ft | Dist km | Brg | Elev | Slant | Kt | Seen | OH | Nearest incident |
|---|
The Flight column is coloured by which of the two antennas heard it — green for 1090 MHz ES, the high band, typically above 18,000 ft and sub-pixel to any optic we own; red for 978 MHz UAT, the low band, and the resolvable class. A pulse means that contact passed within 5 km of the antennass. The state fleet is identified by tail number — N…DF, the CAL FIRE suffix — never by callsign: CAL007 is China Airlines, and a system matching those three letters would report an air attack. Military comes from the AE/AF ICAO allocation and mission-callsign convention; law enforcement from a registration suffix that is a convention and not a certificate, which is why it is a candidate rather than a claim. Cooperative traffic only: an aircraft absent here is not absent from the sky, it is absent from the transponder record.
Not a demo dataset. Every row is a contact this receiver decoded itself, labelled by the same classifier the table above runs, and the CAL FIRE column is what makes it hard to reproduce: state fire aviation, observed at close range, continuously, through a fire season. Nobody sells this. You have to have been standing here.
—
The table above and the fire board below are not two products. They are the same discipline pointed at two sensors. Neither one hands you a score and asks for trust: the flyer table names a contact by a rule you can check — a tail suffix, an ICAO allocation, a mission callsign — and the fire read names a scene with sentences a person wrote. In both, a wrong answer is legible as wrong, which is the only property that lets someone on shift overrule either of them and defend it afterwards.
That is also what makes the banked corpus more than storage. 23,520 CAL FIRE contacts are not that many rows of telemetry; they are that many contacts labelled by a classifier whose reasoning is inspectable, gathered continuously on two bands from 15 km off the base those aircraft fly from. Labels you cannot audit are not a dataset, they are a rumour.
And here is the bound, because we went looking for a stronger claim and did not find one. The obvious pitch writes itself: a satellite cannot see a 23-acre fire, but the air attack circling it is loud on ADS‑B — so the antennas cover the resolution floor the imagery admits to. We tested it against the six confirmed fires in our own window and found zero aviation alerts within 15 km of any of them, Timber’s 25,190 acres included. The pitch is not supported and we are not making it.
The reason is structural rather than disappointing, and worth stating because it defines what this channel is for. The aviation alerter fires only when an aircraft holds an orbit over ground with no listed incident within 5 km. The moment the incident reaches the public feed, it goes silent by construction. It is a first-to-report channel, not a corroboration one, and it therefore cannot confirm a fire that is already known — which is exactly why all 66 of its alerts landed on ground the record had not yet named.
We run this receiver because the most valuable thing a sensor produces is not a detection — it is a ruled-out. Every aircraft that broadcasts its identity is one object the sky no longer needs explaining. What is left after the subtraction is the only part worth a person’s attention.
That habit is where PYROGLYPH came from. A thermal pixel is heat, and heat is a kiln, a flare, a stubble burn, a hot roof, or a fire. A radar return is a return, not a threat. In both cases the sensor did its job perfectly and told you almost nothing, and the work that remains is discrimination — not a sensing problem, and no better satellite fixes it.
It also feeds this system directly. Of the 149 alerts this alerter raised, 66 are aviation-derived — a CAL FIRE ship holding a slow orbit over ground with no listed incident is a candidate fire, and that signal arrives on these antennas rather than from a satellite. Of those, 66 were nearest to McClellan and 15 to Grass Valley, across 7 fire-capable tails of 12 that raised one — the siting argument above, measured from our own capture rather than asserted.
And it is the honest half of a pair. This table is what the sky admits to. Everything the instrument reads out of a picture — above, and on the fire board — is an attempt to say something about what does not announce itself. Publishing both side by side is the only way a reader can tell which is which.
The table above classifies fire aviation as it passes. These are the ships. People fly them. The world’s largest civilian aerial firefighting fleet — the State of California’s own words — is 69 aircraft in six types: 23 S-2T and 4 C-130H airtankers, 16 OV-10 and 3 King Air tactical aircraft, and 16 S-70i FIRE HAWK and 7 UH-1H Super Huey helicopters.
Open any ship and the first thing you get is not ours. It is CAL FIRE’s own Aviation Recognition Guide — a public document they wrote so that anyone standing under one of these can know what just went over and who is riding in it. A Super Huey carries eleven. A FIRE HAWK carries thirteen, flies at night, and can put one of them on a cable to reach somebody a ground crew cannot. An OV-10’s second seat is a Fire Captain reading the fire and saying what is needed. An S-2T is one pilot, alone, twenty minutes from anywhere in the state.
Beneath their words are ours: what this receiver measured of that airframe, passively, from a residential lot. Nothing tasked, nobody contacted. We study these aircraft because of the work they do and the people who do it. Tap a stone for the one you want to see come over the ridge.
MISSION RISK is a relative exposure index — a ratio against that airframe’s own average, never a probability, an accident expectation, or a comparison between airframes. Its behaviour weights are declared, not fitted to any accident record. A ship reading no read is one this receiver never caught working, not one that wasn’t — and a low, slow pass over water is kinematically identical to a hoist rescue, so a water pickup is never asserted from motion alone. Airframe models and published doctrine: CAL FIRE, with thanks. Fleet size and ranking: State of California / CAL FIRE aviation program — fleet counts from their Aviation Program Overview, June 2026, which lists 69 aircraft now and 72 once three more C-130H arrive.
Read every number on this page as a floor. All of it was measured from about the worst sensing position anyone would choose on purpose: consumer hardware, one rooftop, a few kilometres of standoff, and no access to the aircraft, the hangar, or the maintenance record. That is deliberate. We would rather show what this does from the bottom of the range than tell you what it might do from the top. Everything that limits us here is a number, not a wall — how sharp the optics are, how many of them, how close, and whether anyone hands us the ground truth we cannot buy with a sensor. Each of those moves the result in one direction only, and we can compute for a given sensor what it would move to. What we will not do is quote you a figure from equipment we have not actually run.
The first question a fire agency asks is not “can you see a fire” — it is “can you tell one from a feedlot.” So we tested it, declared the pass mark in advance, and it failed. Both scorers, below chance. Here is the failure and its cause.
Zero percent of the corpus this instrument was fit on lies below the median size of the fires it was asked to find here. A 5,120 m crop covers 6,477 acres, so a 32-acre fire is 0.502% of the picture — 1,315 pixels of 262,144. The scores track it exactly: the two positives big enough to see scored +3.08 and +4.10; the four small ones averaged +1.34, below the +2.91 of the heat that was never a fire. It did not fail at telling fire from other heat. It failed at seeing fires twenty times smaller than anything it was built on — which is not an excuse, it is a specification.
We had been telling people this instrument has a floor near 100 acres. That was never measured — the corpus contains zero fires under 100 acres, so the number was an inference from six points. So we drew fires in the bands we had never held, added the 154 held-out fires we had never trained on, and measured the curve on 475 fires, none of them fitted.
We published a version of this table yesterday and this one revises it. The 30–100 band was drawn from 32 fires and read 0.859; on 158 it settles at 0.772. That sits inside yesterday’s stated confidence interval, so it is an estimate finding its level rather than a reversal — but calling it “our best band” on 32 fires was a stronger claim than the interval supported, and the corrected table is below.
| Fire size | Fires | Calendar floor | The instrument | Reads as |
|---|---|---|---|---|
| 10–30 acres | 163 | 0.526 | 0.622 | below its working band |
| 30–100 acres | 158 | 0.537 | 0.772 | works — and we said it couldn’t |
| 100–300 acres | 56 | 0.543 | 0.820 | its best band |
| 300–1,000 acres | 44 | 0.529 | 0.783 | strong |
| 1,000+ acres | 54 | 0.588 | 0.674 | bigger than the frame |
The limit is two-sided, and we had only ever published half of it. It reads 30–100 acre fires at 0.772 — the band we had been telling people was out of reach — and peaks a step above that. A real floor exists, but nearer 30 acres than 100. And it falls off at the top as well, which nobody predicted: a fire larger than the 5,120 m frame leaves no unburned ground inside it, and this instrument reads a boundary. Remove the boundary and there is nothing to read. The honest shape is a working band of roughly 30 to 1,000 acres that degrades at both ends — too small to resolve, too large to frame.
Two things fall out of that. A tighter 1,280 m crop lifts the smallest band from 0.622 to 0.684 and loses in every band above it — so the crossover sits at about 30 acres, and crop size is a setting chosen by expected fire size rather than a constant. And in that smallest band the instrument picks the burning scene over its own twin 72% of the time while scoring only 0.622 across locations: at 10–30 acres it can tell you this ground changed, but not which ground is worse. Those are different products and we had not been separating them.
This is the part worth having. The instrument is saying there is smoke over these scenes — and in late-August California there is, drifting from fires elsewhere. The label says “no incident at this point”; the picture says “smoke over this region.” Those are different statements, and a person can check which one is right because the instrument answered in English rather than in a score. A legible wrong answer beats an opaque right one.
Lead is measured to the moment the incident appeared on the public feed — never to ignition. Baseline: 162 incidents, median 0.9 h, p90 14.1 h. Only Dutchflat clears p90. Timber is the strongest evidence here and it is not ours: CAL FIRE first published a 17:44Z start, then revised it back to 03:35Z four days later — their own record moving 14 hours to agree with a hotspot we had already flagged.
One square per alert, in order. Against the CAL FIRE public feed, conversion is 2.1%. That number counts the same ground more than once. Clustering the 83 thermal alerts at 1 km collapses them to 25 distinct locations — a persistent industrial hotspot re-alerting every few hours accounts for 70% of the count — and checked against the broader interagency record rather than the public feed, 6 of those 25 became recorded wildland fires, three of which the public feed never carried at all. Both figures are honest; they answer different questions, and this page now says which one it is quoting. One more thing that belongs beside these counts, added 2 Sep 2026: the alerter was not running for 19 of the 44 days this window covers — 43% of it, shown as the hatched band under the map. Anything that burned in that stretch is missing from the numerator and the denominator. Read every count on this page as covering roughly 25 effective days, not 44.
Five instruments read the same sky and share one discipline: every reading names the rule that produced it. You have been reading PYROGLYPH. The rest are not public yet.