RepoDaily · 2026-08-28 · Infrastructure / Runtime

God's Eye View Is a Spy-Satellite Interface With Real Public Data — and Now It Is Open Source

#3 Infrastructure / Runtime JavaScript +1,984 bilawalsidhu/gods-eye-view Open repository

The creator behind a 5M-view YouTube series open-sourced God's Eye View: live flights, ships, satellites, quakes and cameras on a photorealistic 3D globe in vanilla JS — 1,984 stars this week.

Repo typeInfrastructure / Runtime
Best forOSINT practitioners, geospatial developers, educators and creators who want a self-hosted live globe built entirely from public feeds
Risk levelMedium: external API terms and non-MIT bundled data need review before commercial use
Time to evaluateAbout 30 minutes: Node 24.14.x, `npm install`, one Google Maps key, then `./scripts/dev-fresh.sh`

Primary question: Do the data licenses (CC BY-NC-SA cables, ODbL extracts) and provider terms (Google Maps, OpenSky commercial limits) fit how you plan to use it?

92/100

RepoDaily adoption score

RepoDaily rates this as 92/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
100Evidence quality

5 source(s) across 3 source category/categories, plus a RepoDaily-specific evidence module when available.

97Installability

6 workflow step(s), 6 next-action step(s), and 2 command/install signal(s) were detected.

78Maintenance confidence

Trending momentum is +1,984 stars, with maintenance/release/issue signals counted when present.

96Production readiness

Risk is marked medium, with 7 security note(s) and 4 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 4 alternative(s), and 4 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

72Agent / AI fit

4 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

God's Eye View is the code behind a spectacle. The README opens by anchoring the repo to the viral God's Eye View YouTube series (formerly WorldView), which has passed 5M views, and frames the release plainly: "You asked, so it's happening." What shipped is a browser application that renders a photorealistic 3D globe and layers live aircraft, ships, satellites, earthquakes, traffic and public cameras on top of it — built with no framework at all, just vanilla JavaScript, CesiumJS and Vite, and licensed MIT for the source code.

The project's distinguishing decision is honesty about data quality. The client deliberately renders flights one polling interval behind real time so positions interpolate smoothly instead of jumping. Where a live feed does not exist, the view is labeled rather than faked: keyless traffic is marked as a simulation, camera poses are labeled as estimates until calibrated, and launch ascent playback carries a `RECONSTRUCTED ESTIMATE` tag. Every layer keeps its source and freshness state visible — partial, delayed, simulated, or unavailable.

Under the hood it is a local-first client with an unusually explicit security posture. A Vite middleware in `vite.config.js` brokers every request that needs a private credential, so the browser never receives long-lived secrets — only ephemeral tokens. Each data source is a self-contained module in `src/data/<layer>.js`, and `docs/CURRENT-STATE.md` is maintained as the authoritative runtime reference.

The catch is written down too: MIT covers the source only. The bundled TeleGeography submarine-cable dataset is CC BY-NC-SA 3.0 and not for commercial use, OSM-derived datacenter and dam extracts are ODbL 1.0, and live providers — Google Maps, OpenSky, adsb.lol, AISStream, CelesTrak, USGS, OSM Overpass, City of Austin, GBFS — are fetched at runtime under their own terms with your credentials. At 1,984 stars and rank 3 this period, the demand for exactly this trade-off is clearly large.

Problem it solves

  • Public signals are abundant but scattered across browser tabs — the README's own framing is that the interface, not the data, is the bottleneck.
  • Beautiful globe demos usually fake their data, while real dashboards look like dashboards; this project attempts to be both real and cinematic.
  • Live feeds need credentials, and naive browser apps leak long-lived API keys client-side.
  • Bundled geodata silently drags non-MIT terms into an "MIT-licensed" repo; here every dataset's terms are spelled out in LICENSE and DATA_SOURCES.md.

How it works

  1. A Vite middleware in `vite.config.js` brokers every secret-bearing call: the browser never sees `OPENAI_API_KEY`, `AISSTREAM_API_KEY` or OpenSky OAuth credentials — only short-lived tokens such as the ephemeral session from `/api/realtime/token`.
  2. Each feed is a self-contained module in `src/data/<layer>.js` implementing `init/enable/disable/update/destroy/getStats` (plus optional `getDetectableObjects`), so layers can be added or removed independently.
  3. CesiumJS renders Google's Photorealistic 3D Tiles inside vanilla JS; panels, HUD and the control facade live in `src/ui.js`, kept separate from layer logic.
  4. Flight contacts render one polling interval behind real time so client-side interpolation stays smooth.
  5. Every layer publishes its own source and freshness state — partial, delayed, simulated, unavailable — and modeled experiences carry explicit labels.
  6. Voice tools are declared server-side as `GEV_REALTIME_TOOLS` and executed client-side in `src/voice/gevActions.js`, with responses confirming only what actually happened.

Product demo and interface preview

Diving into the Bahamas and revealing labeled submarine cable routes beneath the globe
Diving into the Bahamas and revealing labeled submarine cable routes beneath the globe — Diving beneath the Bahamas surface reveals labeled submarine-cable routes — the layer whose TeleGeography data carries the CC BY-NC-SA 3.0 non-commercial terms flagged in LICENSE. README.md image
Orbital HUD, a tracked live globe, FLIR terrain — then OPEN SOURCED
Orbital HUD, a tracked live globe, FLIR terrain — then OPEN SOURCED — The README's opening loop — orbital HUD, a live-tracked globe, FLIR terrain — is the exact sequence the open-source release reproduces in code. README.md image
Riding with a live aircraft in cockpit view while switching sensor modes
Riding with a live aircraft in cockpit view while switching sensor modes — Cockpit view rides inside a tracked flight while sensor modes switch over real terrain; the changelog notes altitude now reads aviation MSL data. README.md image
Jumping between live aircraft and falling straight into a cockpit view
Jumping between live aircraft and falling straight into a cockpit view — Jumping between live contacts and dropping straight into a cockpit shows the 250 km Contacts roster handoff end to end. README.md image

Try-it path: from clone to globe in one shell block

Node.js 24.14.x or 26.x is enforced by `package.json`. The sanctioned path from CONTRIBUTING is: `git clone https://github.com/bilawalsidhu/gods-eye-view.git`, `cd gods-eye-view`, `nvm install 24.14.0`, `nvm use 24.14.0`, `npm install`, then `./scripts/dev-fresh.sh` — or `GOOGLE_MAPS_API_KEY="…" npm run dev`.

You need one Google Maps API key with the Map Tiles API enabled; most data layers work with no other accounts. On macOS the launcher pulls keys from the Keychain; on any platform you can use env vars or a `.env` copied from `.env.example`. The app serves at `http://localhost:4173`. Before any PR, `npm run build`, `npm test` and `npm run test:track` (dev server up) must all stay green.

Architecture read: no framework, one module per feed

  • No framework: vanilla JavaScript + CesiumJS + Vite.
  • UI lives in `src/ui.js` (panels, HUD, styles, the control facade); layer logic lives in `src/data/<layer>.js` — deliberately kept separate.
  • Each layer module implements `init/enable/disable/update/destroy/getStats`, with optional `getDetectableObjects`; an existing layer is the sanctioned template for a new feed.
  • Voice tools are declared server-side (`GEV_REALTIME_TOOLS` in `vite.config.js`) and executed client-side in `src/voice/gevActions.js`.
  • Visual styles are GLSL post-process shaders in `src/styles/` — CRT, NVG, FLIR/thermal, Noir, Snow.
  • `docs/CURRENT-STATE.md` is the authoritative runtime reference; PRs that change runtime behavior must update it in the same change.

Integration surface: three server-side keys, two client-side

  • `OPENAI_API_KEY` — server only; the browser fetches an ephemeral Realtime session token from `/api/realtime/token`.
  • `AISSTREAM_API_KEY` — server only; the server holds the AIS websocket and the browser polls the same-origin `/api/ais-live` cache.
  • OpenSky OAuth (`OPENSKY_CLIENT_ID/SECRET`) — server only; tokens are minted and refreshed behind `/api/opensky`.
  • Google Maps API key — client-side by design (loads the Photorealistic 3D Tiles) and must be restricted to HTTP referrers plus the Map Tiles API.
  • `CESIUM_ION_TOKEN` — optional, client-side, only for the Bing world-imagery map stacks; use a public `assets:read` token with URL restrictions for hosted deployments.
  • Optional FIRMS key: per the 2026-08-24 changelog, a missing FIRMS key reports `KEY REQUIRED` without failing the whole Environmental mission — earthquakes still load.

Maintenance risk: fast cadence, disciplined records

The changelog logs three unreleased blocks between 2026-08-18 and 2026-08-24 alone: a four-source Map Source tray, share-link v2 state, an AIS feed watchdog, voice cost controls, a render governor, an L9 release-candidate matrix, and deterministic first-run/map-source/floor/tracking regression harnesses. Anyone building on top should pin a commit.

The compensating controls are procedural: PRs must keep `npm run build`, `npm test` and `npm run test:track` green, runtime changes require `docs/CURRENT-STATE.md` and `CHANGELOG.md` updates in the same PR, and new data sources require license plus attribution in DATA_SOURCES.md. The residual risk is single-creator bus factor in a repo moving this fast.

The license you actually ship: MIT code, mixed data

  • Source code: MIT (Copyright 2026 Bilawal Sidhu).
  • `src/data/local_data/telegeography_submarine_cables/`: CC BY-NC-SA 3.0 — remove these files or obtain a commercial license from TeleGeography before commercial use.
  • Datacenters and dams (OpenStreetMap / Open Infrastructure Map extracts): ODbL 1.0 — attribution and share-alike on the data; the 2026-08-24 changelog notes bundled snapshots omit contact-oriented fields.
  • NASA FIRMS active-fire snapshot: CC0 / U.S. public domain.
  • Live sources — Google Maps, OpenSky, adsb.lol, AISStream, CelesTrak, USGS, OSM Overpass, City of Austin, GBFS — fetched at runtime under each provider's terms; some restrict commercial use and require your own credentials.
  • 3D models under `public/models/` carry their own licenses; see `public/models/README.md` for author, source and attribution per file.

Who should pay attention?

Good fit if

  • OSINT practitioners who want flights, vessels, quakes, fires and cameras in one inspectable interface
  • Geospatial developers extending a clean one-module-per-feed architecture in `src/data/`
  • Educators and creators demonstrating live public data with labeled confidence levels
  • Developers who want a worked example of server-brokered API keys in a Vite setup

Skip for now if

  • Hardened production intelligence services — SECURITY.md scopes the client to exploration, demos and learning, not a hardened production service
  • Commercial products unwilling to remove the TeleGeography submarine-cable dataset (CC BY-NC-SA 3.0) or license it
  • Air-gapped or offline deployments: feeds are fetched live at runtime under each provider's terms
  • Anyone unwilling to create, scope and restrict a Google Maps API key

Risks and cautions

Medium

The code is MIT and its production dependency audit reports no known advisories, but the runtime leans on external APIs whose terms, quotas and billing you inherit, and the bundled datasets are not MIT.

  • A Google Maps key is mandatory; SECURITY.md warns that an unrestricted key in a public deployment can be abused and billed to you.
  • `src/data/local_data/telegeography_submarine_cables/` is CC BY-NC-SA 3.0, so commercial use requires removing the files or licensing from TeleGeography.
  • Live providers including Google Maps and OpenSky restrict commercial use and require your own credentials.
  • The changelog shows multiple unreleased blocks in one week (2026-08-18 to 2026-08-24); pin a commit before building on it.
  • All secret-bearing keys stay server-side behind Vite proxies; the browser receives only ephemeral tokens — e.g. OpenAI Realtime sessions via `/api/realtime/token` and an AIS cache at `/api/ais-live`.
  • Exactly two keys ship client-side by design — Google Maps and the optional Cesium ion token — and SECURITY.md instructs restricting both (HTTP referrer plus Map Tiles API restriction; `assets:read` with URL restrictions).
  • The CCTV frame proxy fetches only server-registered camera/frame URLs, so clients cannot turn the server into an open relay (SSRF mitigation).
  • The radio proxy contacts only allowlisted Radio Browser hosts, rejects redirects and any loopback/private/link-local/metadata address resolution, pins TLS per connection, and never proxies, caches, records or redistributes audio.
  • `.env` is gitignored; only `.env.example` placeholders are tracked, and on macOS the launcher reads keys from the Keychain.
  • Vulnerabilities are reported privately via GitHub security advisories rather than public issues.
  • Per the 2026-08-24 changelog, production transitive dependencies resolve to patched DOMPurify and protobufjs releases, and the production dependency audit reports no known advisories.

Alternatives to compare

ApproachWhen to useTrade-off
CesiumJS
You want the underlying 3D globe engine and will build your own data layers from scratchOpen-source engine; optional Cesium ion content billed separately
Leaflet
A lightweight 2D slippy map is enough and you want the smallest possible footprintFree, open-source library
OpenSphere
You need a mature situational-awareness web client from the geospatial-intelligence worldOpen source
Google Earth
You want hosted photorealistic imagery with zero setup and no feed wiringFree consumer product; separate commercial terms

What this trend reveals

Publish a city camera pack

CONTRIBUTING names Austin as the reference CCTV source and calls city packs the best first contribution lane: a clean public camera catalog with coordinates, attribution and server-registered frame URLs.

Assemble a public camera catalog for your city, register each frame URL server-side (the proxy never fetches client-supplied URLs), and record its license and attribution in DATA_SOURCES.md as the PR rules require.

Add a data layer in one file

Every feed is a single module in `src/data/<layer>.js` implementing the six-method layer interface, and using an existing layer as the template is the documented path.

Copy an existing layer module, keep `npm run build`, `npm test` and `npm run test:track` green, update `docs/CURRENT-STATE.md` and `CHANGELOG.md`, and document the source's license in DATA_SOURCES.md.

Commercial forks need a data audit, not a code audit

MIT covers source only. The cable dataset is non-commercial CC BY-NC-SA 3.0, OSM extracts are ODbL 1.0, and live providers enforce their own terms with your credentials.

Before any commercial deployment, remove `src/data/local_data/telegeography_submarine_cables/` or license it from TeleGeography, verify ODbL attribution for datacenter and dam extracts, and confirm Google Maps and OpenSky terms for your use.

Best next action

Run it for 30 minutes with one API key

The whole experience installs with Node 24.14.x and a single Google Maps key — most data layers need no other account.

  1. Clone the repo: `git clone https://github.com/bilawalsidhu/gods-eye-view.git && cd gods-eye-view`
  2. Set the runtime: `nvm install 24.14.0 && nvm use 24.14.0` (or Node 26.x)
  3. Install dependencies: `npm install`
  4. Create a Google Maps API key with the Map Tiles API enabled and restrict it to your referrer
  5. Run `./scripts/dev-fresh.sh` — or `GOOGLE_MAPS_API_KEY="…" npm run dev` — and open `http://localhost:4173`
  6. Open the Contacts mission launcher, drop into a cockpit, then flip sensor styles (FLIR, NVG, CRT)

RepoDaily verdict

God's Eye View is the rare viral demo that ships its real engine: vanilla-JS Cesium over genuine public feeds, honest freshness labeling, hardened proxies, and written license boundaries. The medium risk lives in the data — provider terms, a mandatory Google Maps key, and non-MIT bundled datasets — not in the code itself.

Sources