A live map of things happening on Earth right now, layered on a 3D vector globe that you can zoom from the whole planet down to individual buildings. Every dot is a real event pulled from a free public feed and refreshed on its own cadence — there's no database, no signup, no tracking beyond a single anonymous visitor ping (dedup by cookie, 24 h).
Click anything to pin its full record in the bottom-left panel. Share
what you see: the URL bar always reflects the active layers, zoom and
center. Use ?embed=1 to drop the chrome and iframe the globe
anywhere.
| Layer | Source | Refresh |
|---|---|---|
| Earthquakes | USGS | 60 s |
| Lightning | Blitzortung (WebSocket) | ~1 / sec |
| Aurorae | NOAA OVATION | 10 min |
| Volcanoes (active) | Smithsonian GVP static | — |
| Cyclones | NOAA NHC | 10 min |
| Tornado warnings | NOAA NWS | 5 min |
| Tsunamis | USGS significant earthquakes | 1 h |
| ISS | wheretheiss.at | 5 s |
| Satellites | Celestrak TLE + satellite.js | 1 s (positions) |
| Launches | Launch Library 2 | 1 h |
| Asteroids (NEOs) | NASA NeoWs | 30 min |
| Aircraft | OpenSky Network | 15 s + dead-reckoning |
| Ships (AIS) | AISStream.io (WebSocket) | continuous |
| Tor relays / exits | Onionoo | 1 h |
| Wikipedia anon edits | Wikimedia EventStream | SSE / continuous |
| SSH attacks | Server's auth.log + GeoLite2 live | continuous |
| Live visitors | This site's own beacon + GeoLite2 live | 8 s |
| AbuseIPDB blacklist | AbuseIPDB (rate-limited 5 / day) | 6 h |
| HoneyDB threats | HoneyDB | 15 min |
| Submarine cables | TeleGeography | 24 h |
| Markets (open) | computed from UTC trading hours | 1 min |
| Day / Night terminator | pure astronomy (subsolar point) | 1 min |
Frontend: MapLibre GL JS 5.6 in
globe projection mode (smooth morph from sphere to Mercator),
Carto dark-matter / voyager
vector tiles, deck.gl 9.3 overlay in
interleaved mode for the 5000+ GPU-instanced dots and animated pulses.
Three planet modes: Earth (live data), Mars (rovers + marsquakes), and a
Solar-system sky chart with live heliocentric positions.
Backend: nginx + PHP-FPM 8.3 for a thin API proxy
(handles auth-required upstreams, cache, IP geolocation via
db-ip lite MaxMind DB).
Three systemd Python services tail auth.log,
Blitzortung lightning WebSocket, and AIS WebSocket and write JSONL the
frontend polls. All keys live in /etc/und3r/keys.conf read by PHP-FPM.
URL state is sticky: every layer toggle, pan and zoom updates the query
string. Share a specific city with specific feeds active by just copying
the URL. ?embed=1 hides the chrome for iframing. Click
↗ in the panel header to copy the current state to clipboard.
Keyboard: there isn't one yet. Touch: use the panel toggles.
One anonymous beacon per visitor (cookie de-duped 24 h) hits
/api/track.php, gets geolocated locally (no third-party IP
service call), and writes a tiny entry to a rolling 200-line file used
to render the "Live visitors" layer. That's it. No analytics, no
pixels, no third-party scripts other than the CDN-hosted JS libs
(MapLibre / deck.gl / satellite.js / Carto tiles).
The site is free and ad-free. If you find it useful, a tip on Ko-fi keeps the API tokens paid and the server alive.
Built solo for fun. Found a bug? An idea for a new layer? Drop a line on X or open an issue if the repo's public when you read this.