-
-
Global humanitarian crisis view: live USGS earthquakes, NOAA hurricanes and GDACS disaster alerts on one photorealistic 3D globe.
-
Ask KosmoSkopos: the free-AI Duty Officer answers from live map context, with a Private in-browser WebGPU toggle.
-
The humanitarian globe from an alternate angle, every active crisis in one view.
Kosmoskopos is Greek for "world-watcher" (kosmos, world + skopos, watcher/scout).
Inspiration
When a disaster strikes, the data already exists (seismographs, storm trackers, fire satellites, city open-data feeds) but it is scattered across a dozen dashboards nobody watches together. I wanted one place to see every active crisis on Earth at once, ask plain-language questions about it, and zoom from the whole planet down to the nearest cooling centre, built entirely from free, public data so it could actually be deployed and used, not locked behind enterprise APIs.
What it does
Kosmoskopos is a real-time humanitarian crisis map on a photorealistic 3D globe. It fuses live public feeds (GDACS global disaster alerts, NOAA hurricanes, NASA FIRMS wildfires, USGS earthquakes, and Toronto's 585 heat-relief "cool spaces") into one situational-awareness view. You can talk to it: a free-AI "Duty Officer" reads what is on your screen and answers in a concise situation report. And with one toggle, the AI runs 100% in your own browser via WebGPU: private, offline-capable, and free.
How I built it
- Photorealistic globe: CesiumJS plus Google Photorealistic 3D Tiles streamed through Cesium ion (no cloud billing).
- Live crisis layers: same-origin Node proxies fetch each public feed (GDACS, NHC, NASA FIRMS, USGS, City of Toronto CKAN) and render them as interactive markers colored by severity.
- Resilient free-AI analyst: a server-side chain (Google Gemini, then Groq, then a local model, then a deterministic rule-based SITREP) so it never errors even when free quotas run dry.
- Private in-browser AI: WebLLM compiles a small language model to WebGPU shaders and runs it entirely in the visitor's browser.
- Keys stay server-side; per-IP rate limits protect the free tiers; everything is free-tier or local, so nothing can be billed.
Challenges I ran into
Making it genuinely free AND reliable: free AI tiers rate-limit, so I built a four-tier fallback (cloud, then local, then rule-based) that always answers. Getting a photorealistic globe with zero billing meant routing Google's 3D tiles through Cesium ion's free tier. And a subtle WebGL compositing bug (MSAA plus preserveDrawingBuffer) rendered the globe black until I tracked it down.
What I learned
How much of the planet you can make sense of from public data alone; how to design an AI feature that degrades gracefully across free tiers instead of failing; and that in-browser WebGPU inference is now good enough to give every visitor a private, free AI.
What's next for Kosmoskopos
More layers (air quality, transit, flood forecasting), historical replay, and alerting so Kosmoskopos can warn, not just show.
Built With
- cesium-ion
- cesiumjs
- gdacs
- gemini
- groq
- javascript
- nasa-firms
- noaa
- node.js
- openstreetmap
- render
- usgs
- vite
- webgpu
- webllm



Log in or sign up for Devpost to join the conversation.