From 8789d6a6d5863ba0fa3a3532d031c29716061385 Mon Sep 17 00:00:00 2001 From: BenStullsBets Date: Wed, 24 Jun 2026 08:15:41 -0700 Subject: [PATCH] =?UTF-8?q?feat(sim):=20extend=20scale=20ring=20to=205=20(?= =?UTF-8?q?orbit=20+=20reef)=20(content=20pipeline=20=C2=A75)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- simulator/sample_media/manifest.json | 66 +++++++++++++++++++++++++++- simulator/setup_scales_media.py | 7 ++- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/simulator/sample_media/manifest.json b/simulator/sample_media/manifest.json index 2c1adaa..20ea3e1 100644 --- a/simulator/sample_media/manifest.json +++ b/simulator/sample_media/manifest.json @@ -28,6 +28,32 @@ } } }, + { + "id": "orbit", + "title": "Earth from orbit (NASA/ISS, neutral base)", + "base_file": "orbit/base.mp4", + "license": "public-domain (US Gov, 17 U.S.C. §105)", + "source": "NASA/ISS — https://images.nasa.gov/ (true PD; placeholder bytes until ingest)", + "right_variants": {}, + "annotations": [ + {"key": "detected.cloud_band", "box": [0.30, 0.30, 0.30, 0.20], "min_level": 1}, + {"key": "measure.altitude", "box": [0.06, 0.06, 0.18, 0.08], "min_level": 2} + ], + "affect": [ + {"key": "feel.serenity", "at": [0.50, 0.46], "min_level": 1}, + {"key": "feel.fragility", "at": [0.22, 0.68], "min_level": 2}, + {"key": "feel.unity", "at": [0.66, 0.58], "min_level": 3}, + {"key": "feel.distance", "at": [0.42, 0.82], "min_level": 4} + ], + "strings": { + "en": { + "detected.cloud_band": "cloud band", + "measure.altitude": "~408 km", + "feel.serenity": "serenity", "feel.fragility": "fragility", + "feel.unity": "unity", "feel.distance": "distance" + } + } + }, { "id": "forest", "title": "Yosemite Falls (neutral base, POC sample)", @@ -69,6 +95,38 @@ } } }, + { + "id": "reef", + "title": "Coral reef (NOAA Ocean Exploration, neutral base)", + "base_file": "reef/base.mp4", + "license": "public-domain (US Gov, 17 U.S.C. §105)", + "source": "NOAA Ocean Exploration — https://oceanexplorer.noaa.gov/ (true PD, worldwide; placeholder bytes until ingest)", + "right_variants": {}, + "annotations": [ + {"key": "detected.coral", "box": [0.20, 0.45, 0.30, 0.30], "min_level": 1}, + {"key": "detected.fish", "min_level": 2, + "track": [ + {"t": 0.0, "box": [0.20, 0.30, 0.10, 0.08]}, + {"t": 0.5, "box": [0.62, 0.34, 0.10, 0.08]}, + {"t": 1.0, "box": [0.20, 0.30, 0.10, 0.08]} + ]}, + {"key": "measure.depth", "box": [0.06, 0.06, 0.16, 0.08], "min_level": 3} + ], + "affect": [ + {"key": "feel.delight", "at": [0.50, 0.46], "min_level": 1}, + {"key": "feel.abundance", "at": [0.22, 0.68], "min_level": 2}, + {"key": "feel.curiosity", "at": [0.66, 0.58], "min_level": 3}, + {"key": "feel.immersion", "at": [0.42, 0.82], "min_level": 4} + ], + "strings": { + "en": { + "detected.coral": "coral colony", "detected.fish": "reef fish", + "measure.depth": "−18 m", + "feel.delight": "delight", "feel.abundance": "abundance", + "feel.curiosity": "curiosity", "feel.immersion": "immersion" + } + } + }, { "id": "abyss", "title": "Deep sea (NOAA Ocean Exploration, neutral base)", @@ -101,12 +159,16 @@ "ring": { "scales": [ {"id": "cosmos", "clip_id": "cosmos"}, + {"id": "orbit", "clip_id": "orbit"}, {"id": "forest", "clip_id": "forest"}, + {"id": "reef", "clip_id": "reef"}, {"id": "abyss", "clip_id": "abyss"} ], "transitions": [ - {"file": "transitions/cosmos-forest.mp4", "model": "placeholder-zoom"}, - {"file": "transitions/forest-abyss.mp4", "model": "placeholder-zoom"}, + {"file": "transitions/cosmos-orbit.mp4", "model": "placeholder-zoom"}, + {"file": "transitions/orbit-forest.mp4", "model": "placeholder-zoom"}, + {"file": "transitions/forest-reef.mp4", "model": "placeholder-zoom"}, + {"file": "transitions/reef-abyss.mp4", "model": "placeholder-zoom"}, {"file": "transitions/abyss-cosmos.mp4", "model": "placeholder-zoom"} ] } diff --git a/simulator/setup_scales_media.py b/simulator/setup_scales_media.py index 54cd32f..9fe1dba 100644 --- a/simulator/setup_scales_media.py +++ b/simulator/setup_scales_media.py @@ -31,12 +31,15 @@ FPS = 25 # Each scale: (dir, base color, on-screen placeholder label). SCALES = { "cosmos": ("0x05060f", "COSMOS — NASA/Hubble (PD placeholder)"), - "forest": ("0x12301a", "FOREST — Yosemite (POC/placeholder)"), + "orbit": ("0x081427", "ORBIT — NASA/ISS (PD placeholder)"), + "forest": ("0x12301a", "FOREST — NPS/USGS (POC/placeholder)"), + "reef": ("0x06303a", "REEF — NOAA Ocean Exploration (PD placeholder)"), "abyss": ("0x021016", "ABYSS — NOAA Ocean Exploration (PD placeholder)"), } # Ring edges (adjacent pairs + the abyss->cosmos wrap), matching the manifest. -EDGES = [("cosmos", "forest"), ("forest", "abyss"), ("abyss", "cosmos")] +EDGES = [("cosmos", "orbit"), ("orbit", "forest"), ("forest", "reef"), + ("reef", "abyss"), ("abyss", "cosmos")] def _ffmpeg() -> str: