Every sky on this page is reconstructed from real data. The words were written by a human. A few honest footnotes follow.
-
Atmospheric data · clouds, humidity, precipitation
High, mid, and low cloud cover at the hour nearest sunset, plus relative humidity and precipitation. Free, CC-BY-4.0 licensed, no API key required.
-
Air quality · smoke, dust, pollution
PM2.5, PM10, dust, and US AQI. Thresholds are ours; the ratio of PM2.5 to PM10 is used to distinguish combustion smoke from urban particulate. The thresholds are tuned for common cases and may misfire at the extremes.
-
Where the fires were
Geographic and seasonal heuristic
When smoke is detected, the prose names a likely source (Sonora, Quebec, the Amazon, and so on) based on latitude, longitude, and month. This is a guess. If the smoke you were breathing came from somewhere else, the sky was still doing what the prose says.
-
Sunset time and sun angle
Simplified solar-position formulas, after NOAA · public domain
Computed in the browser. The angle used is the sun's altitude ten minutes before sunset, which is about when the color happens.
-
The physics of color
Simplified Rayleigh + Mie scattering model
This is not a photorealistic simulation. It is an interpretive model, closer to an impressionist painting than a spectrograph. Aerosols shift the horizon redder; shallow sun angles amplify the warming; humidity softens everything. If the real sky was more dramatic than ours, it usually was.
-
Geocoding · your city to coordinates
Your search goes from your browser to Open-Meteo's geocoder. If it carries a qualifier, after a comma or as a trailing US state abbreviation ("Paris, Texas", "Glendale CO"), we search for the city alone and let the qualifier choose among the results, so Paris, Texas is looked for in Texas and not in France. Otherwise we try the whole input first, and only if that finds nothing do we read the last word as a qualifier. A qualifier that matches nothing returns nothing, never a guess. The meta line always shows the matched city so you can confirm which one.
-
The prose
Hand-written · Combinatorial, not generative
Around a hundred sentences written by Matt, assembled by conditions. No LLM writes or rewrites anything at runtime. If a condition isn't covered, the prose stays quiet about it. We'd rather leave a line out than fake one.
-
Counting · analytics, fonts, logs
Vercel Web Analytics · Cloudflare Web Analytics · Google Fonts · our host's log
Vercel counts page views and each step of a sky (asked for, fetched, revealed, shared, another city, a shared link followed, this panel opened), with the name of the city we matched, which is where you told us you were, and how long each step took. Never the words you typed. Cloudflare counts page views and load times. Google Fonts sent the typefaces. Each received your IP address and your browser's name, as every server you contact does. Our host logs every request (IP address, browser, page, where you came from, the time), and we keep a copy of that log to see where readers come from and to count them, one per IP address and browser. Your browser also keeps each sky it fetched, filed under the city's name, until you clear this site's data.
-
A sister piece
Since You Arrived asks a similar question about a different thing: what the world did while you were reading a tab. Vol. I of what is now, apparently, a series.