From 907094a7355453323ad079e8042cdfdefdf06322 Mon Sep 17 00:00:00 2001 From: jing Date: Tue, 14 Jul 2026 00:32:09 +1000 Subject: [PATCH] =?UTF-8?q?wave3:=20README=20=E2=80=94=20new=20layers=20(m?= =?UTF-8?q?ilitary=E2=86=92adsb.lol,=20disasters,=20severe=20weather,=20la?= =?UTF-8?q?unches,=20NSW=20bushfires)=20+=20the=20registry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cac964..af70c4d 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,11 @@ The HUD lists every layer with a live status line and an on/off toggle, plus a ` | **Aircraft** | [OpenSky Network](https://opensky-network.org) ADS-B | ✅ live | Thousands of live flights, colored by altitude band; **military callsigns highlighted** and filterable; click one for callsign/country/altitude/speed/heading. Scrub off-live and it **replays recorded traffic** (see below). | | **Earthquakes** | [USGS](https://earthquake.usgs.gov) GeoJSON | ✅ real | Last 24 h of quakes, time-anchored so each **appears as the slider crosses its origin time**; magnitude ramps amber→red, recent quakes pulse, M≥4.5 labeled. Click one for magnitude/depth/time and the USGS event link. | | **Wildfires** | [NASA EONET](https://eonet.gsfc.nasa.gov) | ✅ real | Active wildfire events worldwide as flame glyphs; click one for the event details and EONET link. | +| **Military** | [adsb.lol](https://adsb.lol) `/v2/mil` | ✅ real | Unfiltered military ADS-B the civil feeds hide (Reach airlift, tankers, the Area 51 "Janet" shuttle). Free & keyless; emergency squawks highlighted. | +| **Disasters** | [GDACS](https://www.gdacs.org) | ✅ real | Global multi-hazard alerts (quake/cyclone/flood/volcano/drought) colored by alert level. *(off by default)* | +| **Severe weather** | [US NWS](https://www.weather.gov) | ✅ real | Active US severe-weather alerts. *(off by default)* | +| **Rocket launches** | [The Space Devs](https://thespacedevs.com) | ✅ real | Upcoming launches at their pads with a T- countdown. *(off by default)* | +| **NSW bushfires** | [NSW RFS](https://www.rfs.nsw.gov.au) | ✅ real | Current major bushfire incidents (Advice/Watch/Emergency). *(Regional — Australia, off by default)* | | **Ships** `[DEMO]` | synthetic | — | Illustrative tanker traffic through the Strait of Hormuz, incl. a "toll-route" carrier, a **dark-vessel AIS gap**, and the Fujairah idle anchorage. Optional live AIS — see below. | | **Infrastructure** | static vectors | — | Choke points (Hormuz, Bab el-Mandeb, Suez, Malacca), the East–West Petroline & Habshan–Fujairah pipelines, and key oil/desal/base facilities. Coordinates approximate. | | **Events** `[DEMO]` | synthetic | — | Time-anchored markers that appear as the slider crosses their moment — illustrative placeholders for a future real event feed. | @@ -104,7 +109,9 @@ record.py optional dev daemon: snapshots live aircraft into data/his **Why the proxy?** OpenSky pins its CORS header to its own domain, so a browser can't fetch it cross-origin. `serve.py` (dev) and nginx (prod) forward `proxy/opensky` and `proxy/celestrak` from the same origin. Every URL in the app is **relative**, so it works unchanged at `/` and at `/godsigh/`. -**Entities vs. primitives:** satellites, ships, infrastructure, and events are Cesium entities (time dynamics + click InfoBox for free). Aircraft are a `BillboardCollection` primitive — thousands of them, rebuilt each poll — with a custom click overlay. +**Entities vs. primitives:** satellites, ships, infrastructure, and events are Cesium entities (time dynamics + click InfoBox for free). Aircraft/military are `BillboardCollection` primitives — thousands of them, rebuilt each poll — with a custom click overlay. + +**The layer registry:** most feeds are the same shape (fetch GeoJSON-ish data, drop styled markers, report status), so they're **data, not code** — one object literal per layer in [`js/registry.js`](js/registry.js), rendered by the generic factory in [`js/layers/geojson-layer.js`](js/layers/geojson-layer.js). Quakes, fires, disasters, severe weather, launches, and NSW bushfires all live there; adding another public feed is a registry entry. Layers with real per-layer logic (satellites' SGP4, aircraft/military billboards, the demo ships) stay as their own modules. ## Roadmap