From 0fec2695121ea0df5f45cf16f8feea0a407c7105 Mon Sep 17 00:00:00 2001 From: jing Date: Mon, 13 Jul 2026 11:50:09 +1000 Subject: [PATCH] Bootstrap: build spec for Opus 4.8, dev server with CORS proxy, preview config SPEC.md is the complete execution plan: architecture, verified data-feed CORS probes, per-layer component specs, verification protocol, and the gated partly.party/godsigh deployment phase. Co-Authored-By: Claude Fable 5 --- .claude/launch.json | 11 ++ .gitignore | 3 + README.md | 18 ++++ SPEC.md | 245 ++++++++++++++++++++++++++++++++++++++++++++ serve.py | 51 +++++++++ 5 files changed, 328 insertions(+) create mode 100644 .claude/launch.json create mode 100644 .gitignore create mode 100644 README.md create mode 100644 SPEC.md create mode 100644 serve.py diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..8f72276 --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "godsigh", + "runtimeExecutable": "python3", + "runtimeArgs": ["serve.py", "8137"], + "port": 8137 + } + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6d5072 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +*.pyc +__pycache__/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..45999dc --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# GODSIGH + +A browser-based 3D/4D OSINT world view — CesiumJS digital-twin globe fusing public sensor feeds (satellite orbits, live ADS-B aircraft, AIS shipping, infrastructure vectors) on one scrubbable timeline. Inspired by Bilawal Sidhu's *God's Eye View*. + +**Status: pre-build.** The complete build & deployment instructions live in [SPEC.md](SPEC.md) — start there. + +## Quickstart (dev) + +```sh +python3 serve.py 8137 +# open http://127.0.0.1:8137 +``` + +`serve.py` is a zero-dependency static server that also proxies the OpenSky ADS-B API (which blocks cross-origin browser calls) at `proxy/opensky`. + +## Target + +`https://partly.party/godsigh/` — deployment is the final build phase, gated on John. diff --git a/SPEC.md b/SPEC.md new file mode 100644 index 0000000..452ed91 --- /dev/null +++ b/SPEC.md @@ -0,0 +1,245 @@ +# GODSIGH — Build Spec & Execution Instructions + +**Audience:** Claude Opus 4.8, executing autonomously in this repo. +**Author:** Claude Fable 5, 2026-07-13, from a working session with John. +**Repo:** `ssh://git@100.71.119.27:222/monster/GODSIGH.git` (branch `main`) +**Final destination:** `https://partly.party/godsigh/` (games VPS, `forum-nginx` container, Cloudflare-fronted) — **deployment is the LAST phase and is gated on John.** + +--- + +## 0. Mission + +Build a browser-based 3D/4D OSINT "world view" globe in the spirit of Bilawal Sidhu's *God's Eye View*: a CesiumJS digital-twin globe with a space-time slider along the bottom, where independent public sensor feeds — satellite orbits (Celestrak TLEs), live aircraft (OpenSky ADS-B), ship traffic (AIS), and static infrastructure vectors (pipelines, choke points, ports) — are all synced to one clock. Two rendering skins: a dark high-contrast **Data Mode** and a satellite-imagery **Photo Mode**. + +Everything uses free, public, unclassified data. No API keys are required for the MVP (AIS live data optionally takes a free aisstream.io key later). + +**Done looks like:** open `http://127.0.0.1:8137`, see a dark globe over the Persian Gulf with ~60 named satellites tracing glowing orbits, thousands of live aircraft, demo tanker traffic through the Strait of Hormuz (including one flagged "dark vessel" AIS gap), pipeline/choke-point overlays, and demo event markers that appear/disappear as you scrub the timeline ±6 hours. Then, on John's go-ahead, the same thing live at `partly.party/godsigh`. + +## 1. Ground truth — already verified 2026-07-13 (do not re-litigate) + +These endpoints were probed with browser-like `Origin` headers from this machine: + +| Feed | URL | Status | CORS | Consequence | +|---|---|---|---|---| +| Celestrak TLEs | `https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=tle` | 200 | `ACAO: *` | Browser may fetch directly; we proxy anyway for safety | +| OpenSky ADS-B | `https://opensky-network.org/api/states/all` | 200 | `ACAO:` pinned to their own origin | **Browser CANNOT fetch directly — must go through our proxy** | +| EOX Sentinel-2 cloudless | `https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2023_3857/default/g/{z}/{y}/{x}.jpg` | 200 | `ACAO: *` | Photo Mode basemap, no key | +| Carto dark basemap | `https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png` (subdomains a–d) | 200 | `ACAO: *` | Data Mode basemap, no key | + +OpenSky anonymous quota: ~400 credits/day; a **global** `states/all` call costs 4 credits (≈100 calls/day). The response carries `x-rate-limit-remaining`. Budget accordingly (see §6.3). + +Classified US satellites (e.g. USA 234 / Topaz) are **not** in Celestrak's public catalog — do not waste time looking. Russian (Persona/Kosmos) and Chinese (Gaofen) military satellites **are** publicly tracked. Amateur "classfd" TLE lists are a roadmap item only. + +## 2. Locked architecture decisions + +1. **No build step.** Vanilla ES modules + CDN globals. No npm, no bundler, no framework. `index.html` loads CesiumJS and satellite.js as script-tag globals; our code is plain `