← back to globe

und3rgr0und_

// real-time global signals on a 3D vector globe

WHAT

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.

SOURCES

LayerSourceRefresh
Earthquakes USGS60 s
Lightning Blitzortung (WebSocket)~1 / sec
Aurorae NOAA OVATION10 min
Volcanoes (active) Smithsonian GVP static—
Cyclones NOAA NHC10 min
Tornado warnings NOAA NWS5 min
Tsunamis USGS significant earthquakes1 h
ISS wheretheiss.at5 s
Satellites Celestrak TLE + satellite.js1 s (positions)
Launches Launch Library 21 h
Asteroids (NEOs) NASA NeoWs30 min
Aircraft OpenSky Network15 s + dead-reckoning
Ships (AIS) AISStream.io (WebSocket)continuous
Tor relays / exits Onionoo1 h
Wikipedia anon edits Wikimedia EventStreamSSE / continuous
SSH attacks Server's auth.log + GeoLite2 livecontinuous
Live visitors This site's own beacon + GeoLite2 live8 s
AbuseIPDB blacklist AbuseIPDB (rate-limited 5 / day)6 h
HoneyDB threats HoneyDB15 min
Submarine cables TeleGeography24 h
Markets (open) computed from UTC trading hours1 min
Day / Night terminator pure astronomy (subsolar point)1 min

STACK

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.

HACKING

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.

PRIVACY

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).

NO ADS, MAYBE TIPS

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.

WHO

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.