Earthquakes, wildfires, storms, weather, air quality, live flights, 1,700+ real satellites, the Sun, Moon & planets, commodity trade flows, and a Global Stress Index — all streaming from free, keyless public feeds onto a cinematic day/night Earth you can fly around.
Add a screenshot / GIF here (
docs/preview.png) — the day/night globe with the satellite shell and a trade-flow arc is the money shot.
Most "world dashboards" bury you in tabs and charts. Worldlens puts the whole planet in front of you as one interactive globe, then lets you isolate exactly the signal you care about with a single click — a lens. It's built to be:
- Keyless & private — every feed is a free public source. No sign-up, no API keys, nothing is sent anywhere. A tiny Python script fetches the data; the browser just reads a JSON file.
- Cinematic but honest — real day/night terminator, drifting clouds, glowing atmosphere, and live-propagated satellites. All the numbers come from real sources and are labeled as such.
- Correlative — click a country and see its weather, air, quakes, hazards and flights together. Turn on the Fire-risk or Energy lens and watch hazards line up with supply nodes.
| 🌍 Photoreal Earth | Real sun-lit day/night terminator, rotating cloud veil, NASA Blue-Marble textures, 50 m country borders, glowing atmosphere, cinematic bloom. |
| 🛰️ 1,700+ live satellites | Real Celestrak orbital elements propagated in-browser with SGP4. Click one to trace its live orbit and next overhead pass. |
| 🌦️ Weather & hazards | USGS earthquakes, NASA EONET + GDACS severity-scored disasters (pulsing rings), global wind / temp / precip / cloud / humidity / pressure, and air quality. |
| Thousands of real aircraft with callsign, type & altitude. | |
| 🛡️ Cyber threat watch | Live attack sources (SANS ISC / DShield honeypots), online botnet C2 servers (abuse.ch Feodo Tracker), ransomware victims (ransomware.live leak-site tracking), Tor exit nodes (Tor Project), and vulnerabilities being actively exploited (CISA KEV) — as sharp 3D threat-blips, 💀/🕷️/🧅 icons and animated attack arcs, plus a transparent 0–100 threat level. |
| 🪐 Solar system & sky | Sun, Moon and planets as sun-lit textured spheres (Saturn's rings, lunar phase) in their true sky directions, plus constellations and a real star field. On-device astronomy → live zodiac & moon phase. |
| 🔭 Lenses | One click isolates a correlated dataset: Seismic · Weather · Fire-risk · Air · Aviation · Orbital · Threats · Energy · Agri · Metals & chips · Shipping · Macro. |
| 💹 Trade Desk | Live commodities, rates & FX; curated commodity supply nodes that glow red when hazards/weather threaten them; and animated trade-flow arcs (oil, grain, metals, chips). |
| ◎ Situation Brief | One-tap synthesized intelligence report — seismic, hazards, orbital, markets, sky. |
| 🧭 Built to run anywhere | Static HTML + one Python file. Serve the folder, schedule the collector, done. A Lite mode trims effects for weak devices. |
Requirements: Python 3 (standard library only — no pip install), and any static file server.
The globe itself loads its 3D engine from a CDN, so the browser needs internet.
git clone https://github.com/chrisgorzelic-cell/worldlens.git
cd worldlens
# 1) Fetch a data snapshot (writes public/world-status.json)
python3 collectors/worldlens_collector.py
# 2) Serve the public folder
cd public && python3 -m http.server 8080Open http://localhost:8080 🌍
Keep the data fresh by re-running the collector on a schedule (every ~15 min):
*/15 * * * * /usr/bin/python3 /path/to/worldlens/collectors/worldlens_collector.pyChange where the snapshot is written with the
WORLDLENS_OUTenv var.
free public APIs Python stdlib browser (WebGL)
┌───────────────────┐ fetch ┌──────────────────────┐ reads ┌──────────────────┐
│ USGS · EONET · │──────────▶ │ worldlens_collector │ ────────▶ │ index.html │
│ GDACS · Open-Meteo│ │ + sky.py (astronomy)│ JSON │ globe.gl + three │
│ adsb.lol · NOAA · │ │ │ │ + satellite.js │
│ Celestrak · Yahoo │ │ → world-status.json │ │ (SGP4, bloom) │
└───────────────────┘ └──────────────────────┘ └──────────────────┘
The collector is best-effort: any single dead feed is skipped without breaking the rest. It writes one JSON snapshot; the page polls that snapshot and renders everything client-side. There is no server, no database, and no account.
| Source | Provides |
|---|---|
| USGS | Earthquakes (past 24 h) |
| NASA EONET | Natural hazards (fires, storms, volcanoes, floods) |
| GDACS | Severity-scored global disaster alerts |
| Open-Meteo | Global weather grid + air quality |
| adsb.lol | Live aircraft |
| NOAA SWPC | Space weather (Kp index) |
| Celestrak | Satellite orbital elements (TLE) |
| SANS ISC / DShield | Top attacking source IPs + ports under attack (honeypots) |
| abuse.ch Feodo Tracker | Online botnet command-and-control servers |
| CISA KEV | Vulnerabilities being actively exploited in the wild |
| ransomware.live | Recent ransomware victims (dark-web leak-site aggregation) |
| Tor Project | Live Tor exit-node list |
| ip-api.com | Geolocation of attacker/Tor IPs (keyless batch) |
| Yahoo Finance | Indices, commodities, rates, FX |
| CoinGecko | Crypto |
Drop your own home beacon and satellite-pass location by defining a global before the page's
module runs (e.g. in a tiny config.js you include first):
<script>
window.WORLDLENS = {
observer: { lat: 51.5, lon: -0.12, name: "London" },
presences: [ { name: "Home", lat: 51.5, lon: -0.12, note: "my base" } ]
};
</script>Nothing is hardcoded — leave it unset and the personal beacon simply doesn't appear.
- Rendering: globe.gl + three.js +
UnrealBloomPass - Orbits: satellite.js (SGP4)
- Sun position: solar-calculator
- Astronomy: on-device (JPL Keplerian elements + a truncated Meeus lunar series) — pure Python
- Collector: Python standard library only
Worldlens was inspired by the idea behind worldmonitor
by Elie Habib — a real-time global-intelligence dashboard. Worldlens is an independent,
from-scratch reimplementation: a different language, a different architecture, and different data
sources. No source code from the original project is used, and the two share no code.
Built on the shoulders of these excellent open-source projects and datasets — thank you:
- globe.gl, solar-calculator (MIT) — Vasco Asturiano. Day/night, clouds & rendering patterns adapt globe.gl's MIT examples.
- three.js (MIT)
- satellite.js (MIT)
- Planet & moon textures from threex.planets (MIT) — Jérôme Étienne
- Country borders from Natural Earth (public domain)
- All the public data providers listed above
See CREDITS.md for the full attribution list.
MIT — do what you like, just keep the notice. Data remains subject to each provider's terms; Worldlens only reads public endpoints.