72 lines
4.4 KiB
Markdown
72 lines
4.4 KiB
Markdown
# GODSIGH vs. the open-sourced God's Eye View
|
||
|
||
*2026-08-25 — Bilawal Sidhu open-sourced the real
|
||
[God's Eye View](https://github.com/bilawalsidhu/gods-eye-view) (vendored here
|
||
at `gods-eye-view-main/`, gitignored). GODSIGH was our guess at it, built from
|
||
the YouTube videos alone. This is the honest side-by-side, and the record of
|
||
what we ported in Wave 4.*
|
||
|
||
## Architecture — two different bets
|
||
|
||
| | GODSIGH (ours) | God's Eye View (theirs) |
|
||
|---|---|---|
|
||
| Size | ~2,400 lines, 12 modules | ~300 modules + per-module test files |
|
||
| Build | none — ES modules + 2 CDN globals | Vite, Node 24/26 enforced |
|
||
| Globe | CARTO dark / EOX Sentinel-2 raster (keyless) | **Google Photorealistic 3D Tiles** (metered 🔴 key required) |
|
||
| Entry fee | $0, zero keys | Google Maps key mandatory; OpenAI key for voice |
|
||
| Server | stdlib `serve.py` proxy + shared OpenSky cache | Vite dev server + key-brokering proxies, rate limits |
|
||
| Testing | none | huge `.test.mjs` suite + QA screenshot scripts |
|
||
| Focus | **one theater, one timeline** (Persian Gulf OSINT, scrubbable ±6h) | **the whole planet as a place** (photoreal, cinematic, voice-driven) |
|
||
|
||
The big divergence: we guessed "OSINT analysis console" (time scrubbing,
|
||
replay, choke points, dark vessels); the real one is an "experience" (cockpit
|
||
rides, voice agent, sensor skins, cinematic scenes). Their README even concedes
|
||
our corner: *"the moment you try to go back in time… the data gets expensive"*
|
||
— our timeline/replay/record.py stack is the thing they explicitly didn't build.
|
||
|
||
## Feature matrix
|
||
|
||
| Feature | Theirs | Ours before | Ours now (Wave 4) |
|
||
|---|---|---|---|
|
||
| Live aircraft (OpenSky + adsb.lol) | ✅ | ✅ | ✅ |
|
||
| Military ADS-B | ✅ | ✅ | ✅ |
|
||
| Satellites (SGP4) | ~840 + Starlink chip | ~97 curated recon/EO | unchanged (curated > bulk for our theater) |
|
||
| Earthquakes / fires / launches | ✅ | ✅ (+GDACS, NWS, RFS they lack) | ✅ |
|
||
| **Timeline scrub + aircraft replay** | ❌ | ✅ | ✅ — still our moat |
|
||
| Demo ship analytics (AIS-gap, toll route) | live AIS only | ✅ | ✅ |
|
||
| **Smooth motion between polls** | ✅ interpolation | ❌ planes teleported every 90 s | ✅ dead reckoning, aircraft + military |
|
||
| **Sensor styles (NVG/FLIR/CRT GLSL)** | ✅ 6 styles + uniforms | ❌ | ✅ 3 compact post-process styles, keys `1–4`, in share links |
|
||
| **Submarine cables** | ✅ bundled TeleGeography | ❌ | ✅ 712 cables + 1,917 landings |
|
||
| **Datacenters / dams** | ✅ bundled OSM | ❌ | ✅ 4,351 + 704 as registry layers |
|
||
| Voice agent (28 tools) | ✅ OpenAI Realtime 🔴 | ❌ | skipped — needs paid key, against our zero-key rule |
|
||
| Cockpit / contacts / 3D hangar | ✅ | ❌ | skipped — built on Google 3D tiles 🔴 |
|
||
| CCTV projected into 3D | ✅ | ❌ | skipped — same reason; flat raster has nothing to project onto |
|
||
| Traffic (TomTom), radio tuner, bikeshare | ✅ | ❌ | skipped/deferred — off-theater or key-gated |
|
||
| Detection overlay / military HUD | ✅ | ❌ | skipped — cosmetic without their photoreal globe |
|
||
|
||
## What Wave 4 ported (all keyless, no build step)
|
||
|
||
1. **Submarine cables** — their bundled TeleGeography GeoJSON, rendered by a
|
||
new [`js/layers/cables.js`](js/layers/cables.js). © TeleGeography,
|
||
CC BY-NC-SA 3.0 — non-commercial only, see [`assets/README.md`](assets/README.md).
|
||
2. **Datacenters + dams** — their OSM/Open Infrastructure Map snapshots,
|
||
collapsed to centroid points and dropped into the layer registry as two
|
||
data entries (ODbL, attributed). Off by default.
|
||
3. **Sensor styles** — NVG / FLIR-Ironbow / CRT as Cesium `PostProcessStage`
|
||
GLSL in [`js/styles.js`](js/styles.js), compacted from their style system.
|
||
Hotkeys `1–4`; serialized into share links as `s=`.
|
||
4. **Smooth motion** — their "render behind, interpolate" idea, done the lazy
|
||
way: `lib.deadReckon()` advances every billboard along its reported course
|
||
at 10 Hz between polls, live-only, capped at 5 min extrapolation.
|
||
|
||
## Worth stealing later
|
||
|
||
- **Trace-history backfill** — click a military contact, see its last ~24 h as
|
||
3D loops. Feasible keyless via OpenSky `/tracks` through `serve.py`.
|
||
- **First-run missions** — their staged "first five minutes" onboarding card.
|
||
- **Their test culture** — per-module `.test.mjs`; ours has none.
|
||
- **Radio layer** — Radio Browser API is keyless and geolocated; audio-in-
|
||
InfoBox needs a spike.
|
||
- Natural Earth named-region polygons (public domain) if we ever want
|
||
"outline the Strait of Hormuz"-style annotation.
|