The Observatory
Most live maps show you one feed at a time. This page computes its layers from two or more at once, and every layer says what it is measured from and what could fool it. Built as an ongoing exercise in seeing what Claude can build: I supply ideas, direction, and review, and Claude writes most of the code.
Data from NOAA SWPC and NOAA NCEI, USGS and EMSC, the WSPRnet volunteer network, adsb.lol and adsb.fi volunteer feeders, Open-Meteo, the Wikimedia Foundation, NASA EONET, Launch Library 2 and Natural Earth. Every source is named in full under Credits below.
The lights on the layers
The autopilot
When something significant happens, the camera flies there and narrates what the instruments can measure about it, one sentence at a time. Touch anything and it stops at once; after about three minutes without input it resumes on its own, or press the chip. The idea that a page should explain an event by itself has precedent: USGS PAGER and the Chinese earthquake agency's report robot have auto-written per-quake reports for years. This one narrates the crossing between instruments, and arrives with the camera.
The tour
Big events are rare, and a camera that only moves for them mostly does not move. So when nothing has crossed the threshold, the camera moves every half minute or so to the most interesting thing the instruments can measure right now; touch anything to stop it. While your pointer rests on a card or on the plate, the page holds that stop for up to a minute instead of moving on, and the next one waits. The stops are ranked from what the feeds actually carry: fresh earthquakes, GPS interference clusters that are still degraded, airspace restrictions with real geometry, NASA's open wildfires, storms, volcanoes and floods, launches in the next day, space weather alerts, and whichever of this page's own instruments has the strongest reading. Each stop names its source and the numbers it is standing on. If a stop is quiet, it says so plainly rather than dressing it up.
Keyboard
1 and 2 switch between the planet and the instruments; with the planet focused, arrow keys turn it, plus and minus zoom, and Home shows the whole disc; Escape closes an open card, or pauses the autopilot.
The planet itself
Quake ripples are stylized surface waves, not measured wavefronts. Clouds come from the GOES satellites and cover the hemispheres they can see. Aurora shading is NOAA's OVATION model probability, not a sighting. The pulses crossing the planet are shortwave transmissions heard by amateur receivers: a ring at the sender, a wave crossing, a ring at the receiver. Here, each pulse is one path heard in the last 15 minutes; the rhythm is the page's, not the radio's. The curved streaks are winds aloft: each streak follows the forecast wind, blended between neighbouring forecast cells; a blank patch means no streak was seeded there, not calm: the forecast covers the whole globe. The streaks are sped up to be seen, so the rate on screen is the page's, not the air's. The forecast service allows this connection a fixed number of readings a day, so the page asks for the whole field once a visit and reads the hours out of it after that. The one mark that really travels is the space station, carried forward between reports at the speed its publisher quotes.
What each mark means
The pictures inside a row
What this page remembers
The layers you switch on and whether the autopilot is running are kept in this browser so your next visit starts where you left off, along with whether the key is open. That is all: no account, no profile, nothing sent anywhere. A shared link carries its own view and its own layers, and opening one shows you those instead. While your pointer rests on a card or on the plate, the stop you are reading is held for up to a minute before the page moves on.
What this costs you
Sitting here idle, the page pulls roughly four to five megabytes an hour of public data, and about six to seven with the default layers armed. When an earthquake big enough to test starts a clock, the page streams Wikipedia's live edit feed for up to fifteen minutes, which costs a few megabytes a minute, and then checks about once a minute instead. Send the tab to the background and it stops fetching after about twenty seconds.
Credits
NOAA SWPC and NOAA NCEI (WMM2025; US Government work, not subject to copyright); USGS and EMSC; WSPR.live and the WSPRnet volunteer network; aircraft data from adsb.lol and adsb.fi volunteer feeders (adsb.lol data under ODbL 1.0, so the derived aggregate layers here are redistributable under the same license); Weather data by Open-Meteo.com (CC BY 4.0); Wikimedia Foundation EventStreams and REST APIs; NASA EONET for the open wildfires, storms, volcanoes and floods (curated from several source agencies, so it is a selection rather than every event on Earth); Launch Library 2 by The Space Devs for the launch schedule and pad coordinates; NOAA SWPC alerts, watches and warnings; Natural Earth (public domain) for coastlines; the planet's surface and night lights are NASA's Blue Marble shaded relief and Black Marble city-lights composites served by NASA GIBS (public domain; a composite, not tonight's lights), toned into this page's palette; the stars behind the planet are the brightest 8,000 from the AT-HYG catalogue (CC BY-SA 4.0), placed for the current sidereal time. Method credits: gpsjam.org (John Wiseman), the Stanford GPS Lab, TU Delft's meteo-particle model (junzis), EMSC LastQuake, USGS PAGER and the CEIC earthquake robot as auto-explainer precedent.
A caveat: this is a personal side project, not an operational monitoring service. Feeds drop, models are wrong sometimes, and nothing here is exhaustively tested. Treat it as an instrument demonstration, not a source of record.
I use Google Analytics to see whether anyone visits this page. It cannot see anything about you beyond that visit.