跪拜 Guibai
← All articles
JavaScript · Frontend · GitHub

A Spy Satellite Simulator in Your Browser, Fueled Entirely by Public Signals

By 苏灿烤鱼 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

A fully functional, near-zero-cost geospatial intelligence dashboard now runs in a browser on public signals alone. It demonstrates that the bottleneck in open-source intelligence is not data availability but integration, and that a single developer with disciplined engineering can ship a product that looks like a classified system while respecting every upstream license and privacy boundary.

Summary

God's Eye View is an open-source browser application that renders a photoreal 3D Earth overlaid with 13 live data layers, including ADS-B flight positions, AIS vessel tracks, satellite orbits computed client-side via SGP4, USGS earthquakes, NASA fire detections, and municipal CCTV feeds projected into 3D cityscapes. Ten of those layers work without any API key or registration. The project, by Bilawal Sidhu, gained 11.9k GitHub stars in two months without a backend cluster or paid data subscriptions—every signal comes from openly broadcast sources.

The realism comes from five counterintuitive engineering choices: the entire scene renders one polling cycle behind real time so discrete snapshots can be interpolated smoothly; aircraft icons use per-frame screen-space heading projection to stay world-stable; satellite positions are propagated in the browser from TLE orbital elements; a geoid-corrected vertical datum snaps objects to actual terrain height; and a render governor with explicit hold/release quotas stops the render loop when idle. A 266 KB living document, CURRENT-STATE.md, records every design decision and its reversal history, while paired policy modules and self-biting QA scripts enforce correctness.

Cost control is equally systematic: all API keys stay server-side behind a local dev proxy, cache and budget governors cap third-party calls, and the default localhost binding keeps keys off the network. The voice agent exposes 28 tools constrained to confirm only successful operations and must pull live scene context before answering. The project's explicit boundary is that it models events, equipment, and infrastructure—not people—and pull requests that cross that line are rejected.

Takeaways
13 live data layers render on a photoreal 3D globe; 10 require no API key, registration, or email.
The client deliberately renders one polling cycle behind real time so aircraft and vessels interpolate smoothly between discrete snapshots instead of teleporting.
Satellite positions are computed entirely in the browser using SGP4 propagation from CelesTrak TLE data, with GMST alignment keeping orbital rings locked to their satellites.
A geoid-corrected vertical datum samples the same terrain mesh used for rendering, so cameras stand on actual street corners and parked aircraft rest on the ground rather than floating or clipping through.
A render governor module enforces explicit hold/release quotas: every per-frame animation must request a frame hold, and the render loop stops when the tab is hidden or idle.
All API keys except Google Maps and Cesium ion stay server-side behind a local dev proxy; cache and budget governors cap third-party calls, keeping daily personal use near $0.
The voice agent exposes 28 tools, must pull live scene context before answering, and is constrained to confirm only operations that actually succeeded.
A 266 KB CURRENT-STATE.md document records every design decision and its reversal, including a bug where a coordinate pre-transform caused contrail anchors to shift laterally with heading changes.
QA scripts include a --teeth negative-control mode that deletes the feature under test and requires all dependent checks to turn red, verifying tests actually catch failures.
The project explicitly models events, equipment, infrastructure, and systems—not individuals—and rejects PRs that add facial recognition or person-level queries.
Conclusions

The deliberate one-cycle rendering lag is the single most important design decision in the project: it trades 15–30 seconds of staleness for continuous, interpolated motion, which is what makes the scene read as real rather than as a dashboard.

Treating error direction as asymmetric—always bias visible-but-slightly-high rather than risk burying an object underground—is a rendering philosophy rarely documented, yet it governs every fallback in the vertical datum subsystem.

The project's license engineering is more instructive than its code: CC BY-NC-SA data is packaged separately with deletion instructions, ODbL obligations are scoped to data only, and privacy transforms strip PII from bundled datasets without altering geometry.

A performance document that openly publishes degradation points (34–35 fps at 8,100 targets, 22 fps in 10,000-vessel AIS scenes) with exact measurement conditions builds more trust than any marketing claim of speed.

The voice layer's design—tools locked by sha256 in unit tests, mandatory scene context fetch before answering, and a hard rule against confirming failed operations—treats the agent as a constrained instrument rather than a conversational chatbot, which is the safer pattern for tool-use agents.

Concepts & terms
ADS-B
Automatic Dependent Surveillance–Broadcast: a protocol by which aircraft continuously transmit their identity, position, altitude, and heading on unencrypted radio frequencies, receivable by anyone with an SDR or networked receiver.
AIS
Automatic Identification System: a VHF-based maritime broadcast system where vessels transmit position, speed, and identity; terrestrial AIS goes silent over open ocean, while satellite AIS requires paid access.
TLE / SGP4
Two-Line Element sets are compact orbital parameter descriptions published by CelesTrak. SGP4 (Simplified General Perturbations 4) is a mathematical model that propagates those elements forward in time to compute a satellite's position, run entirely client-side in GEV.
GMST
Greenwich Mean Sidereal Time: the hour angle of the vernal equinox at the Greenwich meridian, used to convert between Earth-fixed and inertial coordinate frames so orbital rings stay locked to their satellites as the Earth rotates.
Geoid
The equipotential surface of Earth's gravity field that approximates mean sea level; it differs from the reference ellipsoid by up to 100+ meters, and ignoring this difference causes objects to float or sink relative to visible terrain.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗