👁 god's eye: GODSIGH's cosmology as a Spirit on the shelf
A new map-layout skin — the world's own sensor picture read AS the cosmology,
ported from the GODSIGH view. A minimal equirectangular Earth (a sparse hand-drawn
continent set kept inline — no heavy geo data in the one-file console), a 30°
graticule refit to a 2:1 rect each frame (dynamicStations), and nine geographic
"posts" the sources are seated at by godseyeOf. The overlay seats every feed at its
LITERAL coordinates: earthquakes flash at quake.lat/lon (venue-antipode fallback if
absent), the ISS and recon birds sweep as a moving point + trail from sats.iss_lat/
lon, aircraft are a shimmer band, the markets pulse at NY/London/Tokyo, the solar
wind washes the poles as an aurora, the word sparks at civilisational coordinates,
and your own hands are the ring at the venue. Cold watch-floor palette (near-black,
cyan, warning amber) and a Bb minor-pentatonic retune. Registered in SKINS +
SKIN_HOME beside the bagua; grimoire + manual entry ("the eye that hears").
To give the console the venue's location (it had none), world_sky now emits
/gs/sky/lat,lon; config.json declares sky.lat/lon and quake.lat/lon so the eye can
place "here" and the quakes. (sats.* signals + routes already landed with world_sats.)
Verified: full viz parses/runs with the groove self-check passing and zero console
errors; an isolated harness renders the REAL overlay code into a coherent world-map
with every layer; and an end-to-end run (feeds -> hub -> WS) delivers all the eye's
input signals. Adversarial review found one wrap bug — the ISS trail streaking
across the map at the ±180° antimeridian — now fixed by breaking the polyline at the
seam (verified: a seam-crossing sine trail renders split, no full-width streak).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
6d408a8bdb
commit
d2c7938321
@ -96,6 +96,8 @@
|
||||
"sport.kickoff": {"type": "event", "norm": {"lo": 0, "hi": 5}, "decay": 3.0, "label": "kickoff!"},
|
||||
"quake.event": {"type": "event", "norm": {"lo": 0, "hi": 7}, "decay": 3.5, "label": "earthquake"},
|
||||
"quake.depth": {"norm": {"lo": 0, "hi": 300}, "label": "quake depth"},
|
||||
"quake.lat": {"norm": {"lo": -90, "hi": 90}, "label": "last quake latitude"},
|
||||
"quake.lon": {"norm": {"lo": -180, "hi": 180}, "label": "last quake longitude"},
|
||||
"wiki.edit.event": {"type": "event", "norm": {"lo": 0, "hi": 3000}, "attack": 0.005, "decay": 0.25, "label": "wiki edit"},
|
||||
"wiki.rate": {"norm": {"mode": "minmax", "window": 200}, "filter": {"min_cutoff": 0.8, "beta": 0.03}, "label": "global edit rate"},
|
||||
"planes.count": {"norm": {"mode": "minmax", "window": 100}, "label": "aircraft aloft"},
|
||||
@ -118,6 +120,8 @@
|
||||
"audio.centroid": {"norm": {"lo": 200, "hi": 6000}, "label": "room brightness"},
|
||||
"sky.elev": {"norm": {"lo": -30, "hi": 75}, "filter": {"min_cutoff": 0.15, "beta": 0.002}, "label": "local sun elevation"},
|
||||
"sky.day": {"norm": {"lo": 0, "hi": 1}, "filter": {"min_cutoff": 0.15, "beta": 0.002}, "label": "local day/night"},
|
||||
"sky.lat": {"norm": {"lo": -90, "hi": 90}, "label": "venue latitude"},
|
||||
"sky.lon": {"norm": {"lo": -180, "hi": 180}, "label": "venue longitude"},
|
||||
"clock.births": {"norm": {"lo": 0, "hi": 8}, "label": "births / sec"},
|
||||
"clock.deaths": {"norm": {"lo": 0, "hi": 5}, "label": "deaths / sec"},
|
||||
"clock.popvel": {"norm": {"lo": 0, "hi": 4}, "label": "population growth / sec"},
|
||||
|
||||
202
viz/index.html
202
viz/index.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -79,6 +79,8 @@ def main():
|
||||
client.send_message("/gs/sky/elev", float(elev))
|
||||
client.send_message("/gs/sky/day", day_fraction(elev))
|
||||
client.send_message("/gs/sky/az", float(az))
|
||||
client.send_message("/gs/sky/lat", float(args.lat)) # the venue's own coordinates,
|
||||
client.send_message("/gs/sky/lon", float(args.lon)) # so the console can place "here" on a map
|
||||
except Exception as e: # noqa
|
||||
print(f"[sky] warn: {e}")
|
||||
time.sleep(args.interval)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user