From 5b7b4c2eeb992b99eea0f6cb44e376edbe085470 Mon Sep 17 00:00:00 2001 From: Nibu Date: Sat, 14 Nov 2026 11:07:58 +0000 Subject: [PATCH] Ridge backdrop A+D: baked ridge planes over the live sky (Vienna) (#163) --- .github/workflows/build-pull-request.yml | 6 +- docs/gamecult/ridge-backdrop-target.md | 16 + harness/scene/ridgeDemo.ts | 7 +- public/ridge/index.json | 7 + .../ridge/vienna-b464e375319f/dawn-far.webp | Bin 0 -> 89842 bytes .../ridge/vienna-b464e375319f/dawn-mid.webp | Bin 0 -> 58444 bytes .../ridge/vienna-b464e375319f/dawn-near.webp | Bin 0 -> 112950 bytes .../ridge/vienna-b464e375319f/dusk-far.webp | Bin 0 -> 89124 bytes .../ridge/vienna-b464e375319f/dusk-mid.webp | Bin 0 -> 56656 bytes .../ridge/vienna-b464e375319f/dusk-near.webp | Bin 0 -> 111564 bytes .../ridge/vienna-b464e375319f/golden-far.webp | Bin 0 -> 89676 bytes .../ridge/vienna-b464e375319f/golden-mid.webp | Bin 0 -> 59462 bytes .../vienna-b464e375319f/golden-near.webp | Bin 0 -> 114342 bytes .../ridge/vienna-b464e375319f/manifest.json | 232 ++++++ .../vienna-b464e375319f/morning-far.webp | Bin 0 -> 91090 bytes .../vienna-b464e375319f/morning-mid.webp | Bin 0 -> 63476 bytes .../vienna-b464e375319f/morning-near.webp | Bin 0 -> 119778 bytes .../ridge/vienna-b464e375319f/night-far.webp | Bin 0 -> 88064 bytes .../ridge/vienna-b464e375319f/night-mid.webp | Bin 0 -> 54654 bytes .../ridge/vienna-b464e375319f/night-near.webp | Bin 0 -> 110050 bytes .../ridge/vienna-b464e375319f/noon-far.webp | Bin 0 -> 92266 bytes .../ridge/vienna-b464e375319f/noon-mid.webp | Bin 0 -> 64134 bytes .../ridge/vienna-b464e375319f/noon-near.webp | Bin 0 -> 122270 bytes scripts/bake-horizon.py | 123 ---- scripts/ridge-bake/.gitignore | 1 + scripts/ridge-bake/README.md | 40 ++ scripts/ridge-bake/export.py | 178 +++++ scripts/ridge-bake/places.json | 657 +++++++++++++++++ scripts/ridge-bake/ridge-bake.schema.json | 313 +++++++++ scripts/ridge-bake/ridge.py | 539 ++++++++++++++ scripts/ridge-bake/sun.py | 29 + scripts/ridge-bake/tests/mutate.py | 66 ++ scripts/ridge-bake/tests/mutate_export.py | 92 +++ scripts/ridge-bake/tests/run.sh | 7 + scripts/ridge-bake/tests/test_ridge.py | 619 ++++++++++++++++ src/app/features/scene/README.md | 61 +- src/app/features/scene/SkyStateControl.tsx | 27 +- src/app/features/scene/index.test.ts | 460 +++++++++++- src/app/features/scene/index.ts | 127 +++- src/app/features/scene/ridge/Backdrop.test.ts | 44 ++ src/app/features/scene/ridge/Backdrop.ts | 44 ++ src/app/features/scene/ridge/Ridge.test.ts | 659 ++++++++---------- src/app/features/scene/ridge/Ridge.ts | 570 ++++----------- src/app/features/scene/ridge/credits.test.ts | 31 +- src/app/features/scene/ridge/credits.ts | 13 +- .../features/scene/ridge/frameChoice.test.ts | 117 ++++ src/app/features/scene/ridge/frameChoice.ts | 55 ++ .../features/scene/ridge/frameLuma.test.ts | 32 + src/app/features/scene/ridge/frameLuma.ts | 33 + src/app/features/scene/ridge/horizon.test.ts | 30 - src/app/features/scene/ridge/horizon.ts | 54 -- .../features/scene/ridge/horizonLayer.test.ts | 65 -- .../features/scene/ridge/manifest.fixture.ts | 76 ++ src/app/features/scene/ridge/manifest.test.ts | 108 +++ src/app/features/scene/ridge/manifest.ts | 150 ++++ .../features/scene/ridge/physicalSky.test.ts | 65 +- src/app/features/scene/ridge/physicalSky.ts | 55 +- .../features/scene/ridge/ridgeAssets.test.ts | 229 ++++++ .../features/scene/ridge/ridgeBake.test.ts | 404 ----------- src/app/features/scene/ridge/ridgeBake.ts | 221 ------ src/app/features/scene/ridge/ridgeWorld.ts | 236 ------- src/app/features/scene/ridge/skyColour.ts | 16 +- src/app/features/scene/ridge/skyDome.ts | 62 +- src/app/features/scene/ridge/sunAt.test.ts | 74 ++ .../scene/ridge/{vienna.ts => sunAt.ts} | 31 +- src/app/features/scene/ridge/toneMap.ts | 5 +- src/app/features/scene/ridge/vienna.test.ts | 57 -- .../features/scene/ridge/viennaHorizon.json | 306 -------- src/app/features/scene/ridge/view.test.ts | 60 ++ src/app/features/scene/ridge/view.ts | 83 +++ .../features/scene/ridge/weatherFeed.test.ts | 40 +- src/app/features/scene/ridge/weatherFeed.ts | 9 +- src/app/features/scene/skyForState.test.ts | 57 +- src/app/features/scene/skyForState.ts | 21 +- .../features/scene/terrain/terrainStars.ts | 1 - src/app/features/scene/tier.ts | 2 + vite.config.js | 4 + 77 files changed, 5163 insertions(+), 2563 deletions(-) create mode 100644 docs/gamecult/ridge-backdrop-target.md create mode 100644 public/ridge/index.json create mode 100644 public/ridge/vienna-b464e375319f/dawn-far.webp create mode 100644 public/ridge/vienna-b464e375319f/dawn-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/dawn-near.webp create mode 100644 public/ridge/vienna-b464e375319f/dusk-far.webp create mode 100644 public/ridge/vienna-b464e375319f/dusk-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/dusk-near.webp create mode 100644 public/ridge/vienna-b464e375319f/golden-far.webp create mode 100644 public/ridge/vienna-b464e375319f/golden-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/golden-near.webp create mode 100644 public/ridge/vienna-b464e375319f/manifest.json create mode 100644 public/ridge/vienna-b464e375319f/morning-far.webp create mode 100644 public/ridge/vienna-b464e375319f/morning-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/morning-near.webp create mode 100644 public/ridge/vienna-b464e375319f/night-far.webp create mode 100644 public/ridge/vienna-b464e375319f/night-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/night-near.webp create mode 100644 public/ridge/vienna-b464e375319f/noon-far.webp create mode 100644 public/ridge/vienna-b464e375319f/noon-mid.webp create mode 100644 public/ridge/vienna-b464e375319f/noon-near.webp delete mode 100644 scripts/bake-horizon.py create mode 100644 scripts/ridge-bake/.gitignore create mode 100644 scripts/ridge-bake/README.md create mode 100644 scripts/ridge-bake/export.py create mode 100644 scripts/ridge-bake/places.json create mode 100644 scripts/ridge-bake/ridge-bake.schema.json create mode 100644 scripts/ridge-bake/ridge.py create mode 100644 scripts/ridge-bake/sun.py create mode 100644 scripts/ridge-bake/tests/mutate.py create mode 100644 scripts/ridge-bake/tests/mutate_export.py create mode 100755 scripts/ridge-bake/tests/run.sh create mode 100644 scripts/ridge-bake/tests/test_ridge.py create mode 100644 src/app/features/scene/ridge/Backdrop.test.ts create mode 100644 src/app/features/scene/ridge/Backdrop.ts create mode 100644 src/app/features/scene/ridge/frameChoice.test.ts create mode 100644 src/app/features/scene/ridge/frameChoice.ts create mode 100644 src/app/features/scene/ridge/frameLuma.test.ts create mode 100644 src/app/features/scene/ridge/frameLuma.ts delete mode 100644 src/app/features/scene/ridge/horizon.test.ts delete mode 100644 src/app/features/scene/ridge/horizon.ts delete mode 100644 src/app/features/scene/ridge/horizonLayer.test.ts create mode 100644 src/app/features/scene/ridge/manifest.fixture.ts create mode 100644 src/app/features/scene/ridge/manifest.test.ts create mode 100644 src/app/features/scene/ridge/manifest.ts create mode 100644 src/app/features/scene/ridge/ridgeAssets.test.ts delete mode 100644 src/app/features/scene/ridge/ridgeBake.test.ts delete mode 100644 src/app/features/scene/ridge/ridgeBake.ts delete mode 100644 src/app/features/scene/ridge/ridgeWorld.ts create mode 100644 src/app/features/scene/ridge/sunAt.test.ts rename src/app/features/scene/ridge/{vienna.ts => sunAt.ts} (64%) delete mode 100644 src/app/features/scene/ridge/vienna.test.ts delete mode 100644 src/app/features/scene/ridge/viennaHorizon.json create mode 100644 src/app/features/scene/ridge/view.test.ts create mode 100644 src/app/features/scene/ridge/view.ts diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 964add54..e74946bc 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -18,10 +18,14 @@ jobs: - name: Setup node uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: - node-version-file: ".node-version" + node-version-file: '.node-version' package-manager-cache: false - name: Install dependencies run: npm ci + - name: Ridge asset gate + run: | + npx vitest run src/app/features/scene/ridge/ridgeAssets.test.ts + echo "ridge assets: $(find public/ridge -type f | wc -l) files, $(du -sb public/ridge | cut -f1) bytes" - name: Build app env: NODE_OPTIONS: '--max_old_space_size=4096' diff --git a/docs/gamecult/ridge-backdrop-target.md b/docs/gamecult/ridge-backdrop-target.md new file mode 100644 index 00000000..a2529901 --- /dev/null +++ b/docs/gamecult/ridge-backdrop-target.md @@ -0,0 +1,16 @@ +# Ridge backdrop target + +The scene's bottom silhouette is replaced by baked A+D ridge planes. The baker is Python and offline; the browser composes pre-lit planes over the live physical sky. Typed state for this campaign (ideas, questions, rulings, cuts) lives in the instance mind `nibu`, campaign `ratatoskr-backdrop`; this file keeps only the ends. + +## Why +The live noise ridge is nearly invisible on a phone (about 1.35:1 against the darkest sky) because every ridge pixel is lifted to the text-contrast floor, and the star dots show between nav and header glyphs because the shell is transparent. Meta, 2026-11-13: do not polish the old backdrop; ship the A+D ridge pipeline (round 2 mockup: https://minds.gamecult.org/nibu/ridge-mockups-ad/). + +## Ends +- One owner per decision: the baker owns ridge geometry and shading; the runtime owns only frame choice, blending, camera drift and compositing. No ridge geometry is computed in the browser. +- Nothing from the scene paints above app content: the scene is one stacking context at the back of the app, and nothing it creates has its own z-index or lives outside it. +- Phone cost is bounded: no per-frame script for the ridge, decoded size and fetched size gated in CI. +- The baker has fixtures with known right answers (the far-plateau spike, chain-end taper, slot union, seam) and a mutation runner that must kill each re-introduced cause. +- A baked asset names its baker version, DEM source and licence in a validated manifest; the credits shown in the Sky menu come from the manifest. + +## Not in scope +Button size (Void's). Patching the old noise-ridge path. Cone sampling. Live DEM access from the browser. diff --git a/harness/scene/ridgeDemo.ts b/harness/scene/ridgeDemo.ts index 3606d14f..17e67774 100644 --- a/harness/scene/ridgeDemo.ts +++ b/harness/scene/ridgeDemo.ts @@ -1,6 +1,5 @@ // Standalone page for the ridge scene: full window, no host app. `?tier=still|low|full` picks the -// tier, `?probe=1` shows the rAF median/p95 readout. The bake record (each chunk's cost, from -// the scene's `onBake`) and the long tasks the page saw are on `window.bakes` and `window.longTasks` +// tier, `?probe=1` shows the rAF median/p95 readout. The long tasks the page saw are on `window.longTasks` // for a driver to read. Not shipped. import { startBackgroundScene } from '../../src/app/features/scene'; import type { SceneTier } from '../../src/app/features/scene'; @@ -8,8 +7,7 @@ import type { SceneTier } from '../../src/app/features/scene'; const q = new URLSearchParams(location.search); const tier = (q.get('tier') ?? 'full') as SceneTier; const canvas = document.getElementById('c') as HTMLCanvasElement; -const w = window as unknown as { scene: unknown; bakes: unknown[]; longTasks: number[]; firstViewMs: number }; -w.bakes = []; +const w = window as unknown as { scene: unknown; longTasks: number[]; firstViewMs: number }; w.longTasks = []; try { new PerformanceObserver((l) => l.getEntries().forEach((e) => w.longTasks.push(e.duration))).observe({ @@ -21,7 +19,6 @@ try { const t0 = performance.now(); startBackgroundScene({ tier }, {}, { canvas, - onBake: (b: unknown) => w.bakes.push(b), } as never).then((scene) => { w.firstViewMs = performance.now() - t0; w.scene = scene; diff --git a/public/ridge/index.json b/public/ridge/index.json new file mode 100644 index 00000000..a2366f1e --- /dev/null +++ b/public/ridge/index.json @@ -0,0 +1,7 @@ +{ + "schema": 1, + "default": "vienna", + "places": { + "vienna": "vienna-b464e375319f" + } +} diff --git a/public/ridge/vienna-b464e375319f/dawn-far.webp b/public/ridge/vienna-b464e375319f/dawn-far.webp new file mode 100644 index 0000000000000000000000000000000000000000..896c73c9dc94ef1e546ae93c0dd9dde0b6444450 GIT binary patch literal 89842 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

g>o~Ysm^-DX(3K1P`rE6S=#Ty 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 z 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

wrt<)gi) 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 z

sWFqqAuAM8`;$Q?A(Ez;@ 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 z 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 H-S>Y39ZWfO literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/dusk-far.webp b/public/ridge/vienna-b464e375319f/dusk-far.webp new file mode 100644 index 0000000000000000000000000000000000000000..0f1070e395e86d61dd149a28db85be42178bdf96 GIT binary patch literal 89124 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

IVby#3^io6{#;jRgjLJv~I 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 #hBi)YNGT@F)oT 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 V{I^>}$nU(?k$89hs{Q{c{{z^1$-@8u literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/dusk-near.webp b/public/ridge/vienna-b464e375319f/dusk-near.webp new file mode 100644 index 0000000000000000000000000000000000000000..68ea95eb3b5be54a608c6368d2dbf041f5aa8f48 GIT binary patch literal 111564 zcmcedWm6p8^Y@Vj77I?05Zr?Wy|BfDy9GiZxDyBxf-D+5xCa(@clQv2yTc+OKyU~w zu=eNo^nL;NRLxY+JUG+URnya_Ki}3@Q&Aad#>6mDR?s!pl`tj1z`!7VI?(_O6D$mQ zO3<(K&5XU-PX}~(T2ZT&>ZDh#K?0z45 zf%kJ#n&$I=3u0<%wQ=#3W-@Vh<|%oOYAqu!)*C6VKeW9L;QP7Fw|876$zC5$oOwlk zlZM)~EX+r=Sk2quSOjJiZ3p%RHHoU{?mBOqdpZ`&i~EbdFtsQDRvjPXLg$_TP3P<* z6T(E$H*a67h(eBoFJHW<%3hF(iOCsZz3O|n^~R@Xro8=DQdWAp;+soIeqSReOxCSl z_cOq;5QiYGEztIkgV%oWZMu&LXAN$Wa8z>{2~@WO;8`I2Q`Dh*U9%G@cpq zqiTBgjzH_6+pFT*nE50m++fN$s;wz39sTqY|7xp)kD}bY=l{3COZXogQq3)TM zD1n)KAgPDMCZQ8`^u&y9+qF9&HwI)@o3#y@V!{`>^9& zI2*!NGJ-`w!@TRpM9_w_XjSl>l6Woz)9{sd&(W(7Oz&UYL~#6x|AJ>atpCD_n_MuQ zQibN|4f2(wqeDmZ82+X9Mw|OaTWj^dL-*RmR>%c?{>;%F_j_>SsU9-B>diImGj~`2 zQqk&@C&5K-0c~gK=Qsc~Pin*=l8m?pi{^_xWDsL%i%h0~DM+daQ$!F%=qQJALk-3* zsV!C*v=9B~{do*`ubz!=3^&Ub1A7hQlMB-+!yHC4IY2i^QlwxP6k+)$lA;fQ4IIGE z#F=-;Af}0irZ_UuTg}(A(v3aq17H$S4-BZ0%K7*j0t<%Z5WZsratQhXIpa(6fU4*$ z4A5Mg)`r*`8F-Vuww39Hv^EhPzXDybf)g7s0r0!`E2$=4B6j%K+!z|e5f6fxNl+2# z79A;3(4~anze{o+R(zxiSr^d6sw(ivA!aweM z(GHJa-)=Qe_MiTawKR$?2WeSuku*%C3w#P5--}!KhaCNE?`9=? z_%3_magb|%Y=Be{W2R|asE0*Z)Wv@sD!&)scEVfUh^B>$b^P%_n4?Dfp6>|5zh`!v zCxtM7eI$aQT~57luJ?oEFS=5vB?85hnL-%Pp!eI*bxZ5-pN73WqGQqpc`N;@>wTZ| z;ykAJP6Vv|hqs)XXp3a!V3J7CIaokPl(imo2@R@>kR{cJdF;W*r%WJM*g=Wi+L++g zi__dq*^YyW};z^$H)AxsT}Qzvjan(1qO7> z76QqcqpK|sW$<>X#OtE6ObvcCnl)VMy(0SR=xQ?-lHr&osu#Q};IqQ195E)=i>$n8 zWC-{cxRkFoXr*tjZ)VJ|&~@~89v>%+BLw3O7^lD1B3~89^we^M7BPQuU$tWL`Jmh{ z(&ZD7#@>JiTj_g^SYuf%xhq?U5b$~pHL}t1yTc+q{+mJ)jlsP@z=7ZW>}}%pU!A)} zAxr-1P@s1xF&2$ARyZI}AFIS3=ooE(tF+T0a7_;$qR(%0Ay15Whhu|c)9&n^$ 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

!AiM`f5f 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%0DJp4&)@gPKHLv?CK!izJT;zxkP%&kHuyMx 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%0Ay15Whhu|c)9&n^$ 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 literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/manifest.json b/public/ridge/vienna-b464e375319f/manifest.json new file mode 100644 index 00000000..66458155 --- /dev/null +++ b/public/ridge/vienna-b464e375319f/manifest.json @@ -0,0 +1,232 @@ +{ + "schema": 1, + "baker_version": 1, + "bake_id": "b464e375319f", + "place": { + "id": "vienna", + "name": "Vienna, looking SW to Rax/Schneeberg", + "lat": 48.1929826, + "lon": 16.3534237, + "altitude_km": 0.18330000000000002, + "tz_h": 2, + "tz_name": "CEST", + "date": "2026-09-23" + }, + "view": { + "look_az_deg": 214.0, + "plane_h": 600, + "px_per_deg_h": 17.77777777777778, + "px_per_deg_v": 177.77777777777777, + "horizon_row": 314.5166414048937, + "sky_row": 24.0, + "near_row": 396.0, + "window_deg": 72, + "plane_w": 1280 + }, + "frames": [ + { + "key": "dawn", + "sun": { + "az": 91.31344091054159, + "el": 1.9676060128650812 + }, + "hour_utc": 4.923611110972221, + "planes": { + "far": { + "file": "dawn-far.webp", + "bytes": 89842, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "dawn-mid.webp", + "bytes": 58444, + "w": 1280, + "h": 600 + }, + "near": { + "file": "dawn-near.webp", + "bytes": 112950, + "w": 1280, + "h": 600 + } + }, + "bytes": 261236, + "luma": { + "min": 0.02173927318967578, + "max": 0.2143920269061395 + } + }, + { + "key": "morning", + "sun": { + "az": 122.50757257559601, + "el": 26.09311435610136 + }, + "hour_utc": 7.5, + "planes": { + "far": { + "file": "morning-far.webp", + "bytes": 91090, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "morning-mid.webp", + "bytes": 63476, + "w": 1280, + "h": 600 + }, + "near": { + "file": "morning-near.webp", + "bytes": 119778, + "w": 1280, + "h": 600 + } + }, + "bytes": 274344, + "luma": { + "min": 0.023307705502610833, + "max": 0.5954759807347093 + } + }, + { + "key": "noon", + "sun": { + "az": 179.90578338676787, + "el": 42.09425207059211 + }, + "hour_utc": 10.778105086666667, + "planes": { + "far": { + "file": "noon-far.webp", + "bytes": 92266, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "noon-mid.webp", + "bytes": 64134, + "w": 1280, + "h": 600 + }, + "near": { + "file": "noon-near.webp", + "bytes": 122270, + "w": 1280, + "h": 600 + } + }, + "bytes": 278670, + "luma": { + "min": 0.028025005749671317, + "max": 0.7071301021405179 + } + }, + { + "key": "golden", + "sun": { + "az": 263.5260325423649, + "el": 6.139314360766868 + }, + "hour_utc": 16.193611110972224, + "planes": { + "far": { + "file": "golden-far.webp", + "bytes": 89676, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "golden-mid.webp", + "bytes": 59462, + "w": 1280, + "h": 600 + }, + "near": { + "file": "golden-near.webp", + "bytes": 114342, + "w": 1280, + "h": 600 + } + }, + "bytes": 263480, + "luma": { + "min": 0.02402914320144737, + "max": 0.2869579287555448 + } + }, + { + "key": "dusk", + "sun": { + "az": 273.0513939324655, + "el": -1.8289117519819837 + }, + "hour_utc": 17.04388888875, + "planes": { + "far": { + "file": "dusk-far.webp", + "bytes": 89124, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "dusk-mid.webp", + "bytes": 56656, + "w": 1280, + "h": 600 + }, + "near": { + "file": "dusk-near.webp", + "bytes": 111564, + "w": 1280, + "h": 600 + } + }, + "bytes": 257344, + "luma": { + "min": 0.018028911802351475, + "max": 0.18841340359158804 + } + }, + { + "key": "night", + "sun": { + "az": 283.9869292652113, + "el": -11.998720821772542 + }, + "hour_utc": 18.004444444305555, + "planes": { + "far": { + "file": "night-far.webp", + "bytes": 88064, + "w": 1280, + "h": 600 + }, + "mid": { + "file": "night-mid.webp", + "bytes": 54654, + "w": 1280, + "h": 600 + }, + "near": { + "file": "night-near.webp", + "bytes": 110050, + "w": 1280, + "h": 600 + } + }, + "bytes": 252768, + "luma": { + "min": 0.012974147057371975, + "max": 0.14175859785553058 + } + } + ], + "attribution": { + "credit_line": "Contains modified Copernicus data: DEM \u00a9 DLR e.V. 2010-2014 and \u00a9 Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.", + "licence": "Copernicus DEM licence: free, full and open access, with the credit line shown", + "dem_source": "Copernicus DEM GLO-30 (30 m)", + "url": "https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model" + } +} diff --git a/public/ridge/vienna-b464e375319f/morning-far.webp b/public/ridge/vienna-b464e375319f/morning-far.webp new file mode 100644 index 0000000000000000000000000000000000000000..2b9c6ab29902a2d271a49775432e01626a0388ff GIT binary patch literal 91090 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

m76Jcp_3cBjPDfK-Uru#mEorsqU*=&R=Mtek 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 literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/morning-mid.webp b/public/ridge/vienna-b464e375319f/morning-mid.webp new file mode 100644 index 0000000000000000000000000000000000000000..e6099bbcbe969b74815f5613633441beb949ef97 GIT binary patch literal 63476 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 J`2Uyo-vFo~GerOZ literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/morning-near.webp b/public/ridge/vienna-b464e375319f/morning-near.webp new file mode 100644 index 0000000000000000000000000000000000000000..6592037e6966c3549c958995ef25ffd2555bfbf8 GIT binary patch literal 119778 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 z

sWFqqAuAM8`;$Q?A(Ez;@ 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 z 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%0A*7WlbiN;{L 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

IVby#3^io6{#;jRgjLJv~I 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%0Ay15Whhu|c)9&n^$ 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 p;xLRm2Ua-ae1VHoC9ID9>v2Th=0s2s7 zdx+G~BLoN#%JW~mo!Ob4IWs%EGduU3bN60zJ#B3l&$DN&wKPnvOch^TJ#*&FwSV*U z!WrvxXPz0F>fTm7d*&=xXNr(ms-%mrI9u`V?Kj!29LLBrErXGKZi}wpF~?6r_nKHR zuH)8y^6?k%n)+P!7`6S)Ol5PpcN_c+t|$d&QQ>&=?uWqjv!Y)w2%Wobo|={sDETM$ zo%FCG&P?gyrB2h1tEI(%>t$gu_KPoz!|pWr-tFpMK1CW&O@Oc*PtJ1D9;L-EG&(NX zqm-rP6JpyvlEz4zb~+=Fpexazy*`&}#hp#K_~6#tf+gD`Upt&{pvTW%y(d9WWd4m0 zZjSFH&&hlc`Ca;@OIqevhx2!d8nl%X8fZ-tH!B?6Eqh>o-tQHv%6 z>S?{Jrr}$pE>7zo9;-e-JQjJHBmDlJ>8|nolbmn?)19*`zwU%TGu`Q0wk=o=FRJns zihGV)VQqJ=J*(Mvq1oQ?zf<+o)1y<`De?cdK(6smfc9*l8vN~$dJ+u_4R!i`dxtB6 z4cW6529-y)U9Re)%|r+w$94Yt9ZNTZ_=h`o#G3!s?7xwJqxSaEAJ;RHpPbm%n{V@X z=+rgPW+T*ySN;=tMEuIW@nK^8U_X&vmuau*obe6Vn<-^v7iF(xzo_?fxUSwcr?yN2 zh3=*3z5BGats=0mjY<}+fzzx`)ukA>4Mv>ZbG8d-UdvFlke1>_mRBS0@C4?q2~Ko| z;jJx&uOf9vc%s^5e>?~DiqWIw2Nhey3_5s50NT;fwoN5tQ zaRN2=9ghOlL}M*@tb5AnUhzvIt{8PF)Sv7HGkC~8IqFg zEp{`zfaju|_yo^?#?}RdX++p=($CNVGn|2Odt-p*)*Seu?YCt z`{1Vngeo`eEW8Je7sJytBF3lm<@vtL6siVDj%rb=8QxZ5RQ(*u3 z*UAIE%Bo7f@${lsJx8aosjX$8?F8P&i#RXLVI2l|wXgFRC|dSI|=AXZw}9{KtIJF7M1y4tgGOmfFQNyfme) zA>fsO%e8{hdH~Lf?-IJ4DRCCt!REP7{OR?u8!nupE4ue8%VHFH>+Y1V`n`}A;#+LE zNmE89_JtlstqXh~G@!Pfs?L1veXJbB`&@N#RvBK$L3391owyIe$KaK*Z*G8mKL2U-5xwI!o0dgTh4ujkb0uzKkMC9@LG z-{0xKAd@Rs)krZ3V;$e)( zL|3qq-%#)uc*R)V=l9m2MCE0dC&K8LPwTYhUmy-HnLuGDKP4iAD{0LpoBaE)E#1x7 zd^MAnilu@&?i6`-fET9MyemUNDN0M__;E+*szLU0f?5g)zslhFVCQR|9w+D6wK>Qnq@V$sy!ki}>!gezkP2HY8XCt5g z>_0P`7x%5?rmxaB|MD1pga(w&zw7FLQXpWo(p(&p=< zDS5&@%es>5o(&mK(j&9mm zv}R3Nc=N(V<6>La;JkNtm+w6AUz$weF|;!pOz0~E>Vphe zLH2_2nsVhUs95ce3FELMTY;Q>-o`{%tFX~R-&?G9?8ZE?<0^bLCA4s>B8YqrDr(GL z22<1k->&NW`Hql3zQM-9D|>GsT~iQU9b7HtA(@M)757ysc(COurIRa0e1j?%YWkY| zx=#^NdKN8=Dz6c3Gu^c-Cm1+|eGwv^72WvO{{~o z`s%@*S@?oHzrEHrNynuMBoODPCUnCx^z+9rDQUicaOZBEzLa35I!*1nl!YtXllwyY zcdLK?*QIhodR5r_k|(Q2O7lAE+7*4F=yr%X1wjd66?K}@DZ$8kaWU(r|NbO_Gjp1M zb!)EHfSc)I7AQZs@}r;Ye=Wq$D-upY`+>{NAGt3m`~A4ao3tl7s@?755uTYe|HX}9 zjFylpa})EryHH@urlO9~@o$gxMeE(`zhLq*n* zqE8(asqkKd4(Ifz9A=Yk8!Rh*FsxBJ*Ug&liu&d)~~z43@!+l#e>rzNgQ z0dHlmJ=Gql2(jtl-}k_o#kB!D2P(clFHXeb+E?8~c*Wn2Mw@{qk)sH&+o^yn7r*Hj z)zQ-VJ(w56vh{?eA4^uEx?0~;w>Dh|8ium4JtJK4G zEb>FKgoKS;R#VUIjvJQKb^3`mRvjO8Q@NOuqpp}<`+9)~qIN&`0c^D@*XAb=_r)3D zpyKVT?d8iaR=lO9@kAhN;*E;~RzmMhO|Si<>~KZoHoJo9swIsD-kq-&$mK<0sk;sg z@sQT+v9!XtM(Y=1oyAhxHh%M_1&%Q9SdphMbsOy|owr~4<{6c<@L7C5x#GDgLkNS# zl{-Hz7nbCBdhZNJdRxs>%gkIX>kX_i1qCYhiDPNd=>R^!Cc|f=%JJY_Kz$YE z<|Dw&->Gqx129ah>3Vi$1or6Qw|B zj%0}n`rYY`;J(>Ft@9UqSQKKeRQ6^{a(oiG9>d6?ajJKqj_IeKcB0X5=0M@$$pMmO z(J^pMUM;if3)jqun}q^b&YoLTn?;wL{)^1jJtOV0N=W3%(c9EBs>9`NDVm&EFVK2bl_(@TC}&VCW_o-Lu^?ch@lQOw&j0@v83O-?Sb zKXMt`*@cyE6^E}ssr!x@PQA{VTxfT}T=T|9jw@&5+Rm%_jVm4l$ZaE>C8B<|*Sn?6 zIj<)tYkqwC(eC+&_xI1btnKzWZRf3bq$i)zWF~2A=w5j`?XIaT%hA2m)8JGVeg4XY zD*+%TfeTl!NZ!}giEF#HzHo4R(`?%2UU2S}EAR(#PtQ!gSK1K`enfxpo%Q_{!I-D_ zaLz$Nzt7(WCti8`65yfMz&GtH7;}z8GbUjiMo(yd(pr2e=6ylT#&|tr#&O%H*Y`X} zZnbsz_E?2ojTG%;q7zNtBT2!1o_>^y;m0qw6MZ6J{*7C-oYRdA`N($U%XxZLA2Ju# zyldg#up6{H-cGcLjG5dI+Zy}bPTfta+odh=lMj_n-R#sms3lr zg5M;&_b@zt$}_{SS=8ng@O#f7yQC?#skU74z+7w-q5f* zy>ag?!tN`SfAqql8b)oXfKRh?8vfr?mSyDNY31PgE`oZ|H}jGS&KI;yU_yFy6uU;@vibPm;9ak0?BJwYal7v~{@a5UtA~Q(L)FQr zL(~KHqSN$qhb4;;JCDVaW9$T||8#|VLRPb0hw%_613~ z$bBq|43SgJuYxBbT@Qo5$uzb&uOM=|e!*kqkWE(oi>a;WW2!G62 z1DsiSmH(41#6TShqVSYMPbDY6FDo66J@_B4GktoFz$9Q&?yOALE69Cc)`8PK0Au77#x6f^uzC_<7 z7+aYu3Y{aS8K_6>1x@(*m+sBPx9`62u}8MMCydMo<40d&Qq*?$Etm%Y$DNVMpkxnlMeju|i%%rU)$sp9XFh`BF01;DJLKn=46eIL z*R91t6QdA)VeoEoq7!0a(}^#Vh++h&BiRq!VAO-Ze;cOBCh984$H(f<_v)?rRcQgsTEH-51gpW72D)ID2OQPn0i4YHI$UH@tV z+3y3~^;v45GLGQy(xPcMi5(0$nXySsc2rq?M1Gh@JU}l&pcP|Deo^z=0CIFwGxyQK zCJg4`7fGg)cQ(lUMn~dP5mb7l9HZfdTKLCpzTt?!(4(f2V1Ik@EnhEi^go06w8mb=Y-KFf$<8a5&LCt-Ob7))kGDIUZM_*pVZ7d^Bf@ z2PeY_>$KU2!0gml%v+U9kD(w1{0x92a>SDVVUpOsK63Cl}PyOXW7 zW-DnTl|lVPjXa`O9&J6^B}QasZ(6f3{_f<`CqiL|>nfmh*uhbxmr2)b>xfFnq_mPk zI84r8jRG4(?#r~4h@S4Q5Ly}ijBPv_#Oi|=IF5{@NJ85eB;Y<0VB$t8f8tV0IP#Qm zlJ~F$NoByO03DS)ZGL1nW$fVKaoXn1V>1}}3xJ}s3Nj9EZ8)6m69#D`DP(wS-p0;q zZ;t9JHKKy(-5JsF#P%sUGWr(5%4_9q8*RCol>c}e%ip`C!Y|4h`E%Ov@w2()0rn*lLyC# z@}9&<_zvAEKYcaYB#Zw3ix&0fr|qe3d9yE#fNq;F$1`aWrtgNZ>SPeET6tQbd)<$c3bHvh@)|{dpSb7C296{RL6#z4EuF8?QJThu zQ9btp_f%-(;oZmKlt?fF8dj0*0N5qqOI!fThs|I=JOMl;a4;K++1Mh;K-xxp{;R-c zzz>=mnMHePdm|RbL=|;@i#m@a^=c?g`p`FWkKO_M)jD>+CMbNjfgHiqlE+YX)JbaZ zUECTdC5E+c%G~Dlx!+Bls?+V`xJ#j_2L2Ag1Gk4x_0{Q3)S4qnXpw{*Bw}z^;go(E z>k3K=TxF;skuR(Ktkj7sR0s`D#%8qSK04`D&7~{RA~Jf(+ZytM8?7{f`bWI45rSlC z8&?zQ)uZsu^LhKnX#NBGU3!7_3aW()ccK#ABadmGZwS8SL%{ByOhOC#!Dp%fBl2j( zfj5~xl|Tz#Z5@FHQ|T^|#{@!0hlF+*sE)cBv!F<}kv;&xO^(wRvW6H%3Ow#@6Ka{y zb@rn3$hSWdC{j95A)h%ZyDo<7zh|>PPBbGRnwo8Qrz0RXNpYvAX*JaJ!F?sGJ{Xmb zziZaht^^xWSlu%KQyd1Sk`CfP-#fq#0l^15qP)4ujNPvixN!3Ead>6-!E23r&aVeH zy9$O?T6G+@7b0?GCbBt9&N_* zwJ?K55Mk0g1p6$A=E4r9agBjIAf2qw)6Y{uN#galvTADbj+>X2$S)`jHHq})6H1T{ z=s2x=PAqP6nm!Fb3_Yg8?j{N!H1^R0$#!r`7>1IEc2le|ms9Gaob*5#^*gXrDxnny z-090Ep-S|jPJ4wGYS|&;^jfPW|D9hY89B%eVo90+`wE3jr_Y>Jn5b9QQ5tVLI8hgzYhARtMIaA`akdK?pLk#*A1K4JE2s z(dJ7=67?S)dmqn)SU*Cl((Iw?d&>t&_1$2`U#KG=%7!+>l9g4dcCchUAK~cj^9i%B z|HxX6V(sDr*TgW;5M$~BB?y~+%&0V(?(q&iVS8l2Uu;OP+Fn%$?~q{v#}Vj}#DB(c z2ajkfU*c0e>cAr?Ejc=M{)fj?S+p_biHTKmYxPu;Y+pYm*#x$kOZDGYuBRUHMMa39 zob)KGe-1grbHJOkGTRX|`r&NN&*0H0BB=XxrjK^o0;B6pi@{)fwvm))V?o5Fp01p> zE9$;GsK-QlB(j&Yl?^%2+M3StU-tg|@g{tPZku^<^v%9mtv*y1P3H@^;cJErGFF7f zsGpEeXDW~Px2Lvv}1p#3_IdofOi-;ISJ$_yZu_8MwKL5T$%5X*?(w z26d0*UL8XBuvbv0b5KN~KUp)pmb9rb$Bm?4J2ku2ea=ob8UB@1+s(=h(%#G%lFmeX zz1LG}M>n2-%&(sIt1|L%`al^31(;Nh_0U%)=wZ9Br$1(YOUo-M4$l|}=f!8|vT$rW zi~XcCBH%h6Sa^NCW*`q46=_`3(s9V!r#5#|L2vp^u^9ajXyWQEANrcV!hov?l5PkZ z8(!62vyA=6ijN#@5WCMB6~WtTWZg>Ii91eDw9*T)a#NH$vSUW@AkKE{R?U7GWtB7# zGX*uNmCC2@%P^>Qvoz>ZBx9IV(06T3X>}2ZUrHe}{$XJ4RtPZo-}=d5@`%#0Q{G@QX0ti zYryh0YZhe-&P9@Mk#lx`n#!U6zn~yq)hwss0|%x0@AWOnY#8fIbJFJ=50qB69h^2# zSkR}1aXeQWsl3OKA!RFm2W#pMbs(%|+ROt#or2zsB`j)^cdVf^*yHBGNDKAQDo7n$ zcoE70ox8F;PY7DoR3Z*9ad-x`eH)EcbZeGVA=Qw;uyhUo-28)w*5$_9{Jce+tY$r~ z9Vcq7F|L%B`jVUtnJ4HiGpz9{Bz>9W0(ja?=XF=J0_jl@YDA5c#K=IkQnP)8rn(7& zFF}9WlMfyjv^l-thLM^kC`=yo&LH>woDg~RJ!lZw2bfK2@IO>Tu4GN81k1N~wi;I@ zqxf1Cg20Aq9@rLYrQvbIIH_U8ZXsc0riSKQcrhK=S_jqDg)K2&UL!fNIP|Ccju(u>K%6mlwcm2#rIeMrP8KKsTH^O9`l$a4>!ire=upHE z61p@Ux$~RakvMp%tcG569i@GF!Oj5mC(1F254kt=I9Z5V-=acpR5%3lcc>s{_6eRZ z!tj)V*Ne3XwfQ>StFramPD<~oWPy6x&SMyzvb9Rqk@=nm-OO9}44x^`Rf^bNZM+oZ zaHynCq#=^3aWJSZB|r&31M%(AW0wda()B2!!jp%HCB%}_t3-9BG>ZC-(6Sv)>R~pZ zkth8&t(H1D^$W!Y-Z@&YfO|H(`Vvv?0YUXftv#a*LdnL)%H9*g_A15d{McmgqH27` zMDwu8B9U3tZz+jM|r>mqM2; z6bzdmo0Lqhr_2YUE|sFZ$l_GmNH}pFRBN=0G5|-k-o8^kcnt+1gv|6z={6m@yS{;r!+Zo}MXH8nN5%m~3H;x@^{6>5r2sW(7*_W}S zrnV-*erq%6$_=A8&1p(1&j&O|8hwg_oOW?wA+bnwLg4i*n(U?X-iwhg(Xp~LpJNqJ zmc_4B^CrEcNIxGV59t05TdWZt%HlcawJ$C(npoRRn>7O1%BraP{4{>1v^r_+Y(?`U zT1Z>#0~U7i_<5`>rK$oT1*mdt$jU>fb*N9SkC}w%i!c%nmR0#tB8$fhy^*^Y*6s9Y z;#Q6Zu;YY^+!TI@Dpd_D`^4J+dQi5Nd$QX3g_~7ith+((hnP8(&JbXbKC8pE($&u+ z>q?5*4ZF6)N-J{}1iDX2)bG#b6=Jd0(=`7AO2+ae_jscAREqzsF;5O3^v{EROKa6! zYEjr9G(5vQ0@D9_7H>(0Mj#MaM>U=l5ADAI7rub|D?r%_6QrRd?6ZrWUGxm!FW03Yg1bB_Z)ZJl8zxuVD$1u5HqUsEIAldPR3aXCE3HAu$h!v~ ziQoK`>zk3WL%*H8YUn*vMF&=+fux@p`v!rKI+}B!wrBPXw!=K67T=`=TMp_~Fos;T z>3!+1tuK?dC{*L5UftMS_N@L5P7GrWK&Z0Ih((zs$xcw;hiOL{a5|q~J&-%J_EWc|j5f z6hefLbRAuVTfvY2%-lvi$}UE(NRJ+((YUy-W3eU%LPbWK29fS7r?$_LC}`4vk^~}a zs)ZlFwYxJ^1NqV7Be2r5O;Z_cW`{ziG^blqJ*4e-3@`uo-t)yD42MrltkJWwXGr{$ zR#tO|^WBw}J6oeZB&v-Kgj~br3JtuY3L?A70~zg2#Q(DRL&f^^^n*gfqgVT%hBAik z;(JE^9ryRMoXuFIBbla+{{*pJWDakM=XVT+3Dt=*@nW?tf)_U!v6N7v9s*@^8j&3G zy**2tR7uB^vK>e2eL%_lpv*Gt*Y5O?qW_3%c7s)i2dSr1T?+h3yz;I_tIRc5bqc~2 zzaGAdr8WeW45pZ44ZI2$?H*2-eb!@aUugP>9vWU{b4%vy>)ZnRkfHR9(OV=nD6*WP zpJ2CVzo{!&!ow%BvK8qqU6wNB+Y`)r!1%mGI9yrYOL#;b`cPfNOa8ZU_3I~gq@jc6 zdI8FG$B07Qx=INp<(iVku9r-O$>v%l!8ogEpDms+C?L&<3#o(W3f52Tg(JcayOpF4 z4g1?-+Z~v+F*m|1N~XDDMV!_`1BBU{RNZ|L4TIye8y~#d!X({5G?E@;&1~x)mKALn z1>rNu06Bo((N}~%H2UH%lk`KTiFqba$lg~u7`fPZY%GZDrk(wqG72+2wKE;+Lk4G2 zNi`kj)Q<{*B*}oK!2rHHiPd`ulN67`(jd3MfV`aLw?d$~USH+ZIa>xkC}DHoczec> zlHGgjVeyQ3O}NZ-a{?-CT8*qaVEDeXv&rco+`%cA@;jI69aO=<3x|y<8HlwR5f;C0 zu6t&dlSyVMyKb9;)k3Z6ijsB1#~boqV^=D?Q$qngr3M7mY8+SRXD|qJ1?_7L@%rr^ z6j@;7m24f9)c*kg=1dof*3AEk3;hRrbVmGyFgvxfgs~N=9#m%#%dM z^S-UTGliGBBkG?0E)z!sW%NhVOYvmPs@vQb7Ie#?+<+oc0p65!;X^tW<|3MG8Eo>>hJckn|tZ^&roHPa7ECL`?!5k7hG6_HEh4XcKH z8H?9c4zBxNKA5BMAQG=NL7RSx_6S8QmfN13$Zk*je(TXgYRZgiC)XeI5MF(qTCGwM z&hS7rPzeojghB(5#9U82^>07D-YUv$7^C<}uo6P=MX~wVZt#utB~rJ4&YY!)QoIdj zdZ)c{0=VWeZp`3$)wPYKbjtd(SAgt&HPjHLh0gMy_L%R?nna?xPaPDT!}1(!F_PW) zralNaK|P7+CqDGHMu&}fPJ_yCD40ai7GCb*tEN6Tb4?g%UAy6juBI?@yJ-tNW>!D! ze@QU3#rv9B#Beqpr#^9KtJL{N6d#%E|n@v z?B+kqn6_4rj~--Yp6>)tH5_hvgbwral;%ltTH8(Lr4VIQfx;K<2NM<`v}Fecyn+bU5tM1 zetZ33A;v={rlN@wj>9zG!`s5wE+IQKc3WD!*zUI^7zsS*se069Dm@65i%k^Ck+YWC zYV6{m#L;oP7gcF$!&~Q|{$>8eqPC3C+C5(ijx^N7_e9`jAE7%q9bhL#bk_<$w zCcQG8+LX*OrG~%N|FS_^3 zlqo$)AH-~}HekbDSRH}3*U{MsKl&O~T8oC-StM6!rjPkgY$C5rpxF5*qs~ovfAbIy|~SAyZW=*Rx5MW zs3xaI7H&uG>OaPAHX}FJZ)gRW3=ZxSn270}-P63tTb;=9D^C7Zg=QZn=jg&+-CfAm|rKy~54m{s)IdDP^OFE5s(Vi)cTDpdmw?d+YbCfz;9~ zvt95sb6<-0=v{Dn!|O&O_#w)s59Bvc)z1qr?Ja@#cv9lHZGE54h}w)m9qsQp0f#-xhQcN<9ac7vLTnTv*~ank;UaI=;A{B zFz(=uCD5dV+aJV=o%7}S4}KFm4{#|_+TZ$DrX;^Rx+TN;2-8JlGk6xw%oTF@HM4X9 zZw%>(TNaqKPAkLpAYxOMY$X7Wd-%loN-Cg9PFBK%T7PKhX@^+tuk$!o%vn+92IM}{ zAM*Rg_^utj^PDsy>z&h*71_Ji#0$^Rfyj%1?&fW@2pdh{++vngT&~R>*iMg*amdq4 zQ%CDU^1`?QGmmXM>4Z!>-sQfo#dP#M zsZyB;w_0t3Ma$+0+Q<$t9*-`|+a=8vgksX}l$SouBaF1o3hml=yC&SSbxV2?fNhN4 zsE9YVPG#D-={s)-^4}2Os?);fVM>o)Hd0a?KMj47ci~n-4FVvA?&ko~H%FeP7mwyD z`o{9Bm~V^Be+yF09B!Z5-7${HZL~J5Bk$w-xHc3vr%x;sqpWpC|QaZvsd2 z%lcml_L@u3()}}e8cXa6AM9eHf=RkiFrUJ(zEqiKOj}-woiq6v#VTWGwQ%RZf!KFy zyG403ddZ+!qq&d_rZSG|G2`^`D!kn5bPZXE)HlmPG2(P%alPN_k6(HsoFVB!0gT?+ z6(RTqgPO~FGtbk9E|*VK9`=9F?qJ&;bX2L&{_H}kmvFCe!MGZ1JP&#t0DM?(d_J3Z zaYIdX_L>17w-`=#?Ea8rpYn$>@DDq3?Wpk>;91S{`Ae6?vQwjG26k{G$_XP@x9C&o z_t{3V!eN`S^9#op0q_P2Vz(eC?EcJJe=S%MKunPY`flI%5=zsOnKo-IF%p3{sdc$6 z=^Ib=mEN9y^Dm7@4Zdu?OP{(7w*n!h%|5M72vx^Td)l(H?uLTKuCt`9NP4#E$v-OV zJZxLIcb4e~vq!wa+ziwp^|@|G8E({Oag?`h`m>(+wQp&Ig2P|qESBEo@doH5R4@v_ zb^e|@#8P3Ne6`9iI#0B}MGx$4?HsO$brJ^LWfM%%-cyOxjVowQOa_AWVevhBS#Y|c ze>+f?6uixomrW`c0nFA;aE41gkS>+f?&ebKZ~#+vDJ%aZz?NH^0u)8FRjhx=~_{ZNAW z6Ys*cxI-$&y^eld2%CDiy0!Tk8yL*F~c`I|@L4`^35MYBaNUdJnQ?U%ucSMy2roEL*hB*59Kda2Q zukc>HqHxJr{M+82?j*tC4SKsyJ(r}K#Vz(!nI@|l$E||SkN1_4tEBt9ZK@fTv!BzM zQd(G5$Ksh3b1*3t^qM=3L+60UmK1$ghXYnKZ?_yn;YttQgpc-GAE3@hXA-ozuk#@7 zsV~-eGkPZ+Eu$YtZ`j_LunSHFpw>hxkD8aK(_Obda-wyuabEhRH{oiF`?y&Dlx_`KiJZm4#W2Varx{;VcUVhR+yt~}U(2^px@b=N=g*Y$<|87a(J=$L54Ve^o;jjD zEko>bHage4RqZRPMQ<*%q0TCuXHLwCOSf731}(0x1(HRyr=I`)kQmywQ5AzyPH*lD zeTX$L#Et|<0J_i*Q!RQ5yqKiDC+qCp%@qLUUx;m8Zkv{cc^@B^=!Jxab_dn^6)3f} z6(%@K*fII0d_jj*5GGY}cp36mQQxcP0A-;0`*r!cJ6c9V$zGEiY?gILpPPkQK4*4Y zW9D!HmcwkeAv>S_SDhVRRMPW&ilPAx9|rxToJ^BmeAUi2jcc2Dx6n4(osq*mh`NYH zCq9k2pXN(n?mO;}P z*MsIs$k-@gYX#p=sr@o8`Xy)ntIb+UN}nibmtTG^t%^s0P%T&{9%#!ID>$JiY~&%M zDH>@!h57xS^ha`6>f$%e2%)aHk(@fP6i{PSmj|QhP;#$m>p>L{oXO{=xIRz27-V?u zx7UFTub+D$NF;7{eIu47w~Nk4nrJki9|ULwOqWT)2uqcl%rD ziw6OXv$YRiZ~e_rWW z;ri`R9r`Ifg~Dy!Ih}`PS~>34^wnS24FIfFP@9E?s$~cHW*^>4OHkUrB|SQ71AHGo zD)nIU+0c!ed;R%6iQL))UQze@mc{HLwcc`VvjiK~>j~l9pK3^ldl|#!_vOUX?rRc3 z1$Q0-A?etKZ2S-qPWzy^_Lg(@mBjvlB&5c0!1~6`5|GG@$_;;K0H-H&4Af0>dwE=pJmu0nGkTIQe zlb)G8U0i{x?3cMZzwQXR9IZd28l#9lRnl=v`j1q1yko8e20YwEShe-*KaBP0Rt8G0 z>{ZBJ5%eP_IE9S_iJ^nYo8EDYQ5z3N&3j*EJX`BhP4fk-l9qI*a@NcP9MmnaU*tOs zW|e~YAAhRZ@&$0EH;m}|qENoz3T4^rKcs`;jcD(eI^0U%!CVs&(n=&n&XNj;Z*(O< zX5B4ik|`-Rc<+w8Pzn8O-kSAoDTjntnThF44us4b*}kB_-&20V10kOVw|;tZ0jHP( zx>aupbAJ3#Hi(r2q~0|6rM%%%!tH+latX%^tLG!5U5#SbznHs}Rje>-y;;Tt{j7`2 z*{=^;)u5J5-Sj*_Ivd5mFn3Mv^ODD3&90xz1dlUqH~hkUvnbT2dOy%3?y@PFrwP)6 zU8L^#wtG`DeL~uD0FIY$4s`#A@s$2AN2 zXMf6EuN3unB=>t)0v~1-Q0^ij+Hxx=`Ii;QNJJ-mdBQeMvUF1aR))$7+{d0(-$1C| z-uC0nj z`g2s`_1uwbmV*Ag28sRax;1IT-KAb(;Wx5vzI>|-y(*!7FL|Bi!G|LrjJ8sK3&H+S z8j-*Fki)8hbRq}0dMzFw{l{fg z(zia*NG;~_rOCCbT3oeYiDgDs=#8ANQc`&wuDLMdsi1zbov%k(^vKJgiDzu*F1Z(o z^EReWtb|BsAI|w$YL0Z_NHATK1~Khux!~CrjAfb5vp$YSmQwD@d)30^l*HH8L--;c z@P!)h&$$WY_>`%BU9Hp&pRSqfvZ%Uw$@!ax3k`tBW#c^F4)NPO0}E2w+ULmSS}(KR zE`!&CxjhYq)-*9z?Z6bUU6E+&WcsbLVLcPSsu(d&C2kNTc&Z&*D7`zAjgjkCHjlnu zCt|fcnd+ACW=RtB{?(Ir&3fYXthxnhgVR|L`1}&R~Cn0Q2C4= zbxi_LEfP>+^*zb)5d8Y+#sqA%t2MOUqU{jFx} z?d5eD-*ATCZEK?O7Yq^i@p6ERPEI&5ii-qk0ov;Yg)kE z=XE&`^ZS~z$CC*569NG9q3)k$+&%E7${KiSH8QGQv|hBVLJ3?3SIp#n>bWeR|6-%A z*bJ!6^g$PsD!;a!*G&*gw~F;H%h41BibT;WoC0PSjG4D&Dub2q1V|Z=T&Yabq(=c=e}AjhrF-`g~*Ckb-LCriYY#r2u#^ z+PfAf0=_18Gjo9#<0Whna`_$S?%&}mOPvo_)BA!&9Z`B5u$*Y)+hjqYLz1>W@5pU% zRbK4{!QG0lqfnbD7LLqf=5ouPE5aaLbZ_WpVWrbB0IGC-^TC_82Fy7!=XhA9c&nb#=+!IXb32tg}q z!-Fqg6rWTax`DfhwiCC-?3^n!e5&1duc*u-cC+_pJIQKMxz6)zd4oj5|ir5J>)xfQ3EYdUSY|Kl?;amhT^Ua z*tpnSuuiZPY%9GW3ox>UR=g?izWdczS}>y>FTCm|6r$6aYVjLnVcGE1O`4c+CAQxRL9KzDcI^RIOM^**H$akwv^)k)-|m_5BE$IQx-cL}Pe!hYdt7^;Nmy zP$?iW2z|S(Y<5uaeuJ|L{-hM%Ne{b-7~O-0nY z+x^P*(6arSJMKo|;UhKW+I^uKc72E@HI0Fu_~gCw zod-vktrUwK8r(j96KXaRExuaF*~obhS16yR(Jr=X%f_|xDqgy<;BlNjm+5_5aStg8 zpfu|cQ2#EQm!_ShK+H;JXgr&PMA}=l_Cd)c&o3}>#F6gE9Sfvh1!2K zb@b6LkF%UVNr@Demt(|krs7!z&vLvRu#!zco9ZTf>owQ&xR5l9cg!o#NE4`0jdQUn z($6=K_jey;Dzekb#2S4_nXK*PdRO;cd{S<8kb@DLTbe*lS>{kydOcgU+*BdM zTjA6Fvu)Rmr;OZd{W6pVCF;rzRwh#$@36X<+?KOyavktf;czKTe`&nAg1H!eyDqlN zF6=gU*6!1RP>Gjhvtah341bG+@}X-$gQ7C=^_vM6b)rc`Al!w!aPYgdbEYk`6~>fV z9jLwf7VD^|!}=8)>%I{n`98(){JFo2vO?~S!ER5tyxTrD0OyMgxwAdSdvhj?ap_t^ zR;F%#?r9g3<0N}Zbwh$KGwan!-V{=90|>m(@0(lI^tH6M(^S!uu>3LYstR{cc29xo zDQae%uOF`n_@p7XBJCYgC_C$xbmyHmGiP0);DAxeR{52VTkZxJ`2n*U|Fo;kqStJH zpBdFG=XEYJDvJPGT=?%n6ej--piDRAH(O`iw`I$frI4@nM({r)>un;A;)+*O>tWo< z!51=YZxt468BTshS)N+6x6fQE&1;v zyUMAF2pND&S809?c9m5(Q%-E{#&7YOKexJG319AcfW06chn9C_<>KHp)OSm^s964S z%T3>0yW10B>6-&a54+v}sC~0t-;7D@&Nz?k{j^%2ES_po*@fDwZ-wKMVNF)Tc2fmW zX269v4x#1AEzba6=t3ZC_m#&F6iX9W&Q&<)n)wrrn=`(7){A_#vH0}t9&`DouC}aV zsg_i{rvy*3#Ypv2)TN*IFmK~RxwPqp+_B{@xYeA`(^K*_mwfS3texrqW8li;lFHif zEbV2xmRe0^TB(e=pp`kLmYGVK3koEq;sOYcS(wn|jHYEuW+o;il?y3?3u}gq)8dL~ zid+>0r%WvoncVoy#E<{)@5klb_q^v>-t%Y&cR|nFnRs$ozptqQoSt=+1aZS3Us<-ux9>V=o+_vxWk*kU}=BM4q!nxiLMw#}Z z(fR9IH!Ep&S?=NQ7OOt`r2VP+)@ul%!PFBmwv2IcoZS=Ek1fAbZ8I>-CVUv9113B&gJ zfMas5gdYo!U2k!!tPn&c9D6-camwll)90t)AA{@;ndF+4xTx2XgU{6LzUXUT4lR@<%SdvMS9F z2#z;Tin~g-Fxh+mGn8-kSN^W+UVfpcm4U>b{0Fgl<=)S>Ct(jf?oi^2j;-smr}!wj zE6#IKkMFW$UQVM9G%|lqhsCb9`4`2^wOBv5k@9C(OT7>qC=R&fbm_u{G5^$bMGtf zK6K64`w(N-95FX^FY2J<-g2|Y7*R=Eb??aC-Na2_8Q!g$j~%qTuiH4)++`7yj$Ik@hmDp}+ID}uBf@*o$CF55nT*b6QXjeT{) z^SWZ+eu3+?HRXY_YfAcK^U|4ICLmpz=WYT2bss%g3BtsuJ^p^%|9i}9Nd4P0rlv0w)JVW!Yd%< zy%|LAcdWm>DxiXZcys%trec~Eyu#OaXZpF~XWkDE=iDD)+Hy?`bDY)}%JC@=Y*wy) z50k(9yysIO`EH7ZZGphkrrPt!8VkwQ5NwQvIbZCG{m~?dywZJwuwU^ooVqUN_NU5i z?U5yC<)IUNYxknJ z4IT!tGyI<``q+IwJYVwJ-&HOAk33=g)_;_OyKJ9>l8s~u@Yy zhv#OUOX28kMjvu@W99L6hmUTL&ir_~6NBR5AJp3)!<2-a;!nBcxGVj(e zRvz$}{{&NhKI-D_GS17_%<`%Sqkdh4kP6dSxevJlFcnnuG3Ftynzv_MOkxsr?v9na@Ve z0_EwaHSg{xpz1&VySHF&BYB_ceLlgyD!|uzb?a5xDL6bVl4E64=kyY>UVvXC%lx+^ zJ)Vi*XeP{c2=|4OeM!|;r=2vfe5V_n{!CUeo$j3it;V0f$ZUAY`N?VJD^sIBr2ChH zXF}mGa4W+ft|Q-Gg+8*S?7Hxu&Fy8C@3&{SyOLdS-_D|Xm`T=4858Wl=4Vef-!Ym$ zmhsg6)zdMrkoK*RGu3=+X)hzx`Fq2FuT70@A%DX|`wXHbV{fRbZTzdy>hy`(blJ&6 zrQuZ%64u6NyWC}#{-X%7{q$<%&+OV^_atmgWe&gun40bj-fJ4V7%=!FWf$6+CsuQKNHWZ{}jRry<4|kWI<2a1p0ywW}dulaW7$MpY7z0o^n<6 zIo_G1go+!a)gP~fZVfo{dg8tidlCGosAzxuYm zN$_8{P*%E^-{EV~?zMAY!xnGhACo!oN+;_ZXEguXl=y{QDd%xPnj8Kuii?i>xKxJM z<8ofb8o3wfUfmD2gIhvIe1GzO|HYz!QFx^d^ez}|Ewqw<{)HMPP<155{Iz3XTVHRC z{l3Z-V?_IMk}G?ntYFBlU*4$&p0>r;LG6Kslbv9bH*NW6__ETH{eQJrdgZf9tC%b0%n*6u zY0u7@i2ZQ57FF3-StVnJ-0n+?alI;AyBF?8X5`e}EIHisDj?AQ!0~hbe|i^o_#TNW z{g-?6pZnG^r*myn*H=dLANsj!U6QSv`r|(9xB;ic$u!L?v}1%`c` zvu$1a&R*}^p9DK#w;lIN&1&~S_f0&2y-1RUS9u3l5vsP^F^96UYMNalf~$UL_Im9b z+PuO{f(x|F-*dR;E(3Y0laiaiA|iP2&d7bYD~=zpfA+9%9qXsiT^9aF_9tV{%mKH1 zucMz_yk}8%JoIAlY5!-Y=QH+g4=c5PbW(YMXJf+lis55J@&Du){jp=9gwS*0XV@dS zOXsXN%=dE6TeDuifxFp$&uD(SlF|{h{LdTz>fC#NyHI!G6BSkeoZsN|eB)nMg@G3E zdqBiC!{dNM*OKzvR#YnonR{QHx8&!0hV-I*|3Jg4uV!W4^JD&OX8YV?^U*iey`^4_ zjMwG&;Z=VQRU~yq)%$>AE$=fqKWrq+egwP%6m5Y)o3G`Bg#A#+S~XNjo?O!#1+(pi zorSJEpJ8WIoZd7Xl4!jty-NT(`CKvo+jv~2auKYp6+Q-7%IyzM8?AqK_1@>ym}&_73Q(*1zXfN_V*c* z$3#_`o%eq21*t|}0jADufXHn!DrLPt9QqS+;B48SD<5J${y@2nsoYDk|vHjs}P&S;O&CFldmt#NqZgT^vcc*Ku9tJH|J~SK)WohH@LW zm&eT5b#LVxUjcl_KPs5D%-tnhmt8jZJi=QE)JgmsUiSXc+{%7?cCXl zhn4A}gUXPr_aYI0c0tf0v;H&8=w1HgBc{e7B)fg4#~z1A8a&aVg{2fw=yA^el<*Z< zfsQ6ShW@>`w+z4OGxS&HsqGhiq~%^y_pXIxXRk12Ts;sU%)EBM_Wffpw*5huVIQW! zGvff&^Cwy6pZ^^&H#K>`+Y^=>@+jRCtGZ$Tq)5f#?IhE$yjC08(gt30>J zR_%2PTob$<;kXu8cyjyKywDia13#CB6tbYcWg(br|L!pl^}Dkw$o>^7q$WUwn6zoY+pz+AWbg+(X_)l<5v{qT`36ooB& zAZahOI<^#Zpw7Z{)pN##Q_}6Vu^u`5GIxgZ9*!_EnV;4KemG?1>Enk!<5(XRbceT< za@%^n6Hy@V4?kyk|Q)q_nEhq#kAJ zX%}dHmj5$3bR~S-`a<3c^F!%=rEQRrEI;TzE9%2nL3S6pPUv9Mi-~vIHZ!5jT`=Y| zM5HIA(*94LR`5Is0uLqI!Z=&P58DP-SzK{PJh{gxeHWE(PpSHI4J{DMW|m%6Xe%dH zUWz>Zvtt6{*hGAeHIo@mw!e4U4;-}0)X#R%o@3w64Ee;v2m+Wt_A-M?7%oRQCz6F{ z9N%2?2j%aZKAqWTXM^kTU6I@SXrO&>U{3IDxUFMYg?p&gpNF@uY4Cc82)g%v4Jz|I z$~N;Hs}#z5?)2}q-FNfRf$a2X>tDZS25-M`AVa`*k{q>obZ%cJzmO^SI_Pcvm#EVA zt{}ZFbLXk5$G?Wu*D=$X$4yNHA?GT#m>n#Px2{S%RB;4mbq`)-GH~%;K~dlUovpCV zp}{hOKeX-tweVCH9_@Xt(aGtY_DmN34?F(*-nQ~mim)!jg1jR9fdFG%V4tX8&3r*; zO!xkEvvhy8r6i)KBMLuy^kq2Nnp|GFLAZ)g?)BOaot^*fPG+AI+V8ggE|yc!sYlQJ zrhF~VQ8%os(2o6ZKh!$3zSQEcLz%eqVJmyqF)>kVc#5xrQbnwioM?E>&=No*+b4~E+i?rhr zVQ1Fdv&ukuR{L!atVmx`NqOhncK4)W=X_nDr=4l-%A-zqPaZvt$=`5MSu@nq26wN- zJYf`8Fth%P+qrf#$YvlrcwaB@@QdKu$lCnFg#o!t=+?^0M<9?1w_<{M^r)G2e4woF z-Z@03Yp7+>x>JD{+e;mT?0TTvf%1BmP0gxvpxf!$!E(#WLiicp3Wd$1BjsyeQ2hG0 zKe)7Z?Joc0KU&!uF7h-#IHtLzL!YH9a3`wsotUR;0-p!jHEgy1(>i{wX~lD+z*?Fw zZ)*#A9$N9-%jaQse|pe^70p3l&)krn-KS}cKhH#F+O4y-s0uoi2K_fYegFDM)3Tk_ z&sS_Vd-u-x*wIJO1@H5r4X0qiK%pP#$4n*fYSs_7p_x9uKHpX!!>wiC?oU93ggj?H zV?yAEI3cH+HUDj5Do)<3uEbPdY2=haAMOj>7hin}ao~`XknW%%9e*K2(^WF5B-HTvZl$%*E^sb&ZMd z&Z_3;L7^8z`qBc=oT>Q9hZ9nqw&6W=X#Ry7+X!@ZDKE?(;f>PCQ#hAHIMV5=hGBRB5V!yEME+qieX|HM;gik{+HI24uz7O$|@!(Dhp2 zyY?x`BSQRLGufgZ=Da{Gb4X)^m})&nm?q58PpMzgTQAqH_89q3-))HHEX^rS^!qQ- zrV5qrxY@SoaU@7W;lYIJDK*!I=&5SDegT^{51iKxw<|s-)@HnjWg(TLs;L-C ztqK>QqA!V47y>wCv8f*sJFz59NK-%QKd+hVd18n;CQ55<8gfS%u8WHS@#5K>wfwPED>z?fbYCK~XWg=~(k|5T8+9!dRg)K?MB`y0&;;s(plBK(Z zr<^iG#E#HYG(@5>C9Zo|CO`^Rc+Q}|9v?uc4V!Fn7atZPk-f66CO{j31ilY;A@zOg zrzT|!Gu>K&VfQRyNu%jd*e1%z?yy-q@0AWP>p7cUIVaxzr*-Q{vJcd7LjxQt@0zbq_%*sTrJ_@6tpFBu!Q_I#q5zaS^NFG^G*m@JS#| z8IhoC{60*B601|XMb0!T?#>pC08R?C6g#V`4~kTR*$YeDHcI1L4I?d0tWTro5)!rF zgB`~&i&KPJori&VUae&q0}cS9Sd=zV@?{vvmb))22%;3dT3Vl$_FY3XW)-|VMt^}{ zHc$j9X*!iLime}|v(a}Cb9zWqlPa-NQPA1zL2r4Avxf`iipjjl$=J3@;{3tIFy-*T z?fzx-@>ad^&bMa*gHe3=Zkh_oXDiK;HZin`VgoYK7P%x+66f7`T%n<{K|NHE57L)w z2_(EI27!<_k-k~ZJcvNlN-t}k3Pw(-H0%aoGJivlIBZf~y?C&DSe;snnFDToI7Zdfj3WwnEQ%m{*4&WHML2=$ z$Le&3dRl(7_MCd^I?m&o1Dy+Sa>Kp}*BMlJY@d5Q_?6J!zjk{06>iia!F16Q8& zO0d;~#cC;5NOYqhwe&PO{G&M>X~kDcMu)qe&KV2~3tbpqbEo-u46Z-A6)*^(OqyNw$tYG(C%~=_iastl*X$s3F_1n_+rEj}*q>#SKJ|I(vcMYV3zo z!!`62R}qQF$1D%I_wgG0mzSC*E{lYSMp2xoc=pMMZ)a;?3O~_P+)#;qI8j>lo#~p! z0l4&?ShdYHZiLgHq6`7BvYNOwof>;xRIkb@46~e`&>9Tlpq#YU560CKYxpD_3WY-h z7?CQO@OF{Jbz;MO6W~00^*A_2=n4#DB}AMmr>IFdL)eCZXqL~<$?(o``fx%r?WsOC6BtuVyEFzBPz)l-ny4<1OF$ac zoX)UYt2%H&GG*?DZGI0-$qn?1q!BHL-#E2fEru>bhh8qlix(OmNrfs2W;Rczz&vrQ zC&7-=hTRY%+=Aem<@AtqW`lOO*iygEq4hu1GKyRjbm~}mx9~6# z60JWb#u^Y38F$_Oq?%~&?s+ur9X~Ue7>AUqwSCl<7Knv zRVm5BJL40-h&m_3XV7|LZPU{FiQ$rd$yJgvU;V3iR9X@Du=C?^$(KS>s(!C5N4dBt z)S#C{DO%O=@(6T*ESNFV%BOHe@!fpG?h`oh7e2CGG~c`EY>pdWtV`~upq9tyc};Gu zykZx@r`V5&@5X$WY8vKhheT;2WY&L|bo7Zq3?Z8h?yQ#!xT<)?Gc(riJks=#tm}6R zQYrt)JLqB~UemH}sh|)nji{w5xCeTzWB~qVkEriBYWIaYozhF!RBn$fY>sJAHGTWW!~1L zws~=e(ZGgMUVz33PgOaoLdr_>tTVB39{pJM=&1f`fMMwiUu9Db5Z|HdR4>7LBd27xx=gvr3`E3f1?TK! zyzn&Qa+g#gem*`stt0NjEppF@XA}!5!lF5YdIUpjO2f5w(Pi7n$CkbNbNO4`qWNu*8DwJumVfd4;#^oMjnk#okf=eC{U++$F$8m}j z7_LS|&;@L2o+4+_RMka`FI1=xkVseq%$2x^Q1TR0z|Q&m4N;0N?(`HIHdpHyIj$N+ zn)K6I>Lm$g&fuzQDjenCD^>+36PEWF0~;Nbss#Km&`sPLHz}J9o8yhC(gi0G;v@RD zUz8_`$h)!qO_>n|YQog;BG#RxO-R$SuZ!a5qS%6lI~_>wEPfDFt;Khi6?5d-^Pnb2<~Jk z%0pPPhlsn11$e5y|E9EElHah*FRd~-tGEjRjn%MJ+bBuh#bTFrV)|!vBrJX)RWyGd zi+9jmcbFZ*ej|y}(ySy-;pV`3uAwjnFJk+6I{+5^h{Tudvji;e%Ljr|Jdc4qRzA`u zrq(vSXap?Ops7g3rpVQj8B!W;4vm`hQ5tgjq`2bAJsY+*a!AB;dHnYZah8f@kC^KU zFsQ`M9Vy20=|k<5NS)YPMFF6W@c#?8K^m=!9UE;03mFa@TMhsS@>}rE|zbexAFUuxo{#EmZ+c3ALfb|8y5n(<| zdD%hN-AmNfx`pH^>C@MU?#gc@je)IVi?Qr_bt)Kex4;g`++CNXcf%}&>S{W%%B@`> z!*3Yel|h5J=hDV)Y`BI5;<=oqx&e=7VyZSPe$2ukS9B?kOB7<#cM%cC*8HNSM?CX z#RLAGUEjiRTKbguBoe2>(}7f*f%D4edc0WqG7~LJ-L*`ZepxZ-v0`NYUP@YGxKFZ} z1O?~?&6C}XqNJJO?pH$0z!aZ`5T|rq)A6Hy#C?r#1u7}rC_dckOU5gy41k>`n?nv1 zj|-ILyAk;6{y2^O1#N^!+#DRpQ7eqR-9_&sJR97JiJv1Ds~dy}-U&=&yxz$UA@1#U z&>oGIh=Yc+-T?AmLb^+~uU@l1Lq-9aS&V^!@a5wi;Jo0yELH zR;K{J@6jt37T!-Rn2Sn0;L2h9rQjT`g4jxE;c;&qxG+7XGNDqRB5WK)ne}xeXO!*O zw;p|CuKN2`LYsxK)Ta~y$4EP-XXDQ$cVFVRR13b3`y)hSDUB|YUU%9gfm_H&0#PVA z&3Zj>YZh~gRpK}@C1zLZK*r^SQcQ$-Lf z!)_5MM>(&zS&nYWGv1RHD5tq|d1XcDWUPH8Sb)g#xgexZ!H8e9_71IBVcuRHfz*%0 zk%5V02zLHB(M^v$m-v~lgkS{-hcqRAdBVn{aYEaTu@qN>bX-H|VhRg@PDfR{ip^YO z4D-Od4%|+;ESJScX7+!b0@u=tn)K@m5~7AqY{_Uy)tfgsin|)8V2z_=fW6L1m(XE1 zT!d6;)Ez^})E%)Zx>7v%(Fk}U-Au4(&Y}F`Vu~GaZWq1jtjGh^iqNN*C@qC2+;V&X zkH%ajF7=`T!v7_Q-;{p5~uDew0@l9`PM zZgr|gm)}sNhJQ$?m8-vgnmi|1rh)W{F?cTU_3APb3=t)0LWi8CzjatRzhWCYan)Q9iSGy%qZWP@^9xKDQzo=oC0`;C zdrGuEBVS@0m4ga2g$)s=IJjsMk|!fjYIBH(yB!NM>%=ym4}+D!1~64igh8>;gx033 ziKz|z6q|$)mRo~r=NGp8+J$H~5+PzoEdNhwM`K-7OMB_c;WFIWX(Gp7Aq^iwxHCYE zI;ALO60lQGz)G|Y`LJ0$TX7H|2v}8d@&~TChBRX*s?ZBBFHgntp!43?r(t*Rqs^6 zcv}!^SxQC;nwrvrb3&uW0Oy#$jlzaFKq0EP=Wy(ajIjiWJAF(E6*2&Ajn#F~X6 zxPz#>L(Mla6Dnh^ZPaY!at%Zzq}iZ!AGLXDX@gFP@zMETwZp2qnK7RwEDs4Rb!tBOI+o>1=p%}UkPT^|Vw_5;vapk( zAZ0H=@30TmHAsXQKSP2KD4w1rk~^n9@WfMvS~x9qkAD7OVoGh%yo>ry-?y`9r2a@f zaR|y))kr;FzZ%4XaBKi$g?qqH@OVm}dRq70h^2I0BQ`$OFANoNUHIC?o`B_h%A+mz zaH8k~1(pgE^_L;u0@6yz3DC!emFCKt(H?a%*D|g$tosnDDy>8{R)P*lvrNDk8nef{ zf$s@y6?I&Jg@^%OOpG4>_B;YMf8JS}2vM@Qd*)i^o{SDRW8t`Kv1S6SV=IC^K;7fi zPlUwliQ~_A7wix>zM=ky8K~)><&Y*0dx+RHSasUyv27v{oB)h;R-2>`Y+UakoJ39* zfQSTtS84bA_(_V82i4K(_rnnv`bZn+dYTZ(!Eg-Sc^kVyc$((y3N8e79#lST+|8PK!<(g&J~zPPw>b0HN)bV| zMbX{^Y<4W%1I%NSL@7J9Na7ePW=MwDs;AH>a1*VCaZU|#u6Qw8STt;>1TEwDA>$-2 zNMT{o3_;6p;;VRjesM4B`OX5HKs0EfnZs;(G2f}WQ6Zj%!(+kS();@g__P5YrK zSgk5}rUXe2SD1;T+a#>$Rz;~Grc0veih8$gNP!0wa|xc3~EF(lwaS#u|Y-wZ8esC7N&Hh#73A4?em^jU zbeQc8W{_>FQ}qu=;~mCEV2^Jdk$IIrKkKUS@Rpfep#2-mCdmkN00$#hI)&?06MXqm z@uzx>Ad5vxjjNXfY+;%9og}{2f;i(wd9kN=5-!L;0TLNg_M1KEwB;u;{jM?8IwKn? zliP6p)vx+}rp<P5k=iNznrp)|?F8Gr`siUk^`riPADn056#x7g5XT2}s5nU!xHH z-ap#loV5XjZ61n+D{)^`6ER;|(B#F0%E3qMBmbklLD0-3T|)}g+t%<7yo2K)E?&RO z7+%nPw|)91H@1J`a&K&5{q6$kud>oF+8ZG9e*^p!|4rnXDEAv(Jg$HnaiJ4VK;)#r zaZ}o9Jb8||5d^H0ouz=VZUL~FKMHjO#+Gfsd)`Xy!W0xi&>YJMQ*c}c1}7jAJgSar zmh;+6GA5Wcs5`zVe0{Wooqc8#)dic-aYZ_a??;*sPVy`o$AG%5Tsho}#n1gr{*M|p zN97&XJf}354?Wsx`(q|(uiAmst>+#?X)==i-XSDt!1k3RgyC8;3!us zFd9K;vR$l*kzkX`2ZnOn5~{>DV^lWj)=TsJ!ChE?q`qrbu^n4HGy6H#$ahEN6R!2_ zgJ`l(qp}TWf?!Wi*PO-bqayp%B_^vxFzwi7vVvfay|X6{34LlVZU5bQ=UhBa+STP0 zYip@Vz!t&85!w;7tc^oGhkd2rUwnhEcpe#}Ai&;kfUtZTRgdHd!2PatxXFxS%FQB> z8dN6=`Fz#7+PN;<<#^b(4E5YQtl`FNw5Z_=TE!iDz(%_xaB(JJBu174yl`VmsWcM7 zaVS|y#m0LCQ`ikV#7HK;ePZ`apNI4vch=Sdf?$Kf;g)RjWb{b^zB83`Op7+k3mUab ziE$+INp52i6hNcCY2nE3=A;}=EDo?zJP}vSVLYlJBEAt|h-sbkahi4>0w-!262(}+ z$YEu1J*{w=y_AiljjDeKL|}(=*vY)J&c$4qP)T{}9^HkYd{9qRNO9ZdJ}!}6SjC?& zN?zu_0JG<)913_L*M{IMY0v+xJXcRoLpD{qa{ofH5f;JHI7$CT=p(c56+g3|@ z%2(jAI8U)4n^j2OD>maAKlF~iUDyW)S>*Y0LV}A(l|e~>@meq%*R}uvo|8*(umdEs zk)rlPjY&u|cF}HS{Q%EN?<97Kv?z{2v)M_s(f=k?9wHb5Q;qfq-i;w=oEz()>nT0K zzhKc*pg6!?(#9Its)LeZ;F6o^l(mRO?qR~Fd+(| zSV^3Fo1uDVgT`_mlR(i@slud1Jc*2tx&>pw>VaKIoY2}zqHiDKJdg3$vycgHHX}=p z)z5Q}&5-odf7CajQR%E7WOM<54-Y_cC(*KTHatN&0PRKoVwPr zUzXtJmB)jPZ5nZv62xbc2S9o4ebdxQMt1#O(C`&%vv{{y4*b_3-6}4Di8Ya+lf1>a z+}lX*NuH~rnyqwdU;p*mG7pc9!iWj9!lyJH{+2wx)y}fFWo#BcoeWP+#&V}pe<=pp z*ah2!V@)vj39TozJ7b9V!73m@E66xYjzC1$lid5v=-j&4o@%}tOw@J%E>q+v-^qp= zxd<7d@tsdSx9V8Ni*EParhY>0MenC{V)fiKo=ua&Xf#hwg{z(JorH(9M+m&A2}6^K z2t6ioiTnXL;rInKce^4_#gY@Eh~zzK+~*sL3)K$1JSZ&&9E?MMi`3Bnm-07v$QwH$ zx6^DX*jb#|stCT|qwP0(6UuL4<^`^8P%J}@fe(n_^yp-w8qEr;C6)He$YBnD;0N$R zacKmbCRs?}xVw`! zwK3QOnuS#H<0>>2ES&5NFqhl~KcB-BGF0)^=m7{8RJ%n-bW9e{WM5F?Akk0lIn6Dj z$2OTq5#`S;Fg z!_EzMz&O&K%Ni_RsgM3m7H%f`(tNfyRtWS`+NU2vAQ_owuy;q@@oZdGD=&g(p@vA@ zy0zDxW%#v9sjz-v4k`{n{Dy6d|L=_-q9Cj^u3j;OGB-gAT}Q!g#exU=)cehK328Ul z4*Fc^toJF9Ur}_8y^mdJupbKG0vM=9{w^y1mOzfd+C|=)GAcUs3Zs6vT~krKd?ij? z(&Nnv|vm zHUnDw<+`PPJ*S5?c9SbWLf^Z#R_be#W+cVe6Z-*pT%ysXpWK}jAaQ?-m$Yrh4n70i z3o6!f9~6Jv&Wc&M~I~#C8>(fFtHm#4Rj{#C`%stZ2PCTTf{hfloSH zc@sR|5Ogh^?;8==RJBQ5%$uB>mvix0du<_Fq&9r^Xm=0C zVOTGCu5k9!jovA8w1gjqXr*_y!}Gw;J4bG@z-Cq-s*2>f+$5w80%QRiQEzvUJZcYz z=yFTW5~8ym73@|xTW$fQgT<%0^9CP^Jb>Ou-z;&*itSrveb|L=7N2LLBE*8Q;<17~ zwJuR)WKtrG(_EdEOR__NWq^GEksLp1EJH66dZHvUdyC=vrXDKe`CJDafLji^uv4(0 zvISQoL6L0WBb|oP4?iShd5t%X-d#m&bqpDyGmbdmxdeI(`?Z2cQ^FC=iZ;c4ba`Yk z(x1JD1sLfaOwo5kCHOd)T?7z|=tw#u08&siEQO1TT6n59&P{}%1;eW7e57@CQ#)$2 za_Q6QU!woR^L(7b7x4LV*$V@lQxqx!Q zJoI?0MWz3u%fx7w+&C(cCrwkMfU7MxX%}<>QN&(R!<+?|XhD5x?lMNAK}gtKbT5(B`I%lGcQ!9& zsZ|(D-O$4wdXMc@g2QzI(*&II41KEJmHnO(^YtkG=AD~Gp;(?H6<>_RJ^^jZCE5Fv zcBtn7Tr+ZrriyCS#BQN6?r_Wdqp+Ke|EmDzp8ER*s;(mq-`aFi9Q(KDiIRQ*BlRVU zz~5$#r)FH_V14E^)Q9V$yR!fo-HC>~0w0;c0)$1c!SP+=5PHVW;`Z)6A8+iVV}b=F z5qMtM?_vgNdo!JGGqcgC<#krZ!2fe`L-qP7=M-M=t~}6Es>b8&hf_8P+0FPi-9E-b z!%Mv#mK^&M%%Xt*=zkl>a7w0!-~b2P=^(!49+Q zWB@Ln6;bPHLxJ7;wYbh23!RC8NJ`D2-k(*ET{-VtCn@S6%G@uKo$R>|3{(K1&=50c zHa|R=s~o%YZ-j&=zgg5EoZ^q1d0z(u;j0&lNEXD=Li+nQLfy_$cJq_DKH>zQw9hEj z>rlO}s2B<;xGZynVv0Z6vKOBKOJv`)EKbq3vs=IH)1Y}1sz%y5?*zvjsI8&11CWS!WU32y7TVN(M2D zj?HYrmoXrCtQeZm6HNL*d;-!QW>nRi#oiH6*~AB~X4ObSEt>=d*359}4JEoLMDV+^ zSb|c@1i2~(#Q~C`_aEh1jD_OY7S(wwr~`01(ep%@0fzb5F7@Y_D%1I)0(DPrmJ{o` zpp(-r{kF^bqa5gaV^&7lQT>9Jv<#H8Ir6~86mFl3nTMC4@s+szjs;RT%PAut!p0BM4#3q-@hj?qyT3h-$MNMzq1;SpsEAF=pm7B8)(bF?$uvl~sENU*^?POxDU=cO_rq_yoV?o{z z4xW6=ib-`Z&Sfnuq1~J~UL^Hf&zY13 zbh@oC+k*qMc5AnhTE+ae&vAGm3=8qRuuXxP9TQ9^v(cZUi?6^C`X?_;GXlbM`k}eR z=P%@DQJi)|G_Dkli)*%bZI0Kty5AKmJwS`6o$&+i=5`qX>ej(wSh9Ebx1m_4r*dLF ztJ6($R+gpW4Tx`&+_`wf#M>A7f`Y)mRoYe6Ff~UG-{~$`c452zUWA3v~XOn5m3&(<#dm6THr*Xs!=m{ zNz(FF!F#|Pr+{akCKD{7G7rW5dK;AZ{Wc0|#NNlB=7RuP3Q6vd8RX9M&LFE)J81wr zmTFO8dSUt{jB7JF|8P*1JIb82zML}u` z^T!7|cysk=xx~dEp?4a}ZFqhzV_(2;3oInpA}e4TV{k^0RTg9+5bKMztPUF6^P5FfJ*xPrq!zH4D)`E5(8G+wqB*RdHYg%$ z&Zwbu`xLzPaLQq*>}CJ!qg>?T4WiULbbAVny>KS_98Cw4FpBJJXHmYEoNP3P8YOco zIFkzyPVzcChSbGhD&)X#7SURx;ltNbGUqIQBd(M11a*0%%A3)|9Q)d1Kp&CZ0f{dhRxR z$A`i{u81=8!~ALIEEj5^&iFF*yC{e*aj=&t_m(6(I}W)FHyjKW029rJWEn~$q)f|I zDA*McpIpH-Dl_Z?G(hCmdm150cRh*NHs<=2!w1q!U`qpi7JRT+W#qf_rE0X|9||4 zS6NPNIX4nonNhSYFhS5cOW$TuO<3F799){oQScI7x@>mP@7n_%5D!rZ=rT2FO)x;9 zoT+cm5TYV^sc8AyQmm=jv=gQBy*~c{w~Om~J|54<{qT4^D96&fAJ!J$E`K)6Qz4do z93Nf3@oMPttBq=gRV~)s&?2G`T)s&$JSTi4vF&b*VWkN;h$pG)Bk^|WTEb$=I3#akyF2bPXouGolP^{#<) zw;oke&rqtaaraFn3Y%`7B@)Mw*TH(cHMdtqivwfFH&~gkm@f~+W2m6+NTNof-6C~S z{{DQkN}MKEaN;Z!v5w=@@5t>-u`1%?k&cwC%hHZr21QcAivtVX={lov@s|*|ye7~0 ze91DT<_*7|E&GY$(LB8TY24!~xNlv=kgLi((VJH)Le=@##IMr121NZnfI&l20smFy=1B*ORF3%AdORFB*U>Frt^>FyIa4rFXtTK zY8?%S(ECvK2M8*;KHH$bB_nq-nQ0xjzrX!yvUx*x&ty+B;ZWnXUj@niDwmdG&8lb6 zDY0ii=~H+=7;sQ|GxPa2}GK8##wgWY>}o>`|l} zi7g%2Mt$KKoSxQsYu>2mzIoW(z21l^Iy>$A7)Pr-Aa#8H_jZ#aNsCp%c1(>b_22gG zk=tq<$jc6XCkVr83qz#MY4Dbi*&^xdh8 zJx0D+F0Rv_8y~{NHDWJPr$0X3c;!H0$XE@IiYcJ$LUGoC?#uIfaeM&p;`OH2tmT|I4H0$17@@{)foc-Qi*~POKHUSl;vJ{G8Mm_ z&2FV4&`>b{P0mgCjU&%K?LGBJrIhJvsP-k$coIr}sGO!Iv7=c!={$nG)O^Vni?O4s zRJ)?e4P?8b=`TB>r_Gi&Tgc7hKn2_b@%2}ZpM%)0Os zEHhH$dAmh?JR7Og7q(xfk1>-S?*Fg5gN@j|^ho~SXX`Ksy{DhbI9g(|Tb9=LTfzbTdHW1rYq0UXue#vuoNuPlG03iR#md_dkdIPQHLQnaI13OMmMgd z3a?$d-;s9g$rj7623~%o4sbU6&)bKf9lu7QJX+XVQ*g51K9bH8krlsa%l`z*Y+Vw- ze5%ydh27U7S)Ku;XRHI!&g-<-$nMNhcI7VTn~nlXz?njB`yl6}?1%Yn;kcv6j&|~m z_A{g@dO-UCz5qQUz8mF7bx2eqAL@uM$pei?S z2gQ)-T*V|qP4YpAHIB%5YwidJBWl_O96b{qs$Od+r{wg9k@GL=FCW{vo_Z9#Xaw4X z7*<%`=~}+jo4-0TS|2E$-r_BhrGv~edXJU)kOD2!8q>UiTGIL~4MxOA`KSZ)Jrz5l zGcP@RwnIY{$!RZfbs2}+;!iKK4Ph;ASt0%b*71P3csAuC&U)HJkaM=z<2wM+$yttm zxmeBDVA*;ssN;sE*cCL|6XRO7ZEkr+)t5$0851Oaf>nJ z<#R(w8Y^WrlOG`6dF*|Ob5Q>v{Kr4eAuJ{!F}dq`Edv%4EIOXFDt_t|v|O^s?E*Tm zUP=Q>|44rwWhF3R)&>z{e_?k8GEV5nN?OYyMjjW18A*2ZAbwRP5Hb8RAlr{bz#iN>XYyq8R! z(uh)c8fgLCYNIy^-w4hhuOQOz+%{mO+?&q=YZ*5$uoOFIclua0$~uE0x`LQr!BL0y z$DFYxU2VEsq|g=^EU5S)| zpEkVQ-?$llif>x0Yjx^DNV8<{GeL zqx45i^Y;25Z~w^43BqDst*EX;G?gcJ0tH~Axbs|Kw1f!twZF75yA+CrnpY`yl))vp z=?_vcJOtK%#lHng!%Vs$1x9kolVu~MsBHRRecwm<=SEDFGgrh|wQWe6s{fTVU&~=K zF1ec6`#6H3>mg1B=gmKl$nr<$DtwvN(}La!Z+Pm&aJ+csCsCr8v4cYL{)eMThX}4v zjJGSzvqXjP!$^C!VT6#*p{Gz9SxmvYCDFJ^AGwEa|Ms)88;7fD42&f=6s2&WTGq!J z^*tRZM~mz%L3Pk?Y0|zu-lC(>YDp`+ePZcaFH}nX*aM|hn<7*hTw^)e-SK#mHAP?p zNtUaw76-u~#86o3Ksf^D0Uc`ja+)gA@<0hW9{B(8#pPPdC%$Tuq|7k>Ar`3{Pkv?7 zd4hRGK-*S{>ZkErbSXBmm9d%`4R&l}8Rm9^`y1mx{cX>BYb8m1`ix^ok!t$Upd%&4 z#DfkmYYuuDi!`z>(A~WON?EvYyM%5aF>^w9cRJLbl9fHX_h@M>4lJ8(1lfyKpnN)6 zmKq4Y(_+w3r-gh-9<0{t=j!hJSL2hTZjk1k5$d0S_xkRik7k8vm#RATSxZ*Jb@5-EcjksH$yDpYy@>kEBNU zAnjvn<3flpy%=37TSx9uErazVK=Z(9{9!D_|_;w&KVE zRE%{X5wwbXOnT!~1mS5epK3P&-VPu8AUq+=O+r4j#0eh}ctc-*ZJ!L^KBducqPc+8 zt(X*%lFvChQi7?ozqv3W*=iVJKZGSCC7-d}o6=0BA?O-aotpITqWHxPS9tSu^Pq?N zJBSFiNDT+U^N40-+Ms_wh9QX5s>0(%^e)g)$Q3h@Dst#I7qaXhUJm*jOs=Sb4UoUSP0SSD66)*nnEYtNhX?NoaUHnUhfreEuQui zAjR8QoPF(sik|OBXHwPVJyN|>H@&P(Y!?PYO01%y9sDs`Fow0cG1!Qe1(Uidg}_$ zL`cd=S4O%nt`)cj>ZlM(FI@{FpOtw||FC~>q^!zESES(^dZTTS1oOczayme-8HPQ5RO0Wqn5xLiQ^`pkd13T)ar*K`hZ=_TR8xW8u0J> z^Qu>AveE^1H^q^IMZ9(yZ)=riVpm7Uwrn0J#<|&2YLppK&4vK1(x=RP(+9!)`V{Jr zDt_mm((adwjYxRY<8-|7+%96f3pd-zv0OHCVjM?S9f`~L z4EYQR;vnbQaYi#qfWpxw^f)fTC)(&Q@0gPmeX`t}^RVdg*ad87X;b&0;{F6Sv{J9Q zT(e_^R(o*Vns+~#9~Up`v3glATeT%MdDPf_)Ch~Vf&S#v{y{7?X~Z#Uc+5&F)iFyAFv35B7P_kox`Vzgu>1MP4; zNBc9n(kTAys?=B8Ch2i~DHBT9nACXmuU^6s#8fQ5d5FOP| zjX`NogXgdGC0FAnzY}urHpyT9-p-^==u+?Y0JW6QYS!;GTyf5%WGn8kx5Odv9a03^ zE+s-Ha*nuhI>JYdW3aXU__lFCaklEdVmen`WOOiNbCPo!Y&@OHfWbh#G{K;5*jWUn zc`v$8(q*(b?u3Qu3KBVIfc&>A8n^)@mlf(#0;>aZ!de#3X7kqw^qNJT-uz~Ga3i4w z0i^{iD8c+$NqVSRW!9Zg90Y^kvX3@7+vXdX2YJ2Bmm4Fmg`|3uZpe?SJzZy~N z!i!#Mg){`K_gv05mb5I1xKO&48vmtV-?@0U-u;1PfnUvctalL9qkA4xr5w0S;-9fP zdTRpo5S(?CQZXT_qMFl@2cd{c_X|2$#giH+rlp8UhUY$pHJ5855J4OXL+SjIatV;3 zvf8-n6BOVMDMe3;?t`!VjaYo=`Rfl=?fr3$IYjlpzJ6E)+IY4~7@qnpiqd+hRsPMf zCmM$a<9Vn1TMz310(NYwsH=@6T%*FBiUYyRh9XMmqIFJ{h41iZeekPADGV7Qk!>mK7?*~>ITv_ zQszPqcj|~l6~8JSwjM20Qnf@-yK&13t1M3%#YO(& z@p}I2OP+QV11Y9S7p5wx6<2Hb)crDKCem7|0(JZ0zssuRo=-C4(PSU7FIwRGFKbAa z#5j*Y!7z}CqaD>36)9KaNk#sS?J>3UJvVJwc(Z)SIsuBVVg{40Q}TVJ z%WrB<5I_YbM!--=-Dxm5(;Ija_j1X>zK2rxsWu(05dbYik@jyx&~2T(7^Zly?rM2= z9;X$rzGgVuGTwEO1jizbdbn!XVL2vSj}{HQQ+X3a<{_pYBARX%KpX11KIaW8h84

m76Jcp_3cBjPDfK-Uru#mEorsqU*=&R=Mtek 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 H2A}`{vZLV? literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/noon-mid.webp b/public/ridge/vienna-b464e375319f/noon-mid.webp new file mode 100644 index 0000000000000000000000000000000000000000..99cab68c7488ce1c4c4b84163611ad7c20f39540 GIT binary patch literal 64134 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

_7PVM33Xv?7%>E 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 H$NIkj7ZsJt literal 0 HcmV?d00001 diff --git a/public/ridge/vienna-b464e375319f/noon-near.webp b/public/ridge/vienna-b464e375319f/noon-near.webp new file mode 100644 index 0000000000000000000000000000000000000000..34106693cac330e0941258dd7677b18b2b0bafe7 GIT binary patch literal 122270 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 z zp=B4UTqlEcKD%ift+bio%of?V&CK&a;<}nRGMIaw#_|-o_+Mum8QHEbE?7dMp0D(nNC#6%2rcIe(Kmb!9 zkd$hH6=Mog6p40%u^7>eK!Uc3Hkfgy(%6htwoR&KNJvD_`PUw#uY28+VgS{|bg7LY z*n^~EYC;HrE!C#WNP#33N;D`02r43Kl^Uybpv4GUSYXpdS<*5AM7zWa!3aTHY_=1{ z2{dl10$74t1l5VO*4T*^$^fVZb%u=RGBU~1p;_nPrJn+yJnpGUpEAz$fps^=gubyk zY{slipdTGCoQY$frk~nG`skynal_b>E1a4fAoAowE0|L>dX%Wb^>gmTIK$ z0`!@DuD_=?3vU(c~fs6yL44v_+oGgf7fD~I3*4cja=`$S{K35Uf{xp z=OArC3?SYfGmaDD0!MZnc6Q#lUp+7N!xJ@kzJMCQvzftm^O`o{HJ*XpWnU6zSr%3smeEMiIx9?8KyBrUq1BE&>P=HIN;-fg z7Lrs;VniuH?U9jkvb9Gil9~XK21t<#ZA6?#gV8F0Ay(r!(54zqV@2$+%_1OHQAHy_ zz@UWKBF041QY)lE8y-nY15%oF5?}^ARVJEt8^sx{$&|Jj6jW+5MJsVCD%Ba2t%mBL zu|iQ)QfN{=lB8=g2oVa?mQvBOn;2{psA8fH28~jrF@X>Wc*^dB@Zc+UD^)1fP=sJt z2!InsfRrIcu#GV~L7@Vo0l}D%3Id{q1`9M*K*}m1m4U+s(j-No5R?jC3RTLFMk-Xn z8mWX714W2f8)c1=4z9G*v{R7@Bv{=}$(lS4Bm2xQ=5|x3JFm}&eV*CXEW2N{PKSq= zv7g%@2KFJ!?1yU>7){~__r|U4>`Jg?kM&+kAkE&SPHvgj?eNSScXMlCj#Kn;hyvAF zrl<2+n9P2LRfRG-^PJ?XFTU+jw6SVt@S?3AuYA=yo%bfAD4IbJ@%{64IbH9~C*2%- z`KpOFH@V%Is8v^Pln5J_9CT|~2JhLa@=6DrcII{ZW&p1F&SO8{w=nrIZ$sjyX~ni0 zZ{KWQ*Caic>>(8nYBxL`XY~nA4)GFd(hMV-UBlOTBF)seGG$wNVb_5`#-iw8nJ4c6 z0;Q(3px6vz1&OFaEUP6Ww$&AC!UAFkY7!)-2qvW3R3s@%tVIQeqKu+5-4F&s6QTiB zK+z&auq^@*VQX!oVj?C@Z6n&wD7K@4Ax&ntQensxF;I1$&Sqso$Zoy-qNcW?)7Tp6 zMN>?biY){ph>59WB#M-@Y6z9;B$%?xjMfCJM*xAe#H<=NSk@-BWTk~lVowPPaMs&z z-v$4xb*aJy5ee008>JNl6MIY`5<>+;O^8zk#tIk(Di8q_RmuVsV#G?sl2|%gLt@Z| z2#Q^$h{gc=M5j`n&ZWQc*?r6NW{{d@R)+OulAQ~3G@pztd1AKDF5kY+G*R57OpKMs z5i`Y3*yn}W7#%kT$S~)uZXusn@h( z$0Xeb!jDs?#Z)x`S)^O6q=IP?1gr^05TGQCj$KpHR)}__y0n#0cHFY*#7+e#1yWM# z6XMDkRWNl33E}dWZO^mbjAy$BlKoC+L7HyzMLn|1GDR35%R#Pe@f)uI* z6s3@0k%(A5BqNhHP+cMtix?SLCl=F)P*jr!x*8OSM0paOR-g@0NS!1htX7i>GwX(m zOtfplWT*2$3+Hg0@RhGy=4K{|&273a`&r1Gaqat@DCw~z*dKV@3?#-vNz#W8GVwFl z=xoz>gu=s6N3)sJnU%O3FPfThj3gR0e^z^|KKlL))}--ChZWYzr_8Dr$$VwA>Fi9U z^&H=nD&=S1{_WsA-OCJ~x_r~8@*`O)FVp4Pg*ED~38L;4hu^lHq*yhiyBPbx^!eHy zc9}Hn?zH?ik$KW>q~vw>^Euw@AzMGA6A*oK1mJ-h@=B4K%fMwBG{us6eg`6(iKz5 zB$Wt612(NXjnq^jiBy0=3k(G(ss4hl#DdOLghT==h!j>^iHX&YeZv%xn!t34poLbp zQb^i%?9M}X$5P$}y93$Uv*~m+h8VyYWTD2QHBJKvsi_bWsW2OQR7$a?h;~u7Flf3& zAc2N3y1K~7AQQM%Qnv+&Q=ccc#GnB_i!sr?)zd_W4kz8et?9>k>u26yI2JO3f)MEt zkPfzt7P}ItEk=N7>=Bz9Gz(Il1}O-$CQ@St(JE?D8jXTA8>h--OeiQ=5Qsr)pv7Ps z0!DQS3XzEkyJ9F7sw0D;jT>ys8&z1Y%(Og3)K-dpun!HeU@(pDVlMQ{t~&I*=J~uY z5@vk3^!;$3H{TDpIoX+KVQs$WO}ieu-`|nsYu34tT{7qH<4g0E>DQ-EEsIz0d3=G- z<@Jq;iMmFGbu*MHu~LFF@0e8&2DsQNX|EZt{#pT}MI z;clPLdke#o^_eWAi++E0-(9Zkm^z`I%rnoF)p0B+cn*%}UUaOIHZBjQcDr@$7K7=- zJS4NsDyfnoKe84LpB-?blW7PrQwkzN89@mY*i^+dU9{4Tp(_xzq0&^3CMq<+7zrXj z#saAcaVP@m>JE;eDFcY8NMex|vF)P46cDf$CCq5cR5parXeLNQ`*hdskFhH;OV&ul zL2?O^G@_;$-DE&lqpbn4G1P>%h*H5+96g)@kufy}P-93TRGVsIC@F3_lL~#5r72dt zDbiDfgoJSNO)IQE>_`0Ne#x^JaVV8as7WFz3lhK>QjriPIw=s7(NRPzni$HYn(dXM zD2yGG)&jf45VWkWHdK`;4VFcQM7oWnLfbf!Dl`MqR4`2~t%-(`K~m~KD(x?fDWI~$ zNL^-JHim9@w|z1P_qhmB!+<*svvN(oXR#all6gAArcZya7Hjx4wJs>T4>Q}BOs6hh zKE#jg+N{r(HRs_by$$!S3v$XOStFawG>EIy;m?{`4|yu?L7r^;_fHuEpr_v`PZu;r z8L?PwST0Gxip_47cQBdVyu3aw;j&t=W#M;XMUgQ4iOUPSoivvos>MA;Q{;jkiBy( zfaMwZT2?*r)4?Ykj-ieFIN@36SHdshfi*9U6 zN)qhq3UmN$5lFRQ8cl*4LyQKrjTEypac+zvmDnRODlHH}3X91~HK{hEjiC}SF(%e9 zzywKRB{if;GEWbDXbeou(%p7hMkuEc zv{S4YNukMTO?4TnBcmbFN!zhH8Mu+skE5E;)J3tk?J<2VgW{MQi(-GL_q|#ssINNt0Y!|hN7IrkwS`ekrIieF)plN zX}g^mDyd{8OcG?QWR+rtj}1&y>4eH=i8k0v<1*#x~-VYD)PEKXJ#9@+5a}nC|Dd#E+ba(i?wlZR;dDc|xl`eWkU1RoK z19AG1%36=?Vp*LUiD)Qbpp88+R7avAVr#708ki{5WFxkn7@(TblE^fAFj1JvigdNs zrm0RSEnL0fh*S)eB0aViAq8o%N9dvvFeEZnYot6oN^MG?MhB9~Od`{1 z$|PYoq(=GC-7QE8gj%#c1+l6WHR_O2T9eVKpsAKP8m(dgLQPi;9YTUa+pJ9J0XF_}$)t_M zr6nv$>?#bhTRV-kw~-uy4A0(kY-venr;By-@egSV_k~IGG?5LTmHXsV?gLBj)eAGe zY%`&$q+|T<+?z?4W`12h%QR)4J}+$C>CFc@>-k-$sZLTtV|_kjIy``#DzXi~A6)9K zL8V8N_q>g(QR3K$MH~Zrx4@-EjmWv}OFT8Ar_wFwlU8Q#U~5SK@XP7LQ!SwoiSA`P zQAv+XpTi;OmJBW|-?JglmVRYh4cwZCd?wHtziWs4tw>qswg)Ah}MOURGRahZ0WffpC87D#)riYDPiOHZ-U5RFN$BIFt5gA5J3^X2$+G0yCf8}jfu>oyUGp0np}*vniwUph75!6 zp1oTzfJxz285~UuCe>n7u_h~0B4Eo%p;Hz~CA9@6jnlA2O*w(IK}aD)I>|R;qS2^^grm+JMAmi58o_YTmj;f(DiXtIGOlc^S*qX57f+@)8F-<}hkq(rUU?K(E3Wbza zMyo0_X$&GsV-?b|X`NcE4nIWli z6_^8J>4H zEtA;}gpGOFQkr>-Nx+%ydy}ytsOWKjT26yTfnb6DvMu8C6p|GOu z1knUD5){jHsj&iPBp5YCMq`ZHP#vo6#l(U%BWW?UMO8~ol%hf|?L)1t+mnLGL;ymR z(ilsIbU|=yK~gj$!RTZPTCtAlw9;w}DNh9`B=*sM+6O3H@u_N@kg=LX9}{D#1PMKy zM$;)lpsPW8_eur0+bN;920g=oywOstq7 zP#I&?$YL?7EJvtbNQSL3b|u6BiN=^9HoZVYNJpy&YLHL>K|>6oBGFRgpsKSN#9>KQ z4I(8(A*hmQ8$%Go5a_B;j44jqq^z!_B!n=~gqu(##tF0qd|W0}rQMKVY(;oJiTmt1 zcs0EVeLnFCee*W6^L#%2u$p;qY_B`#K6`i|!n!-}d?k7hy3TzhyHD8q@D!)(>(kwP z^94?FZ*;!E+B( zjwU#7W%X9Bw)m>M`I7)ORW20BPkrU;VGzF4pZ3?3(jf@O%F+hzt?JxNDr&0r#;E#e zl@+(W2Mn+&xLGK_RiU!bTYa#dbG_)1HxY^jmAg58C#(S}dH|xxH79_of-K`AvjR!w zE8!p^qCv@VR$)2_7KXsMEif<;q5#U4z`z8_5}6RDhzbJ+U}9sI0G(>hOd(J~wRBBN zY6vmuLZgihK`AX@6Rfngg33}*SD&$i(s-`v>Dy$Pjr=$<7DkmC6%tzlt;Q7Mu!>r3 z3DYz&KI}kLG!Qr_50Hc=h)L<Sh3dm`YL`@Csb!iZlphJ=%^KL~W{?BGuYTX$zz@gCS{ltC6Y|t6gIh zz;yUAVZv(sF%onY!72h3K7xkOnVB;(PO*$2FkwkK!y}>yPZNfghQeaZ*f1O>nuFlb zO>v?zg_S;WV>&|-(!vCJCuR~xBT2AC&aGk*qM|0kMyG3t(q)KpFb04jPIUxBeu!1F z0l;kxD`%u;4+`O1m`6;^(k&Qb;;_^RkTaJ?y7MxqIDsUNEr7IuYs6}$;Gph1zaPK+ ze9y_Z5X1fJ_jrA5|I8-;$2$_+U z<=e9KQAuB9tX8X3Z`@!Pp{2LkQWa)gH0=aP*sh57VEO_S(d_~_kernZ%$3WA{$TWkh#AS*Fwo0Eu3TurhR-*(dsS~}6P zt_g{?K{Zrcq+^9rbu`qlCJ8iZ9o(R4(+~-yk_krzG99U~aWNw|7L-D*U}Nn>1!54z zXeARE05L+-Mof#{Xz~l1Do(d`6I?|Sj6o>X1XQ$JG0@4%?X-%ol7#NG0yCqjNDitZDuPcPW+(>j*;6uQ1apFlX6vtcYJfL4d=B!{d8>N>?CZGE7PTFkQ{|%<&2CVug<_t_CcXBZL%Ju zNuf)l+63Z82u*~2y$U{M7%X)qE_M~R9H%f-l^heHp>q;@#!0!Y6yXC1EMCZTbC3!$ znFwa50kq;`K{Az4iWP)n*pv>)LpH`pEDh37x%WM z9o7Jv9aFMuqXO-!W@;;_*e0|^!;iAD2~?H}MO=ba9J?}vV5Ch-DVsHou23aGIsgfj zjJs}}!jJ@7*QPaLsFLAfGq4W0ZHJ^cbmPt>tuDi`>BDSwX*S5>FFw41ntBxNi@OdK zm}nW&5SXy8ZDhQlk6stcT48F@Cc4#C6_iek_;j=G*t2Nx*2D&LrBs^gDws|(;cAN% zsBc7YEl@L6`5{Pz8VjZ+nzM}YGSCXHg1X3UH3T+`^SSR=hm(16UD{E+&b!r3opct3 z;+`H12;yOyW25)2MMwI+bLvtBIwN0AeFpsKO>Z~K@c5moIYm9*9C9kG9BAzoW(d4d z-y~6DKglYfv%92GHLd}xaI31ttCW}2qbqN(@W6QOvRfHELV z3JxJu4B7!1vH&`TnoW}7u#hY&Od>Ksz-4O$P%)Y@fWV*vp}G*sWzmYW*`swC8nV$_ zwr+831PZP7kqnc#Zs}%#gbJZ!7K^q(5{#(Esp+&vs0=rE)-(8)6G~JO8AEL93QKBq zXrQWC0${DdP?K}f6U0CYFdZXs+UH9>>{?Z`vGQF0hsaIyR}g(|A3Wm4&?f>I|9x=T^1lrh)> zSfrq(6%$-kXq-43^Mjrs#7Hg7U?7%(me@#3cG-HtIlDJeL6 zSh~2i%(9wi+I4EG87dj8($ZSVPD2U7K|!wyA;35ZBE&&KBa~mNLji@-+`OsFk*smt zt)i-j6jTVi)OZQzTwKn|3(i?m)aBfS8IJ@OM7I!tOc;om zlCN@>aXzV;>O0@x-`~Farn*{tIf1|5s~=oFOut>|1?uy>0pTS-^(p4J&*=KxH(&3Y zmwSKry&rsglMXlsSbBKQK#aqafC$D(>rz5++-aiN!?)W{G}H}BERaIy6)+d_2_dmV~R)^ z(Xjg@1|$qFVU47TnVF6dxE`L)gi=u}wbyp5ije{oV4P?*)#y-08|el~M?f?Zl}@(X z5Q13=yN0A`ECI&0&9Jd9XjQnHMIgp;IfT=SPNR+R&@H593#oHdAql!Qn9bADr#brI z0MBfj=4rLa#dK<`K!E}@%wxjfpimO4BmoLg>@2LThf{ZMInGHt)vb8IY5<#ZJybX; z9|QwL3w5e7Kx)of1@TRt0LB+p6kK^Cx(XEqu`rcPsRZ|w0f?E7sVKSO0PdLetRvlz znspbb^^{=wOrC}>F2?DDooHN7Df1!7YP%aIVGnO~QEJQy))#}hbJ%+sDHv9Nq*vEf z@B2+r+d5Bg+TA2MjN69Nz;%qVfD5ynreV4kPSCA>3Nk#fr+UpYy*SOdC!wp4XG#(8XDJn$``>WWpsb0oSE^J0T_{W>s>>b%Poz7-XzcUfUQfL5ca0k5~!)#9%{FnD2>L=$f65$lXOdy z1ku1vgoGTB5+zLyx*Vr8*-zf@`>BuO-1p8OKCkh<-=D&+>-a*-Ts-@AZ-4qrrRX}) zD^9*#rF#5>kMUM~c-k`X3u}LB7f#4+e^nXPxi4T&zw@Fcqun;_X19@2^$&)fTa5zw zx+SIP!}dGS;HbRCEOM{9a~p#UVM@)jjOCh&s7F;IuPT*HL0~d!!oz0fEfN_vB(M}V z777w?l$ipxEI-buKpP^%(iK5goU*1epj`K&kg#AI38WB6LrUrNPCG6Q%VONN9ipZ{ ze(;u^&9D%X?xg9oK#VF8G1`cvU8WNkEo?x=tV#5zNxV_4rDXiE%TCzZI7I`rx|@oV z4R^tIb^vQYl)uxbyPYmrQvnKzIX2LAqcjPrAWXUeK2Acm+YKQ}lr1baO z728x)ic{L2FUjDpA-+|olfqny*`$>snJlEL1BW6(7%qmkV3b&Yq%^W0l;Q|@)R{4% zTn!PX`vex2@T4Jni{qrVlOx0sv?QSJ?V*@Y6cI>UGFh;Uek2N(G0*v@DZjff{La|t3sI=f3B{l_xMMaEN=~PDJ)W@JOtT=ScRaGI7Jf>g( z6xrPshJjL?1cHfT2}OWjcA-J7kq+r}a$&%x$+^vL*fVw4g+{2!WKtT@k!RG$Y?;KP zWYbinI3|eDpiojl7n=^wIJG-&mGuVQG!W_mD!3%?W(18OlM}4%K~p* z>@aC;ioirQO-xFqfR2ER`eHK=UV6D?BXsrZVj?=rln?-$MvN*nShi5{ zR%m!!nn^)%0-z|xauHySTs4d<47;pEvHb;|n`qDy(+6tr*y&QGp@l@*iM1%EB@Bsi zQ`O>XOxIR{CmBs76iAVM5XknNMa)zXH1)WasFk{5-i9Nw!Ahu< zHP+mQ3##Ojt~p%1O6ZgWq1aHH0!jC(2$oDp5RgDjg_niWV2eVtl(ES{+d}CQSM6RF0s;-_N~0jOqRynfMB^&C=mk6xD(b_cSqIny>n`|;dZE8yF7Uk_6@A!CnXC( z357w2XaEAs1y!N^P>2glkxO%G-V9wIKOE|>(U*_p&il2QsOLsn|d4@_q#t%KNnT5=O6 z+1qr}HEuLW|b~%KySswQ?rPq4=~KscB;yj30#G^UA`Pm zn5gyWfw*vrbz^lNF{3t+L7i1MlQo)sY&4CJl0xw!2r6`AU=bETD1=~#0Alub2W)K| z7dI+JQcr4W5=evZ9hnRqf@G(~h=fEp+ax3ahOR(32vow-f)!;+wM1f5HcL)v%#^U@ z$ANrcHuJJBxWTw-5OJaD8fmQK0HJl1neEop!n3;^%^d7R5THsSDW%;=NYksL!6?Oz zpbpdtI!5fo^61W{#0o7EWCWH`QHo^(Ww;7scY|$uJMOS*k69ntv`rQ_(L&bs$8Jm0 zN_a#-ZdQzHFg~@=S;q3?rEgjA8o`jrl(d}&I7JY`r$x~KMrxT@e?+Vb3=lablin%@ zqW~%00f9JX9SA#_XfV^$DA5=K(uFaxjF4hlX44FvXPVst#3o}Ce5!72SsG$1bxb-| zcZrK(b!j#>uj9B`)<8|O4K==97B-cJGtwZ$Pgd!wMyNQ>ttM6YsDPR> z@_uUC1+bbIW*c;06d~8{Fzf+6nnsHf$40a2fq-dP{@!#67Y3!l%1K-e$?wQCl8d=S znp0?jx-+p&zF*m*tk0bkYJ%j3-uqFB=cSbIx0DQCJgIgSEmr00(pTRT2g#qjdGyxX ztGuOq+BI;8+L1{C%MkT0k1kosN98N8zkcAp7mbU)qm-=65Y=Z%#%oURq`-P`&`p)@ zWs{S3yQ;d-#x0=*b`gyoGb&2mfCA)VchE_es90?*buI0N6w*-zx02N*0<=3UYZaDp zFva@tjziH{L!0e2+~^iXYO@Zx@DL(R&C?dM+f89UX_hD*+2AyQAsy_6VLhL2QoKiB z$`+v*_`rb6_MmPW5<1J|Q7y%tnOmTt3J5!qwg>L$iZ6n=?ZP86P=~pBG4}eVC(k&3 z+b#sXyTr@G9O6Bz?}NxxxpnLdO5=TBSw}A+xD~JG&{xN4c-RK3tuU2FkpxmxXsG2N zdTF{L%*Sq&KOa@SxVP#OtE$&M*0vkXaH~~}@%>(*$LKCU!s~%|XM1XSKQEj<7P#kt7H5|N2^2%(> z27-VEm?{*4GGb!}V3H1%478o4Kw%(L5Yy>QqpPX(Vb?@VEa8HXJY@8<4Jl>wh$)JE?GVUN?k-*|bb-m0}G*KW;(oQ8X0U<;; zgHmSnc30Wn$1%CMp0j~u3Tx7g17Yd5ZZ+w&nr3zc1N38i_kq-Eo5h80*JiR$GPo&( z0!>A(}*~I|m7BDYM6o_)VEaoPgm=fA7(!5Yad{sjd$e|PC)jf4s zER2_Y2VXIz_7z!bba7Ma!z?vy`cx?i>xxaW*;OdB`aAD?YdOH@zB!Lx^3hEH2Cf%D=S)dx&X$aqOKlrs*q)9 z(Ut5tr0tZM$MQV(Iwn&m?(QTSpY2YlS!SviC(X8I+I>=iHqGvcMV4)z(1&G$-#sF9 z$9yuHE9qsF%F~6Nb{V^+Nmi%~;uK>ted5{H-vp$4Oj4!s;RdplMrj-zskxw}d zhm=hkW(j-Vm96a3)=eDN?q}dh;%qoz8!{EPXi7}XB#~P}AX@;U zNT!iwrg{o}LYfE~1YrWP-EO+Aj$6|hjO7uqTW7YjPIj}iR=EZ?Q%s7p)?$FHHXW@) z*%|62Nymq2B+a^w!vZOgCRZS=CF;?9?uMb_W;(&`lu-3H#jknBkjxP3Gdq3wjATf% z?k9J58y(vK13RWnG#Omfkz0%a6mW=F{0+Ucl5@!p85;)#ueWzx<8kpvnh%4`K ztkxr)oeS_mASaXR)&*G#!cGBZ;sfpNewntsA&OnNk~0J0%5Sm z{Alk1-M?^pW_hgb^ukqJ&$4vq3e!45)P%fG9*Li%4Cnjvjq#5kk9U0<#(t(M%?$@= zv`|wqYy41Xw>zZntHl&wy*YGlRMmv2&PBwLK38wPZ|xwet9EDMCO!jc`mG{Ix~Z41 zSsO^|q!3tOlu2$pt}9BiTP6ld0U`rc+n{hWHMhe;g_H>^UM*F*Bi~p?ff?Cuu3S`< zgax5cKq8b)FKHI#7pH8DGKZZaK*z*0fi+mK>yDYOvTmXA+$T-nwU#_t{N)|s#Ls!d^w4V+H0450?f&w-!Q2@bsy|doK z#5eu~*aU&lAM=>hW2UXp%Ohh^2kJH+$K>&9@1))Rw|kfG=*iGX_kg1D@qM+cO!LK z5_|^Uy{Yg4Fw?+P7m3|+m`v<+Z!HkQ3_E!qV=fUWTj2$qkX>PmhEG;ESxL7X&jOe$KnUJ|tnJ*Js8hiYyn@oDl{JAk-N8dt zHO>vDlv893Lj6ilMv~LTy+N6~aZ?P~?4(&Nbg$@IlLe)?*~29I)Vv=}X;MN>2004y zUX9OJ22haMJ#NuOOtoHg-$<>O-^l%pW{*>-j(9IPNKJgU?Z*1h#10|LuuM|PJ>3$MzWi9<0hlmHW9SFig}7OotV6HMqm{k=LyJ^%o`y9l!Rc> zam)ppqS11pW}mj5TGLSzRZOd;6Ns7_U=3Hg(WmW_DL+2I#}bVU*ELg?Ch$<*d>QL)B{gjXK{S#}Xv#IR z7NMvv1tU2ST@;-Lx`rZqn!-(wQG?2e09(C=RXA=o=yK&2D0j)UI~7U*&GLa95;w-(?qTwTDyjRpt&gS5 zK0{fo=3PuXD|QK(ZZ;ZIE;G^qDhXETN?Y7bvh9#2rrc?A)V3)TVQEAOv_%1-)Qp(4 zHHmKWoU=P);<|>+NmCh9=n8HcErUc1sY)dSb{K{o>0F1FVR>j~(Nyo2)Mlv=Zq7yB zs-#n?!H`loUb|gstxL3p_+tQ42@Xq}Ms!JMvW?ghV458Y?uld=CM0yXO@|53y2!cD z&H|`}<}$-{BgpjWFkGBYec75}h>pfX;+ zzQArErZU-@z)=XLSkNp-0>y*{xT9h~Jyq;NT*)CqimKQN(C=o1Q?65JqWc0x@Md>z zr(F|>>Kay46mB@x+DjIYHw>jE6@r7@D;5Q!Dns(=4l}ocXbmF(XF5XwPzh2=HCM_x zU+3PWU7}w6Dev=D)D6nG_;T{;_f|ecA)nUCcG1B#a=IRzdrnrl?EQ>0r7r{Vv-e#8 zeczivrJY^6dV zCAPX@rsOo$264A9h5>~lm^Culu+mI(w)^;*9bdv+?j=E<;aYJu)m$aa?o?14pRLbI z{jzC4=YFnP;x^0mhvUa>JiE-mW=q%2B%NJjr@>9^OpI3Yi!&Rt9a?r5g(z}Icq721 zoTjs=I(7+zpO;94vwQUrq^l)_WKc-UGKWy`o1GXp(^Q|sNi7d;oHtDkBgxK$-IBg} z0H_1qQ8%PcNEkOpDffAVXGtnWC{WU&mLOYH>KIyWN!y?gLusj-vDp{mQm9C83}s@# z?lIiz4p|3&U?k~c}y6!UnIEqT-|yRc1k%C0HM)Vy|*orxw>cr27k zH5`6AXW~5FO_t63Os;t#0k5j;rQ|$(AtC2*Ijk1VjZw0+-W@(%8z!K88#$3H^bJ@I zb@g?mrLt@h8It%>6YJ%u;18p`S)?+RVsXJh_6e#q8dWJMQ#Vr6C`!axfM%!gL}N7p z*4`RHD8+Zg(YxBOryuY=Xr9IB-WH{LFfP4~EqG+xm}Y_R+(`19dy>h1PjL+k9^dV% zNZ%jn7RA>@b@%H7cpIFnM5W&LyrF=H;pr)XO9`s<(tR7VSo zg_wjcG=3F{m}F%~MZ`)O;D#s{ z20U>IQ)Fxekzqw*T@o5%)dm$Q7^;-PM`&x=+3>_nBl~zY~4Jlg;eseHYWRO`tIBq{e2+F3B2c zCbMWM&JIrU5ay{i$IafsmeXEq+@=rNq^#}>xn?VN8)(gEizx+3d~i1Tl#sgDsar7$ zCDikvS}d?eH7`n7>vQZUlknzYxvxCskR*d=%%$CQ*y=P1buAnnoq-f!TF~w68VMco z`h>PS?Qq)=(!4V4ax#)uaa5&RM)X#*vYHvOCPEDoRt0A^hjomtun=U6kuF?H)R3-( zXG`)!e5|uKNeMcK6CA_}&N4G4<;W)PXH4VM{Y(kWvg!D#oe6}Z4vg8753xINZHd>< zZFw^7_@=IAs*kr)-e)+S`s`9e6Q7Wy3%zI~3~?}YcMm>r)*rD-+h&=`9q!X;vfk6h z-RzSCPFZJ@y_kl&>bxBYVo5qb23`oIL5t$*Lqc1kIOZvwj>D&`ZGvb7PjeO@0O1>&W6mR{J~z}yI+gckRAslLqjR)AkXJtEc#!1s zlNa-P`sHc|o_kNKx((XrWN}UtqZ$=+8`?UBe~Vm($)q-lK=)u zmk&+`amCOFR*S>}ebo@^2AWJr6CTYM1{IV06EF?*j|m^ zD)z~PU4w!;T@1)t0684x{l=@`->D=(f~YcYdQw&Lt@H4mPw;Jbe{JPjzWJR1`paAI z@LRqFs=^;x)C*MLL6txI^8-w|GPI2J;H$OT{**GvIpb8PuSRwmCnah$@xD0;>^95e#u6b5uZvU7!HYgvYY#(r0&qaVSR&?_F$2VJU8Xx@}EbDb}u# zk7^vM+5s(Voh7^H$IzBi3p1m-+X%uaa$=U8Y~;3l_-Yb1vb&`2juw-$G4mvFNUv*6 zrTFj+A+xr#1dK4*)g+~1e(&VDw8}_W4EEA8}aQ> zuInsb)6!nDZ6fJMKC7Qk`P{G>C&pos?Pss;)=PKJ59zO(x31#g+q8RCM=9*w@DZDvTcOLkb$e-s))JM{Qle-Kp>LPsa-VRz1zW%vvl9a z58QcH%&cPu^O5wku2sR$oMV1ma)WU^SM?aazRgB|H1BKP*X!v>;z>`O2BQ(vo+f2s z#am9E;}^ve__FLBM2qhJVcl6Eb!0I?rT8E%Hmbq3heWkY*WS)m)s`oyMPdY%tj&N1 z-V{svaxXd{3)CB`L-m4EfkhrSj|FR#cmmzBHgF_ma0j9-B4`v@ks7mm@FoI-H3-4tD_0CttSpBOsXxWTXy z=*}dIjeCW2EEs-3>TY-Fkkm(p7}9LRZdY%&lp$l&BoP}C2*XH`;B}({jUv)`GS4H_ zFi;RF8K<>Kr=)HJkoDNeB{@nTplR_+g%V4wr;ACg-F>=EWVNt{(A`$rmOjpfjWuu8 zG=sM!18qWt-N$o+`EUZgSi# zj?JlJDvZZmExH?%y-J-55wq}z(%Nu}Qu z;0!t1*V9eTU8HCoKm3m zH1CfeQ@H4vqcZJ}Fi02c&36|0+M5$Foad!3sG6fEDfZj1pODw-`Y7LA-YTfPU;C{0 zsge~(9Cj|bUwRhWR6G*1lb1^}d2*2Rg>8%~-Zcz-ZSvrYU!Gem)IB|di0IaIxfX9} zd`rh|81N0^HDe8AZxQZ}++VALWoS{^dc25 z;S_FUZE|mRbxX)jJS3Qs@)RtDM|ON3{3@G$PUG%yW13G$qIb(=5{4%260sZLab_od z<{&A%xlNmNyOY`OY>k(8#+4#Akj3sW-86ovyUY`wG0T!?H=hThRZ=q8=0L2|k_OBG zD59~$`*f7q@8MvZbqS;|W$7h8CfTyVZM~_@Kn;oUf$YOPx;H;{mY6Vcdrk9+(U9f93&rYt(T%F7zGbz?%L}ku$!F@axQ$X9ROWIL zzHkvKsAtw-NsQ}8_h*z!5CTam$oIFuXc?!f`~B3;fPw|)oF1!VG^I=b)3-)cPGy~X~zwFpmZ$scIcd!~wagOKSr=4+g~LU)&8YV0A^ zAgc+Q3@*-$2f{&%(q?PKM}iOftJK8<(~V z&iU-vtO4rgv)}9O!}cORVQy|VT2uLo$&AdP3rV1$2%|*Rs`XxtTT)oF5lkg|nK59o zGnS5NEXcrqu-SBCS!p&rWVUS6IWlWQuh|4R7b?~PB#12U);15zko~MY-cV)9!#k9P z#9p=$-p6K`<&h^0;n}C>YZ57Wp>=jQFbNDkyE{UDZ9{>P0om*`{fvznR|m9WvMF(E zVWkXJ-vZQ^IZbuLS+H&w8$Nn~+3F5?(pPMU1-vbMWaE0OU$PQW{VqGFlA@7ZIiD1( znu7_$#)?S^T}A@AEs%MHsw#&eXG1Mc80!#_j?9Cm*uA)`b)j0x!-KDl?>j)&vP2M8Fat1o>Lhe z7-^p;>dry2@6}ZI4-Y>h(6{~hY3BE^f!158D_)igMQ^b-X?Kv%YlZ=YRDc9Bd8`^; zzqj5LLaAE9IDtl0nUcZGT%49sF&l@Jt)SeL1c{px+6mZkQFCaNx|SYLA&fmlCi#9} zOiQ^9j>hm*k#}Yu)_!={H^O-7&5$moS;Q=aP`M^9gS!-q;w*l*WX9@q#r>qA%?e4_ zR5EBL+a^8)VbeH~^Rr_P$4?|!9ooK-?Z)2r!w92#dqa$p^>#}1K(2Ky5GPc7KivuP zGpwI>M;^W&xYnC4xn7@zB^GzKZ5Bv{?KBU361tNa-|l?2^)*lGG3-pXik(z{k>z>i zD&5JAlmywE%p?nm11s1lHX+?==^B#BqlK8HkZp&&gU`_qoh;Kdp}J4u31GMhX}8Ck z)MuRCr>wp&2CbKHVVZ1t^rxS^<+f#~M)rJOQv2wZ=|gzv+&sIPPF_P)*UOT=pZezW zu*rA7KF|9?y4R5zy@{1c-p2BH1dFm5xO4dg9m^sKpNL}s9dhN24}xC5dGJVI7|vdx zDefrGT=^$<{j7K8VG+zS!h9Psi9Hs@^f?I-Pidg&0J zP$?21RW7Hu?r--UMF0XIP*63PpZ9M1=DCeFfd)BLuc8h-X}lDCsJTYHrhk0JOp$YS zOWiX_Yk*RnaXCXV^(=m@@hjOM?hg4pUz-(eQ@XFdKGkY|iyZ8cx7?Z*>YcQiR;6rQ zzu5W+BHJC~STx%S%%U*ww^&oHP7tCC$?E=c^GATH#I6?+epXhh2Pqvfnmnr8g*$wA7VA1Wi4&Fa9LJ|&%yX(`Y>9Uz_c-!D>5ugII33(#{2sKx{3Q2XAwl*Y_(vhQinKv13cIXdgkgs5I?@nVv)^SD%OZ`7OF zUhA$pXLHP|=gFr}b`n@@{E+!WQR>ZEf%WRkRee7+skh*_Y*f(b)RB%*9}nIxBah%V z(E4cXR9hvy0E2vC>~PcI_pS0q@NVO^vNpw_^Ns4xcW!yTb=HCm5gIUZxB!JU)6t!- zjcbC0MpubUq{)Rm-Rs2SH?y02=tATK=b8DUCA?&g&wA2?XxLQT#RnA3`XECS(~s~> zW`#@!E| zkFOBor(=$1Kf}7sJ!~{cU5|lQX}kOMS&k>g$6!b@&v51V7&JQ5Cnag~dZ4?zZKnI= zXW1u($us%f9M7%{%6Cn8FWL0opsGO_q zH-oEW!TJ<2==#1uqwpj*^$f_auYph7kAnLuB@u=Ndk%T=;tv`Kk)da!6X~gf3IMqVxGoKKe`_^^nE|`VmOcmwa~t`XGj&#+;Qjqy*>Apr!<39N za}i8^US^z`H}}2xXr9mW{n%gU`{_J_w-Xb{brv&&(nwb zJUgFf8atoondd2=PINNAbvmD?ZJl5JJX5}(em?DVzHRf&GarO!`0ivLpTNw_rBRH=7Uq7&wR%3em{Boc|LZ2?fm-v{oAkKeVqAxe*1NP{hs+epXb+KAC*c;-H(*F z?t5`->gt{MbL;KMuaDo)JVU3`IrC7)$Io#zOv^UULKpZT6&pNE<6?>>C{>&*AZcD|pP z&UYVw9iPwe%)|5K8Q{}0GtcuK`}nl|&3^ytx4(X#`SrK&&*$lUoZozy=kqk0QFTc^nSD&dF z+~xh$dvU1`0eqX_H-QOWzLQ%Y%uwVf-#2*Yts2(an7BJ{^wW7iRqyBLH{bWZpPvz? za_`K?1V^*HKlPc*yVCvKvhb}>CRd-T3(kceUyYFe3{j+8Gn!^zYKFgGVZ4>RA@RKCCPDSXLPjx!T3Yg~j~&&+|d7reSt_s{o~$omH1%THxq)_oDH z=6>c|KR@NXql)T#?%WyO@A`+jpAXaB=eOtc>-cqHMeSZD* z*Lj}L^WpRPp6@yU<_^E#>hjF{rh=i~&qts8d3`?n+t~Kkl=IiQGJULLfe*h<>3lQ~ zaXO>=tDouT`JSmCp25%a@wbmppC=vq-QONsKc)KchtK2l_^h8lZ1Q}6n%sHyCQ9By zedG0uTcJ|*J)dvq`Tp*Q{`&pQ^ZE4qd;0x{pU-E$zdwA>^M}9s;BViLozL|7!(Sgi zpYMJ@eVBfa&-at5zdjGYeouU6o|#{#ndj;Evn})R{91nPuZz$3^qF6Mo_?NB`F#HH z`+HKIKHvTIdA@)B{`J@X#%~|D-_JLB=wtht$M2cedFJ_bJ{kOGp6N%JXFg5a2WjTB z&wT1{{mf^iQ|pIk?)$fXORN*5{+ zllqxIR8Zx5KbZ0Dix+s`pRX(_Kx%K@OuoOTO5ZanUX^~ncT_WVH7=FD`$o`zCLlqn zKEcnqHSF>7lEZIZ@@sm($kKNa!1t}x%%XIW!+pCIpCF&_QL3_9e8*d>_vX7k-=F&u z`{HU2r2>}6LQfUI_ev=sQmsp=xfKY!Z(h!62yiw#xA0LHjh8?MIeP0=U4PQ~zEsK) zp3}piILgbnzM;u2{oYkmzt209N(Iqp801dy7Cflb3-fOBnxnefL4?XxSTxk(lB3RC%fK6t79^|z;u(eL>{7r!6p+xhPIr=Q2~&PToimj)`?StH{eC|5L!8I&{2HepX5@SH*S6V@CiPkyI@0HB`aRE# ze$QOzyN~sW9m;ndzV$Qxm`@-2w9iNQZaSY2`}yo=o#``L-&c2jewXg()rZPlV%}FA zOzvqv6Bzs;JTmQPpwE2xb=vP|+7bNj^RXS#nMc2`5AoOiRi5wZ!_@KHPJgvF^z$@> z&TpNVN1mMm>o5Q`Gnk)a-RtPBt5n^*^6m5ZVZMF7KcDt_KAk?FZ=acGetVwIcc0Ja z58bEFcX&Q-R`Z$9)6ab9Ok?@})aN_HH_op-#^?LfmbsZWFU&9k4G@A3I| zM)K*e-`~G|m_DC=_}E`RdE(R0^V{ds@9%l$`PI+#rDfVO*k1&s` zLihdoso);?^jqEdRpd0P(qE5TsC;og^7Ev=bONQ41%Es3f_9gKQ?Z4*b%0wJAbEh@ zt~XhzbTPw4;TyVk{XX*)3MzaCdcS(tjPPvT#pk6@2PYl`I9C;H;nIGQn=1B2SD$`$ z_Lh=2ngE{r_VVJBPag;`Kl*ciM}0=$!sTTlG)(H+quff&PL)_Qw=+uJS3q?q^BSL9 zg%PZ(DkT@X?>qAM=dEEHjXpfhe$vnPw?oXdJii%#P5bbOlbO%+$-}R@J=#f|_d%zm zPyK$%=&z;QU;ET%H}HAt=kxf+0=mx5p?bGMC`SmeA5BWUPKF`zneENLPlu!G4KJq+Iy4fbm zZ)1I)l#iY7+h5I7pFGp~=qL2~mhE@?{Fb(MJ`at<=b`)T=MSA<=bPu(bu!QAS7pa} zd^UY%{p4YI%=dS{3%@2Gp3Jw~-*8Gl-%o8mAAWl}-QOJh;SZf}zSBGpHaF(;y|jf7 z-yV-V=yz?$dw#7c+S*_9(vF+rccE%kyfeY;_l>`kJe{X&-UpC|@9pF2GSx8`__$k( zK{Mks;a7cQ(T@cOWM1@&@^gQtk83~g0$-P(#!c}nRenR_Nkeb6l|H9fGgAx{{ph1=pFMZJc9Yxl z%;R(P_Or(-Heq8*d5W0wuWYgEtAq6G3D5A*hPsW@Oj%5(iNZdnC!6@3UwNz9cbWxX z%6*)>U-nT?yT5p7$aBl%CqFotN2; zQzJgvlyzQJGIub+AHJ=f^-^_?ys{RRwSn?BD%(r4^F^IaE61$OdKxTv!iusw{; zHFJ&MeZy<_>+QQwvdrX3_W4fmVg1}rc9{509wGgN?|!=9k7;P}8*s>T`^mVURG;UY z&&`w1_svt(`Aql@2UWOD2zhKy!7`$XpKtGJ==aRS(_iP|Gc$cYlZMCY(Bx)`{Pz9n zuT#y_>0_VST&OhL<9y!4xz6+J`vJ%UooCj^*L{2@`Sj^0&sA&*ghS^4+A+lIb%;kY~(yd5mny z$G{u0i%8^`;}1(cdcGEZ2;*nXsx$1qopug%>oB;x^5Kdq7s)yGHTH#yJGwtA$8&d- z%5s2T;1#tL=GKq-0q>wb&N*U#Wz==fR#!GiQjcoc8xrihdJId!pn(Ma>=*nj0s#5X z1c0O$zj?)~UwpD6KJ;`$3-u(;4CgL=k3v55*Ru3%(yGh0Ep8omo({NOUq7BlSYu43 zJt~o3Ke*>H1_^gh{UR!9HI%b`=REMU{j{DFJwH<2ldnaAU%zmKuaoC0i(`=ZYGr}@ zm2-0D!Ii#W=*uAF{J$!{S*+V-*Hz9A&XUzh+?XdYeOC)OAN9o9mSqA zXm*7#d2bEtQUcJLnq{_9s5dRix~^a_bd4y=`Uf6(vKmeiJrN3Y2s8xNO*SVT2H=DN zDRHNIU!YV%I-_Z-7IZ1;nEv#q-??o5s4q@-Ht6^Qv_IestClFN-#V^5p(#HBZb-T& zZe2$-#zwO%ZwpP2M#0=7lXgjVNm3Pi03jqX^)_@9zBR7e>`cY!%}ZcFeA+mE+PHbl zNS;Wb{bgBg#y9S=1l+PK$(^Y?3(P7&S-2G5Hk8FDMTkn5CW{Jk!{k(67A&B}Av<%P zDg#Gh4?Ps_UNNzB*Og{p}C?x9=HSUo$Y;tfmjzXEgC*htu^-IH`}hW`CvQ z8c|L@KUSwci>*dQ__3063VSO*62tZaKQ@H}5h^kGHw@%oKm4N(`9(Y-?=je1PXCG; zc0c%m7}^49f;&3>;}q?-Ojox9KwrCG&vrjgqZG9IV9yiJBljAC4AU(o6 z&WTDD@#X;IVY)d%6gDZlRL+q}r5t@b@t z=dxX2;RW0-pg;A1M}rh1Z=p7rc9Kj}jJ{O6K#ICQ@PVF}%7Q~@nR{Db^1INN-s9p< zi$cV1WRQ^JoHdsUi|slsJWQHUN`2xVPU}J6v-@tqAL}}KoaxPAD{JcfYIi?G-vL(m zRh%Py+kAT1GTa`nyT|IW%=RG;Pk#yV={zNC`9=Dmv&^xRzKYeu+#=p^7&7=b4(h#n z9~}NN8I_D5O*{DY7w36?{5b39Y=`&x@zCq9FE{()G?Dg?K0?-ftZr~0?$`eIgI`ZO z=ze|)L;P4b_#`Ep4C+u6Gw?zePIyeM@t;h7dVrbMk}TReb6a#<&Bf zup#lO4$=Zp04K}~%>YxqDU!2&MS=ZRZ&X8oet0bM|}5co}?_V#>#Gpt zhvKiT^}~m!aNr;8qgmod0S-y(d}UGWyQrtgA7n4`ov*w39Cq|?mLOxaa=hJN{cM9z z|LXJgO94%4D~H8JuRQ*Witz2`52B9}@N6TS=gHUCaqrhN2zY4X>1jWQ(c-bTm%sTT zpd9wDQ>tFzn0zv)`rHtsUx!&A?BEON2VLtQY$j(~UpeisBRu)B2Vd6F78nFig*mGq z=-SHZ>a)CMxpH6Q#C1H|@?GuYB=D*X%Ux{+J7$Ia0XjW>HaLbcvEAEPofL~c4$J;#Ra5m9BiiJ`vSjdzu7=wn~A``kRpqOqk0L4mZHsu;i>!QXg zK*z-{mWSyX)>noiQNBX@fz8AyooIT{>PLVZ9xAK?i+9-;Gs+-O)Z325Vxl%K$VkK zBdDBeooEl(9fMc69!%CIew+$529FAWV)Pm(pC!m%XunK|c+a1uwh0GMae8Jbx3$R!Xfp80V$9UOq zSASK|Qjt3j7D`)Zn8w?6u>C2R-wX{I0=RdJpLG(3Ic$ly@-@8YgDtu`jTRKZ)0pL$ z*Z5-2tFC&6+`Gh51nYL7?EvUN7r(9W({47Ohlqdm-mgo=V2+^4lkI*QO?9JVZ>1{@ z01sLX&naxL@mSp$zekTfd5LW6e7W`nZX!?A?YqC&E|5==1?2E6C$$}y))tU+VdnZz zUtIMgB|!d7fZzy^2x8BVeromX_Sdi9exv-H5BRk-n(Qdn*>Dfla&Pv)$L-S`(OUUb z`*~LU^=t9t#}<#CH1DmIwUC`J*ZHz<>@-@b+5Tvo zunzm(&sVeW*Mw$w3wWEmdd)p9;^~rcKP@`kq(HRL<*!%DQM=(fAln8=ZH75ham-|B zLR=P-UdQQXHyp+pnhK}Pt`qox{I($H^i5SaUS-dqh4f^~35l{GbqOb5=79=rG}Vkl zaubE^(!pjpj?N9k-;a(k&rvl3OHA~zb>n(M{IGIBP(dBtecs-qGkqYh8LTi`*`QWi zPd6|L-Yxs;(MG+j=N7hpkZD6nvz}zXHblUKFKxZuiubx69ZD^pf`JW<)#Sv7%e{D9 z5BOuA?ge_gD;l9y%<7~<(A~2E1MvC*PwapO61Lv8eaR}Oh@EC9slb6fa3|T2q9b@3 zG52N{TQqV8Oge{(#Wc{)>>HJDSZ#6^ce7NX7@;c!0#0($a1Qu|i zU0$WTyRebpgN`K9OeuaAXuECJhHuY41S2&YqQE9H=OCr=bPAmg+YC|6CPAYan>SH< zW@D12(?xo)HhnTk2v%vxVo~atldjjS27H4yN$;pPON3wz60^eqLs=;ptmberiMOg@ zK@shaVU&9KEeoa~GpN*fruw&*M4m)^F#7Imc7++HOp7Mi!+!s13O4B)3g_G`G( zb;^>l9+0GKcvxA%pM!6@;KN}!M3s0;*bqWZd{c(u;XPm+7N zOsjy%D_~v{g8r^WHC#44d-atd6nME%n%D4lmPR|Eu>u z{BrxZ2a3Kva}m#R^8<3qmFNZU*@o2okH(|%XIdObpxY8#L^Qd?{ z?)1$jM(=$(?L8(|HvqbIcN^F}7znvv#jUJ1Evw<~B-lN53MF-?u^XbuhPh>2_HuR^ zrk4)S$?4dq&&IttDzfxEu;FdB&`Yf-uIw9;PO;l3eh)xjFV%D-%kuF|I~|me9VC{C z%StljbnVF}kzi;cR~1}v8VZ0zQCQldvH~|PN~eos^{nIyz#sA$z!xwzmicLfw;8h` z%wAh957Y2-7jP}(D%T11Y)oXe`a)PxL7njPEDDMH3+OOl$Z$W@;iQRnSGwErM;s=J z)NvQ#?fVw~VHqyP6CD}}*&@}hTx2#q{NXv>Szn@_CuGvlW=#NF4PEp+)h^B4op&P&=-46qel((=THCi>qxhM`vUsM zU;p$4GxghFf1P@MJU=u)=f1z=tN;G|Y4>fMU%kJ&_ZK@n^4G6F?(>(gU%vZneeF5E zIA0|D$5%gnx*uYVA3x6Xr{@QA`UkpB-;=I|o^Y0-<$;ShD%qHgqn+&em%se!e_y|Y zc-Tk&@%1c|{97QEw`w~pd=XX6e%y_2E}7@+$5*^KB1slM}DD&j2N!Ho>l>5s(Mr)}bUhGdm4-7uF{1RDAdrMD? zn~}e0JGRL*77G&RoaUU`e4(`t8`EjNKP>WDJ`9gm8@QZGik)ntryd%v+lOq~-KZQz zOY_(%u^Kv%bFov^FDtGNoX&1MZBCkY4?u}7nQA21_JOSSAimJ#sU+8fcHK0Hj2RFO zDN7v4&1}Djiy&!ExSH^g*sNWWS#km{Ig9R-xLJ&uQ&OS}VI^SE<>Hw~WLUEmu>;(b zA}aw2l&^T&%Ua>2I%?ynXzEc6tPicUV-i>DZ6TH$kZ3yx=*~T}=5%XSa=Mb@V+LlJ zu686Z$S$Rkzy9U#fBDNF|M=G@;KMaGz-_$x=X?)k^j45m71j(3WaxH-f;z#t1qevTfvH_7WEO)Y*#Sjh7UWN@1;Hla!fBof8 zb;oq~X!QAcjqTI(XJDGFu$K3^B#O>L1He@JKKF~2I{WEq=KSSfo|`M4tMQ-z@Q3eu z=l9C~8`pd5$znx`2=eJ*f`TF(SpMLXseN+1S^4TBVy*TIeZ-4*mZ_lrd{0!1^ z8;Q?)?TLGT{L5eK=O22Qb@aKmbs1#(ZaM2^~pcyPM)tJSRrwz=L$>>^HO zTlK>$xDt~`?1Wp{b~StgjNiVi2D(z?p*EeRc(Li>dKo0;V!9D-trS`r%jFZ6`ner} zHq4F+*RnBeOpM1_1r!A?f~8zdaF6Q}?6==eJ~T+uZM_5=s1w)#hR>#Rc3kXPN)?XN zT|hMengkIXg<{|D9}YFAXON_c_EdIbL;cp5QrKkC1xGwMA`XtA=iXCG$!fYPwTC6N zgLN8IJ^J^WQufP8NkKJYR^k4t_r{}jXU%Sf%9aP1v&PdZV z#gi_>^98KWU;g-?{N)+{>DT{lqyFuWfB)^TfB);>|K*F*fB)@!+!dyigIlY^QTHb? ztG)n+;188@hJ!Re!l0= z-}>ffGhGjJb?;}wU)!B*%^h~iXB~RjUzlz@lXvb1gWo?t@6Yc|a60*O^nSnJ`TU%B z>htq&pU-}2|*l>p-s#jO?xS4sZO5Giok#Ob&8$b;%M&vqXG-8=+g zL?W|K^Du1FI9`Q}Y+tbvYipYwW<5}IFa31$EV$C+Cz}l&aW{S2k9Dx_o{d$m_Cq~6 zU7Jq6_{HiJSz((hxLIct%7I!S0a8xT;lRywP{OgS)jD9Mjt3XjW*7Q!`!($hF^9Cj zsAV>htw+zIu%uE$*`fR2>|wWvj}fmzae zFb%?z-NjWlnWMy$Z4FVxv1z$r+ZCQd>AFP|o_2m>M?jwVPGaF{zWgBjknhCQm zlbG}_x~OPNY;~C?2yyMc40_@M`{^c*f{qZ-J%p&{obolkxfBNJ8`pe&cTR#5!_3KZ6|Ly$v?bjdw^2fhCfB$-Z z`|a=U`~7Ep{q@I>zy9T)@Ux8br~lQmM7I1w>aRck{f~eBDA>RJ%fI~T*KdFM4}bjY zpML%L`#=5h??3qc&o{sQz4QP6{rB%b{P{oq$AA9YKfm{1|Mv6u`?vc0e|*NKYy?Kl zIrH|uvHKGiMH$L?ryoVSt|RCpffEqm!IX{P%9*WZ7l zO}r1t5L*lr(3K#);x^-CS8M(#t8vtB%@OY@dk;6QUboUY60uWpmr-|I?zqu|JnDvz zRtpI~+|Y48=icw%KX1^`=jZP~S-)exzRquddcgVppTECfSkNEdupC+kr&4(eYB?4B z+XPZnOnXV6!Nk3Lo}MBNWHnbs5oTD}<8Wbuy+lLTP!W3qQerRnSiGGFCfD%YFTcv- z2hU-hv}X)_zMjK%8w+EeUZu|yd#qusdyFk$)c{u}TL%)z?VUc@bdPO8=&lQ7d$*)E zw#uMS>(pn>sZ{eRD134TTLM8Lu7hr7mgMXJ+I88>li8db+P6Ai4K77+c?J70+WZPy zvRyLC7U#5asIF}S*&^VBT51{{7;o0l;zx7L{%ZB2c z28o+5+&l+WY#A;OkQ_y1)Qj}R7IRgBt4SsYS-HoFb~`R_wNXAHdpfOMsUP%T|M*Y; z@gKkc@k5|(6ZqTzJHP$k{{4UW)BDf=ocI3zhoAraxBu+l=GVV}_UrF|{r7+R_2Z9! z`RhM5{_u}~{^vjZ?cKlp`t8?`)cfb3Z~gxL`ToPb^||@O_fJBZe;(-P|N9T0SD!!p z`5*n4|M;K&`q#hy%U}QaFMs^wzxVgQ{-^)hfBNJ3rrYtE=?yKmt}F+$=yQ+-FY1Cs_1pavxMlqFBI8sz3mtjOtbd zOaN5(dVyO&x6v@oZPrQ;e0nzFQ!)1o+y^>MLMJP#59|c4$M8m`HXT@JMSsl?_vPcs zvu94`1R{gKYsnw^X2Qb`|IET{jY!h_3O7U@uJlM zP5$`pM?W|1LJ%vR&NdiyC`3f(QR9n-yG{WT3r@)mSa6wEFNIDu$Yzt?9e^D-NVF4@ z19c}Igi#~YX_#!Oi%4{Od@W+%qsX*u;AFNab9UFod% znRAf2TyIUQ?(hHje*gad{-~aQ^`{wuW{QjSPU+~t|JMYg?UggxW2x=9X zu+Uv@Sg_ys_y6<{fBu8`8;gB^%Ea?*AD8}oLkHiajr|StQ`6tn1G&)iRn^Iy6i##x zT^?IJpB%DP6pLrNicB7=FO-%jE-79$(6ht-WWR137hSL}V$vmZP8ofphxb%p)|qFB z+UPhLEVaS4A9Fxq}j?BdxClSAZ;L+mHWT^G?=4qO*t5;Z{S$Ah|t9`#{;Sl)3 znaH{e$ulsno}ompc@Mowik>oVbK3zrt)3Xm@WI_$@1yA-h9QE@O8IdZ__5GIi9Tuf-8I7r0$2U^{L|la zFZb6!{S)uc(f!n){zL2er+@nT^B?}R|M*e)*Ps6BFMs;+>+$*e``=ZAzx>r7g)S7K zB|vW`Us84ABX)g7x6$a`F=YXODJBl5edq$)W-tsFRC3S;k}mP#YhDH?>=@V7QC$6X zpOzy12_-~aSafB*aQ8}Rk3{qrCH_UD)6Z-4srYk&NB zzWRp*i3~wwCM-2NUv0NL$4vA2r@wrizyJ1io?Z0&l619;-REEa{`@%p`@j6lk3apL z`q%%#fA(L$3oP>Kz#?iNM?_I;pxQZITH*cu_eqdMOm`JFSwL7#mwT&;7YO&=2i0Mm zO|ok8C0fb*Q!~^By#g6k%SM~(3AlQ(bpm$@nk>S2sWpR5=m8>)_hqT;kvq=n`*f}s zE{OS2LbE1>e7CFp=3zd-qF@L{<_Gw0LJr7tWim$fkS?<6pKx+dEeai$IY$C1e|{_q z)Q*Bs%zUXo4>{$>^I0uhiVNy4*>zA|jp=3w?1oYgnR>j-v*Q(e4d(hs9fX}0ldjh} zX0yGmsxLGg05hi=h5l01gY9YlNcKKUOuR^J7m#vkWy!`U{2vA)*H(_R@u{jWwDzDOV~K zl$bWzlqIf}t2MTLs(~sTH5wi3gs@#Q4_JpDt4k-RNZLEZr)-(ci8YIU<%yQ>7_CE& zAwHK}+y{t}n0f#lGOOYad9sa%0c>u-e!7&L_6d{z!C$BQdGN*U{K9h{-_{qf=lS~6 z{`T9~*Wds8_3KZ+o#(nX#MkvHJ!=)0KKuOXFaPq}{P{mSrJuk5{Q3Lmrfxxhe$Q`z zsXzbWn~6|A?;rm4&sW6rRe%25&rf~-e$RixBh5C103eFHKpE*o$WArX+LAztdE`)R ziYYdVcbf$U;T91%ya^2PVV3C10#sM0N9%*SIK( zetVeTfByda=Wjp%_Vd2Kzn@DlzOR0Mj}@T0fBWNePT~@ZC%g5G(#*tvTBsTP<)7}K z|2F^n=kjx&UqAlo?_YoU%U}Qc_g}yL_Lsl>_0Kzed%3sGTfc8iP&3q$8+J8w>H z5OZaXy~S$ZF;)~10B|*?R_NC`wJb;YhpWj05B$_yYzlby=t4# z=i`b`=P4}G#!Aeo{*fn>B59-)k|NQg!KYaiEefY=IA9Z&Z@t}VD z)1UtI>ra3A@!P??fB2M>OCSpJo`KK2-=DXdxNO;mM)>(XpL^Y;YwpkU>#u*ZnhX{T z+2N2)CQ8C`t$LU)H9g&?-`!3J*r3P7Y&9+oHFEKb>7_kq6a49~fB)^|$FKkJ_rL%4 z(8Hm{`0?%-|Hjh?s>1^ z6HEKV*1V(l^M~)>pC5nv``5bir$69Vxbw3W>Q1w$#t3m_m|Oz`OyOuM3*Xyj;FVS-Y>v|kou z$gM_Svi4$+?iXHC0J_q~XYEuy=L3K5i2n6m#POhAc-i$t7kOA&r$LGG6QxH1y1-OJ zqMLPvGc9+)d~~-wAP2@*-P8J}+WCA%IDF5Weo)16sc|&!;(=IvAJG%C%8%Y4b-p-y z+C_XpqlfMoZPo+gS(EU+E7H$>``0?Ox6bAmtxd4`VaiQayZAsR7enW4x9uM*eSt_$ z^N8Hx#v*QgJ!W=Copu|c3MvVH7Lyzb*|LUvMN^z`PzY4>9zTs+8f(r%%P zjG2~6;;2CmyPftHEcVhMoV0kDPWV2ELp3)+IfsGPDEPEYlRy6Q{Mz1!=jlK4_doyb z&)?tQ|2#kOi6_)PW#wT`?KT4T<|3$$EC863SaOjxozEYB|NQuu`(5CW)s&~@+gjRL zNYN5mX|v@`VwbPe7L3TmKQya0bAJ2dUw`bczy9|3AJ5lsU%&nKN7U!TA7{V+@jqJw ze*fz~|KZPn`19qFpC9w{cg;Z4XGQq_*NN_t7~GG7k$4TO>9>WlQLh3Q7m@ zK!QLYwHQiPOdw0qtpz9~;2DGW_~C4ajCS^gnV7-psTNzzqzQ)z7PEuGEDcrb>+0My zOr^Iziw)HzVS$A$7Yp_P!oF(kHRvH(W}vi9$d~V;Z(Fr3ywFmYYgN{RCQ@*%YH#~4 z$=Rasxo(N57Gr#&5`bfQC_-*2IL&K@HmKSPw}VaB9!@+)_>^xG<0I5lTj(^Nepj8I zpz{QeBUg7`8eo>Go<1}HYuo)qL$%Q;0o@I!Iw5%%T0Rywz?a$%9usqg_eTGAQ2{1# z)&a?bx`}la+`6E>wwS6yQ^uhY3KjITT`>TH3~X3w_&jWr@i`d_t?p|*9vhKSI28^}S&-JF}VfYOtL5GKz^hw%B~-+mpZhlO=~o*%#c`ufwa zuRr~%>k|2GfBhEZ4)wP`4_)8i{!%J87wVza+}NBnt3~ z4PbrE-sjh!em%`S{o6l&&+q^IXWe@1`}gm+roMmv;Z211 z_wV0}TP9~B_Se@hU5<2THQg@p5ji2yg^db(%ZdAG1))5fQX=<JLVgprM+Z%*KijvjzWC1L znnj->(~*mu72$H_KKos}xovsshdSB$^pCpTVtGDaC((4*URN~$f)`n>85E_j;?*)v zhTFKHt)fC?571}WHGFNzQTZ&Y*St6#npBMR{qcn{zPQR!L^;3eqcmTxb{-H}bMTT-QlhPj9ETi~MnZPo*mV zc8Ky1(yFRlgl>}9xLA{q?ginfLJ5LE_V)I%QU!^nNhU#sL_#I1L;$(Fd%P-~pqlja zKA6CzCJgkI{Y4l)IluyOkY*^zydU(Fc?KkHSzrRzW%3(+1LC$z#80A7z0Z_Z(X;5B7cACq(-Q;k` zM_2j0?@h?5!}J=E0n(=4wx5#kmJ8}K7-m5k70C(8G!f{=YC7Ni%a5;aHWq1g?IL2H zzyI}L{^c+K@|RzS+wt@Dr+;}c*&l!U>)(I<>7V}iIO*U1a@gX2{rLLz@AKz>epxYi zAl#_}1@VTg#2v1YYWVKl6L_94o<3)oG|PYfd;;V4IluksU%wfPGN5k6l`L>XiiMW* zfIt92X_ov1SY272I#WqbESN`dGfX3BfeYI-;#A$8@sV1g9!1>Bw{|wpm-!`awYsu}ne-m2IGZP=1Xi zz|&$w)usV1meE$0=pwynl(w4l1Isfzt57D>;yA>bZ%(eHe+N+{hR%pV5rFCVs49vw z7c+_qSAm!i0EY_eRg?&c6e59bfFw$jrXZr&^U6G+J7}cd`dr-^+yNBiIG%xVr`A>yW~1X6ay< zBC}a(4Fo33pokf+y3;!KXFiYr@=rfHx4q_~>$m^V^YiCF|MS28{vm&T{rGkK^FRBC z_vfF#|MvaoSKojBfB*jTZ=cWaf9PMo{{HvhT6q8YyXuj`uWSj2+AhKhLYGidm>$I;)yI`stbzrg3F^}$L zdEEnQIqkBJ)VycP1oR}cRQL2u=mQ1SmJ*?Tinu#c+mt`rc?96h{R%P%Pw^~@i zs@@@5nT4uPb(QZqV^tUD$tuat-O0o9-uElM=iS`Z$*R`6$zs69O?PsQTJ~D#wp(~| zVkSE|`9g3SVRb#-#k=g?aJ1o8XR7i*5YxjPb{VIHtx!vJ+)t4QcC~Oii@-m$Mt)d2 zI7_6lpfY`Ep;$x*PXsV%2;w=QSF~e;kDt`P8>Cc)z%44lsAv9m2G7^zoEWJEzp zNU0J*(4)6sfT%(cbs09RT)G!Z+E4M^V;SdFDpiH@dVh3a=KSTU_q`?Fh6i16 zOXhc>g2r$@S2wB2)%R!Kn%YFpN;{Re**PcY*pkr@FmOXa+)6V{kbXsR060T}0jws+ zO%Wj)(*`d(G2%2$K_HXp^kK6Bu)dg9Tg{m0069Q*j!fr45ljK-NoTr9p<4`<4ltkJ zf6n*I-~QT%3H|&h??3+eN=#9o`}xED+s|*g4Y?;4X@Ee;}R)^v4`2P%thM_YX~yne}!tP~;~PL44mZll9kJgFcdnlsDpY7=ym%_SvTr+npw zos~chCSM_dL|~mE-XFErleQ1I;;9G2$EQ|Z6q_LJhVxY?Y)q4j6>O0UA&WxOa$>5> zG|)F4gW0lc8;YM>2OIHrtTIGZsz({+--T4A1UAhk5G4WNAlpJ@DpR76Afci#l`11D zsszIf5FjfNNW-eGN~Cr|k{oDa22$YYYhnHR`+KJ&JT+Cf;_{>r&j>jc zl+yL3R*%s$lsP_~-T-2f(~IVY$>ooHuagDiG;A0yZLq0B4%e)1^)Uo#!)Hi~!13G7 zODzy)g^s6>Vi|TRJ1GKg!1M4UbC*5%S`S8rbnONhVw%L!Svkx$n4awFsa)sspzhq+ z{`&2=KYi8z;KM!1;4DI9?3x)B;xbb{>M zZN+c`UO%7due=8@TomNJbi33>r^z2~1|6rucGv3YbQ;+Kth1i(OWptwI;=I4&9zyl ziH5U|cWXD%lx!iHo{wb6}m6QHqb7@Ck3Lrm!T>Rcg441q`HK>=VL6+;;4 z5RV8KXcv-OVC|}y=%Ac%8RNPf!E?x_2TfC(7*JTCi%129G;Cu*o7Gj_du7pRH8mc< zgAD3ch*4O;SNZjzA*5^FJ-5KUU*hyZlE6sCu6zzLCr2bFjwfvsab->gc?LTv z>B|`909|SXS@+}?R&sr@=uBBB3~%eJg&Q)R{RCeM4FfInn!e3OLPq6j=dMa^v|UVI zq^Vwtq2Z7RqaB{Ewh*t0a_2cVEp~thbh~eGjIh)~8>RJ07z8XnrN~*cwi^{&hD=x2 zflLB>pF99ZtzmJJcdGF3Fe;Ts8H5GNAn1+33xH&j5lSi`2w;MCHxsB-l|g1w0ud5P z1XjYdjb01rAR7kTbnSL}nSjL=Zzs+>Kl-=+4*GSNp>W_xkfRc)b)k!H_$W;&N9pCG z0wtz;NSNG6$2)w61g3NdZx)lFvURjVPQgs`L;BPX|O@U@!ZcJe*WRlfBv|DP1t3i z?Pd(2TP{3hQKmwI<6;^()tXK6)EUA}H7jyN#aQ0%!C5tBTpXaw!{rB^ig#QA0Z$Lw zB-Lp;fMe-)0pbO7!s&E?q?69GQMe$JhKpOSCnfh$yv7y;crzmYAx+1`X&rP!B(Ae% z3RXdg;WSxhff#fJRzJiRNrsgrwnIAyqxH>0Ow-wP*Y+Lv8Ofd1#ZfV9o*11hY?sTp zE%$(yt7{q+y35xubulMsx;k>u#;S!-M0uEPs2gL?xs7S?8m?qheV;{9P`sXI7|xc1 z0(N?=G?N}i2NZN<-XhTEfF7w#c23qYbx@k&$pDMzE2{MF7>Or;Qf2 zg1(4&(bOcGh81+ZcgZl{op5-KPtl6Yc3ETy5?pul#C#9Cx+8s3B;Y$NhO zTW@;?)jbKB3&#Hd8w90pF)Z*HcGwcq?8dQglk7SbccG0+D0LIv+m(*>7+)IB_zJPqakZ4j zBX>b>;v-AU(Z(mL^lAaag~h8lO$wW|O_E5LO=<^3JPqFG(( zNTwvRrdFzBv8==~U9?&`b5U!72wK`}N^P%kX|T%3=cs{{x_1(oUciRJCyTMG7wxyu zK2i3jwI?=#^_?B5HyxcvO}*MnG=&#kmJnh z0-g!Mqby_0s*jm^PNE!0e867OVXzG8z0<*9HFA*^j5|Gu!zzkmCk3JlCv9RjrVJO3 zldM`S$ieN@L4>tOuKPvlQ~>Pr&3wH!#{-%!=zK#oSy(}5z>awCn-d+ts+Mln>?uB* zylkM;6+)d;%J+G4vr^72uhF1X!U0ji4z;(5D&vbI1yI_)UzpmUoZeuXfg)2904pIkA%TecS}&%1w%R8 z5zbSD89p?#q-CHs>V6|sF>*bIe%VpBf zfN|Sbr${t=$0k{6xH>ScRGO)FJq^S&9mg?)WjZcxW82Ssw@Tsj$PLO{QH1 zo}~8$os=Bj6#+J*-eDKxu5`Bx=pa%Tb4FRPg>|5QkJ7d3jL<2fvb-k2b=Gm!$_fP8 zBz&vP36WrUwcZ3Fk3v^x!~1Ysz7kg(%R+L}LA%V8K1=wnQP=^0d|;X45MAfhCLUT) z!&R~6riW&914y++H%uP*aSM`*f;W}BW-*A`1xZB8Za&QA*J;NfZcSMG&P#2$B#9 z!GNI{v&0yJs4Q#>s6ubf5}mYqCIk;ufz?Mq8p(pU-WUUgtc^X4R27g0e1tX`q+*d- zx+qsJN2a0em|Te6K@EF3j>qgKh%O}#V6|hA>1wFG@g`NRpcM{8(}MekfLVA5G7t%^ zaV#!i+5%yo4#8vq%OTUls0$77l4KD!UDZrGEozkz^AKZ?)uiex$)W`gI?c2jFp*G8 z92V5dfs#O^DHf;U)2FtG*dei%*11uD_8`Zl-h95Gz`lIB!6{D~sJ@+tZgx&Hrs7TH zICKFWb%E}XYa(o~+>BkGmMeLxBZ-C>L*zl^RCQ^GtrI5U4z$6ybGa?c!jDqc`v}N>Odx}3Mrr(5kZlgRG>3CPek{9W_XJC$=5~BG>WoYe4B&CFlX+`nPxGIqI`X(o&<_R$g@*D{Y(?L;kP+- z2!;-MmsI+8JqVb!##$jP0zem`L!>t%V6;``axPBjS3a6YAi>mK$PZ3&R3PK!I401| z7&HpVbWaYQk}ED(U{B}CNj7ZSQ)z~_H#`ZJh{=LLneCi|pj5)Y(`YD>42Yx^0cG19 zA{FG0R3lYQ1<61a7AmEnL?uyzgiHvM2xx!^V-gxG63NqQl1?+~b{A(1o;8}!Zpn~j zVTz`2bQGN2Q9;2&*@kU`$cEucPM2qJflRymtC|+5Wii**y&$N>&3xQ`qj@c!W)=D;pa)_x6M^gv6S8JimUg6T2dwf zK+CDG;2uylUy`e3t;H&bDmN19J-eVC#y+j#CJY-~v(e*-##ta%l7*zEGsRw$ws1D8 z*j7(B#%NGzSj;I4DVu@~;DBueT&o5a2bhwhlYAL!a-psRzO+lIO!(AoMFxE3qO~k` zNlL$kwY$od2-GYYzAe6r9^NsjXBE_mI%ngmplxeg^sh8hKB+=)eW%HQi&-uG<~45xhz}l-kVe%yMzx!+QdJeahy3%q?}`Iw91h zM^);+z>0vj8k~5Z@V0fEY@rx&-1Q|O>gwAxSzuVf`klZ~f^Jf#lsvT_c*>?26DzZM z(+FEpIw;ew0zjAJ+6V>%_NLU+Lp6%A{6L1BHZfI~qQH%lYK)^3BU(MOy<{_RK|T!F zbeh-kvM7z&Ec-lEm8ASTQU!scM1evGiU0v9;6jK-0tp}?LMRlIjHIe4ViEvpN`Nw{ zkr0anC@W31z*r2ZL?lY?vX~*3iUNZwLrjp!S!mw0)(ja~G@jbDViS)=cPcE35z_Wu z9;De6vf6ZFc6?aQYz_Uym9?HD*}xaljS$YV7=Q$t58<+5z=?r_6t^5~V6JzJiOdWun+CD{W|{rW(g zBo9uUr+{tID$_b%ArThj8@F-ER4*vOB6dzi%ge3mu9!m1iH)tE#cW)31fgThp~W?c zB8p`XjFyThChQBs2SG1!05=sxAnmdaQEE)FHDF1lL3hh__S$sS6{t zP;djDwtyz#kjH@~yO76shbX`f%GDR0KxdvIv(>{e?x{Quwg90RH<=LMaYH>^fhy%| zw#qCT#8~uZ&_E&SIA^-lqUz!0swor>38`8bJpF;InZ32dY}mQY0;iE2z_l;OAa%sD zOc#;|86L1?B77VNNG>7;Zh49AgCt`$h>i4r;{uWZtofy8z! zBM76ztwxGn)UMQbwNWlY($mcbX$RE<^=!gLD*aOBu9oZm0tmKlw&4?& zw}=QYp7e~m4e}Td+t!X7a)$$V6;)_3A;E_dv}2K7k`^$m5KT5^QV}~^@WFUl+6$Qd zK!xREhl)}_$sCUpngrl2q#H1L3QtwYu8sNBRx8ci7IC!;QhsD+m22zk+Q@ew_yb^D z-#avEr?RAwu@-uQovrN)HPbLD_9s&(orAqQj!e=+7gvA@92j8d?F0bmiq){hs9A1W zD2%N@ti6mC%I(V31xfH6Etln5tkI5u6A@s|vv82_E#P&{>;lmoxlXYiCc#MV6oOlVkX_@-%AUzo&D4`7m*+q;*6-%vQ$ zLh==qT9?9xyhtP z`FEx&Bq5@y3QR{qsZbRIPNFLPLxT8+K_N&qHBy2gKnMX8l2jrv5@AvmDam$Y7gj7- zUDF}UlC!rRt4+qTixC-y1vSMtRA3aAS{JI>*l-iN+~QQg$m9tvpbPxau|t=;LkNuq zj=F`T>9Aywuva`;CJhA3V@xjsSB~VcJ4BmD#W}zhA~5u7G0B#78V-TTjY0)m_TZ3g z!iJPuZ=;|-L-a+%3j!kF7`xQMgy2?cl_ksVauIyka$`ceDD>1qVVxqLMBEaKp#{5~ zG;tES5RrwnJhGK8i%q2q+A-CM)w2N&mbsBjfpc1Gi7mzv410y@>2j_Eh0~LbIv#8^CpX&zY-Gun zr@Pn!sRemSsL}w37IO-fqcmiy(2~O(syWR&bQrXNAk?1nP+49C)ndwGDulb-&hoIT znF5S}$jG7)rcwu4s;hBeO3<(oMjoXRq1e1yMxa1AxTxMZg|-(Q6r0KdR5-n!Y^)xx zOT|{T5^%W4sPykDBg6~}QQ(9G#84&1B|xKp2q}yZ{R2sfN=l$a3KIlOAe53sNX%J8 zatY}6wpDOI5ETk&A!s?Wwvu?z(ua$PZeDUwK@H#lG7wIewell&lFmX7QYYS~u=Uut zu+8i4Nw5jLb6Vk3;$FL8A&-gRnj*3^NrX{n zi9;0`av5wp#_NPemffHn7>ro>s+dGaiO$k_4VJV0s#C;q9nuK)v9Q$zj*HZxjFtq_ zO_^wRh2EZ72QBfS?!yLIjoR8SAt~1O?l z#DG#y>tG8Hri<92W2P&A6=zZ1yEV2%O!#VCeMS3faM73jbFf^v)+Q4oU7>w*05@Gr>$PxvB=M}LgjRH!Yl?(d;j*w@LM&MDEfj9V zX;`61cZ+EdA$egp4W&k2$vaKLG3XF-R$&fx4RlE@JV^&8OJ?8}9jdHE&ePLDTu&pl z9;Zz#cxiTy)jM(swj+aqQ>X+&8zGg(8mB}hr~y zyXCaGCDSk!Xy^eA$BP!24zLX~D5OlHTg+A zZU4Dql;_RyXrfu~L!N zzLYB_1S-7vz0b}1e+>`%i``AR6m!@LtaMg)HvLcJpZ3Z9zZWl$<7eH?vSt6B+>J^T z`m44T`gjkF`&$>P&<^vIZmu5>JN1w`r!}`UZh=u4C|EUIA;cwUS!?lF`4Y~chPbXB z4uAjU+Mlf*(ke|FGeOdWMbWi!4V2v~3nX9<>ulk?KV3~fy4%K(2mcqKw>i!>GlO@7 zYrLI7Q^b))@%-$Ui;+JUeKJolw5vD3jT!sJj<%DRtXs-VUkRhf-8?H6ppJTFe(U#n zZT4+62a?8R=l}YLQ46%4+A59$i+epB8V7F)p%$mFMz3)DglDP~a>$GETkM#?s!ZBL zHBU`P(8@?7c7?kw_6;Gdhq?7~jy=(*23clqX3|Xdto4Ffc3YVBQ}suxOZ^WW+1mD;2& zQh4I6_b_3L?Gqn9KpKpy6!?r%Ud9&@1zI%WlgXgt7qZ;k{*OKqC7V8{PK%n1a+8b% zd3A*j&~E;T*B%DKm@9!Co&{4^;P<#(VZS#Gm(yQi78d)h&qF{Uw!>HaUmpBz=q$Ps zC$?L}FjI=$9SbcCMZX$-QsO-So9J5Q7KLxYp7_av`|cU3Pi5ip_@he?FN3kB7fYi9 zm}aNqruKGUH|ADQ{-(~95b3jUV}cvRd7ypC=bRb+>SV52?L6z_5V}0;Pd>wlCsJ_jHu12JmN+V zQIEU{asFOcI+7o+=(y>jUC3SESiNz%_};$yDpL+bVHXT>mj`wlkb6w145*Ye3Y)Ws z>202{lV*>@DwOrwH+dfF;i@A)yd>Z1xrg!F~-_Dq;j)S5}eSYvf#wddN!H6o2c#gIel zyl1IZXi9>HCpb;dK!Pw?*0k&&=rQYN5M@F&w=en7HmByivq7rZV$(}hqN+ftubiFe zzcP$QuC>rXLQWu8M%4ZA-$~nCb9TbLS;2Xw5!G!P{a%Yov|w0Mdi5GY6X&;8b5Tz zRxh!)@o)5fW$Agdxss$Q5g4kqr9TWlyS_BD(yn*~v(|Qwne7=Fmn1h+bNWeS_j!Xm z)d}J^f(JLnz_1nVZcSAOqfFEZ1ba!1IMn;~!U!b?5PGPP`&1U?Jp0oDKE(z;9dU<0 ze>>bdYG*6f(--?7d!F zXj)hYPl`9U#2i{qTzv48 z$A&BCOY+u3KJO&s_`exk7OyHbbe@4N5K4nzAS9d)t@j%_0DjZ3+D`hGrcYjBMfWEi zYw90f7zx{DX2;QS5l*VR3Og;k%%(|fHPxf1}jt=_C!6C9D)pXRg{{A$l9 zVivBl;$$q$`i1Yc?nwjZxYwam@Id z#DXN`+>{Zz0I@%4!qHgv;#=q{wU;Y*-jwc^vrCmwPRaH9G-rQh9SD+T#@M|R;!4(q z4zXP~3(8VF@)xk11yr!s&wMzI#Te#P>v<-?+y4~bE=4pJIADn-u4zozCE z>ps)PEf-qm2(2{H$Mj&`X@652!+tMjGz?j=C7rvGq*#JyTpWBoQgNS5m{E!}Uz^&G z{|rLzyCfgXgGqYvR(8Vj8i=`f+*`V7EVCMI^Qpxdr7;x-+Pb2-rr+pHJ}b5vLnx zXv4;r&GvE--id_KkDi{Z%Wkh0wBfVIufa_MBKi5S+2j9tu$HlFz^k(;ylVSi)Q*KV zAIqkJ7I_C}LE z{~gkd!{FaKK==-Ne>K$&2~|h>E8WIWqC{s&iIQtAsc@OONI&SoFX;j(?UgqZ*g$B@ z6^?iS>*JFz&`HSJ|>?IPRwfG<*C-CAR^9;+D9sTSdj=+&GA7?M^_54qLij?u0p z4$8&xjPnPO{&eRpa|-xM%#iX`yf*KuXTXTCU;lh|hyh~>7W#-2;o;~eU6M&Y-k!w& zyO_y&l?eC$k^L^O3*_z6hngt<%+I!cHrHFRZ@4@wT&NQJjY+tL-05Te<_5#S&(R)m|I(X8lz^twv_1o`IKI`$@^ih z2P`FukJV_%d8Toj2Uh^80xwfXLT%y>G8SPh1e!4wwtPijQfdm`T=%_Ie4e?Iw?y)5 zB)ZKO@i5*2#^o66>f5s~<+Kkpf4;U+b#>>L-6T{|S;`fr=(LZ5#~ z=AKUQ0;vZzGYpN7{5Mm^nO5khZRowJ4Rh z&7z2NFXqI213v3*W;CVzHUyO!LEcX!Yj`dX_~)nU;L`qF zniW8slNeOi`a2H#rrT`NZq)SFeF+{&2X@*X(%LiEX0RYNb2^_7uFwoGmz&+c$TCrC z&sx-$V(v?C3_9j+pU7VzRmg)e+qDFY=YBj4jwf4CDSLvRfc2MA&VA8jB$I<)U7Pxv z9~$HA+c{Ucl!s3&vtc!gHx>AvCE4l8v(opOO=JVujmV#quq`%o>lA}q7VgO-+3OLQ zDho=9d>$Oc{~O)Nk1^+GW}E)g4!M~`E-k78mcM0Ow!f-42=HX^p$@aJxl&@I=^&23 zquC9;CnAiQD1h8(&t58xl*A=n@|X(@3Lrc@DhGe@WxPHZ-23hcrl+vTzP6I}hEQA= zSAf$L1#h;i#s!4g@hUyV86Dhi@RIrX0+v03Xxvrs0NSt4^`$j#fb{+hMPWRT+ORmn zS0rC0m~D9H%UVC5hb-&vl{l}3*yBR=#ru`KFR#7y zK|5RjI069K=QjAldi%wwX1`%#1S8E|hEx`c0T4YRJkP8zLPMwybhE>sF{=$;ObB~$ zf2TDY>$L(Z3khNhcxq3qGlb(+Z3MSyl<^DzM~zC)Ea6{ zoZznj*vR*y+D88Qe28^IoTpV`b^-<4jLTA)(ROa?_N@{JFjT5K0Ycm_ar+CbioQxGl$ScB$|E zT||4X0o(igm_DG~tl$!v!35W&;bnN7$(m!U$yyA>0Se1(j2qv3Z(0-dbS6v|qB+BM zA3+I`6Ra^?tZWb|lt>24O;OumN!v+4Gm^&MMDwAfP9iBKaE!Rm(e>0oR=CPs=fz>? zkG;H#rn!i$q80#;HAWJCfot8)yYCFxCqYi}28FPp!_oonU0#l_+B_kK2%M&JF#OsdC&1q4Vx3XrCUtASzCPj9-ctSd5|3OxXC z`>LW1bOyZo%dKsqcNJC?KKLy~eyL8b-hBOC5u|-3=@h--l{Wk*lW>4izp}(ynrdC- z0&!KDS`DyuVM*u?71@)c$4ZB9Lbm_V35}L4qkB1{L3ww>hdu>{i0N3Hdh)5P;ihnq z-sOr3ez%HTxrFQO0h+kAHITNe&OvOVJ--6PcK@+#swjoNa#o)K%TLlX_aBLhfeIqAT?-S? zaP9E?U6=EJh{``YNpa%{m?Md#?7S9dUmlu>afZy3(ivqW3U{M~IP-_tbZfYuO3)*0 z0;_d%4DcT%y?z1DoHydA03I#()~(zo{*K8v(lMGb$Vm;n5;&P$o133^73X`QQ~$nl|5Z5*;dNu<{w@!Qh=Sr#rl%h-$L96X%SMOnTeK0vKF3_k zwT!GmyNB&*4K>^Ob!j(V&$-)%Pa8-dQxgo}8%#bywY3x$RZg_kTb5kjU) z0Q=J{K471q!ZbvaF{|ZVyKa|S=jbSqqRW{UUE`qAl2et87ctpAq4ON`Ag1%<6ocW- zpsEbpP;fXVHmvW1a^p)sL#+N!>F?+S1m)zPM2vF2LuR6;*`C2l!ZDsbq!T_1GyJY9@B1!D>rLA_=*-ybj50p8%@H0EZW8qm z{sUZIF)8gFZ}k7n(UhRIvT1!(V+1=vgG7ab5ONu<@*BS`JXiNxk#@7}{69n8?E`nC z*CzPAb;%6Q#^xk^m}0i~*wTJh{*hoe9J$8gV4@mB~sw5^;JNlyGflM^kkrVu3-K3@ePA)lmX1H=k`~ z+9?If4S>Uvtu@vTICvsFmf7sCO~{FrJE-pWx=*JJVx%@_uDN;`a7AtyBnaOpnc}_w z>*De(Y-4AcVGSO>ztuAg)-tp_6UnyAOg1DR?g5iv#K8{pxDB2i8{5*&tOg+u8lsV} zV1?Fo3VRdvrdq69_}K6!LGRZ7Af-+3&^`6~%}X4#1$n68+l1cTriA-ct7(M}?-GgF=8B2v<8o-E&L}uP_@nzFKhJ@S z2tU3sq7gEcTo*xyVbTMDK?i#WsS(SHzZ=I74uRmn!2LFN1J5#f*%N-}=@RIzWz2gY=SU0}{%My3;< z0E$1<$DkK4p~;Y=k0$kN^Z}7^t&d~*ss{B;CHtwlBwg5IT*R%QTtAO$yAVZ1!1ZZm zxBfToQWwYWfe-?^Pm4LHAT)j!Qbdc})~5i9I1u8Zm7dqljQH@%`z)qs;FY_}tSg-c z)3X>>%1Go|m`nRW!t?pp8l+#6>}6zqh=9x8em=Ontv?+Whc%C`_tiP>D)8D8cgG*k z93{VL)qc16ftD?#dtqTCsgkH`24b77F4cNAIuC4O?`|AovjeltH?eDdq~E`l;c-!u z6uGtYfHk&RG-l1is+%hV!;oT5CO8&1&LlPcl#NBCMe*Sw{Gs*)LZ{wiTnX6cg@{YWl_-;IxFp~Gyn2V64*(kjE*%RnWnLx2ed6_hO~E7tWqmm zaRX^ES|bH8iqhWc-RIQrmo)Zswx9&tQ2sy2eUi>0ko6?`En{&)GpUjjBFF`QV|Cfi zDo3Y#gqmEe7L^AbcK!-FPZI8$IMVqhyL$ocb~zM+IsW_pPdF=VIn!Qx%zr!c)mom3 zyrCX^ch_e_b#MD2ZjB41ldO4DaVAYWNs&NY1tAjiy*_%9aBA#;By3;9>%TcXVUb0Z zPYBZ_Wfx$P4JhCCE-~+To>ck~YF^cc_uo=N?VX=Ni{&eX)(rq0sf{a0v04E)y?oYf zP)gm3>Jh?YGc;u>ZBQB%Z@|sUFJ8T*|KT3?W{3x(Z+PI1b9t?EZN1#ntwSfeZ9bOW zQ~G52B-JY)a9amxzcKU#Yfl050rMn9A=W?tx75`LQd7zuIjFLN`Q!1Oksx zyeQmi(uZQQB_01<-b}N<>7>_7(t>6bSeg4sy>sS4;| z{c~_B!a95OSbOz8`f>>$yZGW?oDp7Q?byYbw>1l(o;0y-P0Q(2$o=9juiVrJ5R62L z1@CkQ-3U}Wb!iF|)PZ&*pZGSztR^(1XkhjVBz^(f_UhK+!VmYBUFqUJcIs=l<%itL z>~!%^I!`^HeG1`QPR*QlIc{eYWE@szh0K-M&MvyE#Rerq(=En>jI-QnO#Aazk#%;0 z<62ol&-@U849c>d)j+d%Tg=W9X$FW8g2u{K@qeYVHS`j96;1YcfsBbf6Dj~w&T!<} z!>X0M`3K`BIyO;gTMhnUaQZ-&Ne%Xc*89AB%_B zMeUW(%Y~P2wrSKj^C-4p-(MSA_#(fk@yAL>Cw&vzsifAq_8GC`aa@-Bkm4+-VU2+B z!w?eqU@{k}he0+nuPyWJY_s=~V@bw}&!PDs2`>_3N!u=OYYg_!=k8T%93pop$(hnglrTRGBW;_gw$ zH{Lp1#`wJRH3eip$%=ZglO72zzR_vVupIXpOgO1`mlcDEygjMePB0=rtH^b0ptvvR zQ48(RfW2X4wpzIdVtXe9GZH~d%2*FUmNjN46u?cUbY6Xbe6o!k5t?RdAI~?}%WGWp z+dd45twJYBLQjv#KDVD-3oCooH*Z z7Vt-~`r|IY!-NMs>H^Z)Ho9+~UKMsq|cb1+{LihPulLf6a0xp#N z{H<}5pHrkoUo1@HGn#ngn`)Mz-(ZXz#$Bchoq(SqRe9DK3FV)edMx@zqQ74)rCsKB z3OpZW_9Q+!ZgRVF5ri>n75<#3ssfZ7F)#eq-k(c!A7?8~^`w>}Xxlrd&>tc&bM9!{ zu4VB4bVI`G;I7B#CkzO9s9b?R7DcPf@S0|Xnj!{x8hENrBy|l<@m~coONZK}@gz>@ zV0)<&#B{1v-P2>%osVyCD3v;jZns3+7nboi;v4DLpnCYhVojhJSL_-D+1< zLQt(4;TRsrG~NS7uRRlir$&o-7)vreMmQFo$LnORUq~Kl{&EFpr12qJqoB+#(I)hw z&qWnoMbF#?VW^4rHBP60a#Y3A26hiC3`BqFb@=u*^!|W5!f+`%+P~N-^8}<23jm1U zhd3X6F&%v3n&r@OMRA{Z?P^wIiLBd?Qw~RW6u&H+^oLoeeY-zUhoq~i7_Q2MT<+pR zfH*E;Z${**GAoMoYn!(*r>T_p^~fWWayM^G{sQ zvj^pvc;?2+-IL^Zc9<`QjEP>obmLKqUx2LK`JpOK#0t+0p&kDdym14vHX7`hA1oIa zSnY32@D2~Y>SKM_i6H3g`tb>T1rYro+R!6-tu&pHsx<5i3%@>wM_^awMs7gjG(Bw- z!u-a7w!8;?Vjkd&&XNhv#YL6h&5-xS$vKF!VdnpX9Ho^#gBCkqAo zQVijVKgJdB7g@db0^Y!Yg9 zv;pQI4ChJGupGpKXokCm=`yc1TP=^nJZWeomwz?45hV|&E-@QsXu4&b!C`jh)c{&1 z-92BEnLxz1qUU1x_Fe{m{%!oy^>F=&J>xMH{X;%BK8DZ~y1`4(c?(KF7!X?t9{P_x zpv)w$+s9G{rwSPa2ucD+njm2Pa))urCNK}?!yklJKWnR;nR*AsRI@4cjLRLn;O`QC z;~kQX?gN$97c&obJM92`x+6~q#ZLttMCE9Hzd4`}3Id^*aJ1tcqBl=CRzz7o~k4 zPRrk8YQb0359hpo@ZoIXTX>>h$*{bpH0GYaVo?lN^7>NpWYeQ7FM>*JCdV|6IS^!5 z&j$foAze&Iw{tdY$3;xdT4~Y+e{=Xjxt*7gv`b3VDAM1qGuA@)>$y{^kDLai%q{mKT_(qhFI{I9)6i0qY^I0adwylnzVvu!dK*%VIv^YiITXzw^L! zOx&))L9>5f?0j14m^p-TdX+3U(ype5{$VHkeBjBoi~l0bFVgk+dD~+IWN2WZjiv6>*FTdB0Z`g6NaXxZ4IYh+7exh65_kfLvR#rKkGa#7ESjKOIevkJ%@O8s7$X- z2W??`)M~K|WznV+>scKt+0NqZu?nd1`aHx))6!T%ho0Zbr)x>v65oeb1ddviTbpsvQluZA(-T6J7^bTt*W-rd`9hYT8jD8rG>6P#v#VGr!_ueDau+86W{^T-zCw1tS%PT00vemJXX zuqu+5iWIUQiwW0i|FDL}b3#q$Bt2xs5@6(}Ox-jOJwen6H1{T@$+cQ+y#f9dd+L3C zR?PS{%)|}qOHhH<4R+7m3KFI~5qLCQ7j)#Fy;@E5 z&FR7i*N;&9l<(UrUwkQubvW4^r^-xND3Qns4po+?epq1@<_xzcIh8(pTd>szXkWxI zwuW~?45)3HjdTW2%T@AeM<1)@*s{Ttk=5Su(JO-jElK~R+^g06-75FT=5Jn@6_^Ec zggB1vD8jVZ1hGz<(OTt~g(u9gBPO2KFHfTlR<}qoOuy?IZFNcu?p4T>gxU~To`kLP z=kl;eZANR59G6MN4+bF|QrIfz3_b+7Dt;KKz-H*Ym44Go_<{ z3P-M_nf(ctm5rM%=C@|heHEB;i50dmV8h<=Zjt9n0+JIVfy+YTpOP0uLOG>Gx(5f} zDCaT4Cc$oXp25gU-ux+fB&j9-7!A%-u$hEO-%o?zD?QxG= zA)1O*OJ6K0Qm?LZLngW=Kq z>a&K%A(cTWy>-)g-L4~yfM?AMAJP@hx+n@(=}ucoV2E%oUkQ?Ce64 zdnWq3HcFHsEp2a~IEV*9=g%UKP6JFWoiUSvx|E8QwIH_rxaF70duo53>_T*ppbfNJ zHEjawGqA?`77jObMULhw)W4MCWQ7HMO-^+O{aAF7mU>nkplV}(IPlxt>(gcvT4AkH zbhna6y-S_qvcM+thT>x-$Xy>jHM$M5>dNR#>kHZk3a@eF=x@dP{k6#diXr? zfmwaYm8e(Gj<>}{6RZk=^Lm$)gS9)Ys$VMIzc>i$tx<9HQZB%jTxmhcg;^ID8B>iM zK3sLu0PBjG-BMK_dhApxpI)a{)ra0e0Cchogx|yj3*TX^%V`Hk7(XtYD7)Juf3tG< zdvn#>hp(Ralzly$(o)~N;A>1j(4-;V9}}wmkpXxxtHAad1l9+=@Z{`JyQF7wc8oH> zH0t(J8NqV+wC*$!S7&?B?+kY6;TYDZ=jFr{74qHyZ3oI}Or!F^7;}TTSB;kt!k5dN3_S^s$6LsWhPRSJ z@*2I+@o49E55(hRA4F?WcRg}S3AX5Fgu8`Y3X!__f=rNbJ7v35|F2!IJ9}Akqw2xu zRM5Ptj_D(41phhWcZrt1x08-Q)S=LR&IQl<`LhitR0Rd&+6mnr(fo7&{Nus~9f6Mr zBkWLIhpFIGSy7@X0$HhQxv25TVxh4ZDkL&v&gWhqp%&rpFl9Nbm&aU@y<#UT@xcv@ z!~1IqgrIR^0Y{P>XWB1OuAaBgI_2%7^s*!DB%Tma^3}Cgm|d*jO?Nr=7W4gG>tume z1^4j1AVchSglbLJYL@RIZM*m(R88UCA9fSJrNpy1Rk+9QCAX};7H3TL=_=6}c2{nF zFUuV|iOa5236u(v0#q40Wv1Eb2g!d5V;_}1TVRu7!vW|7vOTy1=Pe}oR5u1=`WKopd(Mih#G@TvpiEe^(^f(FZsb(5$ z?L@P`-4%9<6AGmU&fM%|v=5HCQXs8JU503Cvvt%Bk(oNgzd<-omCOR-N*c?$8BpIN zL0;J+Gtv3n<;g0m0cs3J{*X<#pP#R(BCPvo!8il4BGE{+gYMU_oX(Z4VCifD3O{FDIM_0Qh~g;YuVccq33 zaIWt+L2Eurj-SO2J-;EJ6miuFV7wCtmd17jFFIkpZE87R^ZBam+zZ3keLY;Sqb39O zH%eB{Upw=({_;lV#V}ptm-tCoHJ)eToS}#;DbgGPRb<=yHt)Yn4=doJZ`vnWZOGrF!90 zx29iDJt%592&{ijoJqVoyUDa?g^t?i3u~HRdV=6-iz~I77Zco#JUx%rcmODFvgj5{ zE{b;|e$D>EJ6I#JEu(gvEtIIKmzN%YB4MJxPoK+eE zzH{}xK%RbTVn&fG%oin#lelf|+aAcVRIYd&Pe{^BnEo&hAFCYiYq7!>+gBnIS!a?I$<~X=51Z{m$_SC?!K^}a7oP#{9RM= z)+?JW6ILB0o-$rjIA$}mWHkf=*az5{#cYhFMnvUesYchJH__&3PIAh_a*ArBg6?D% zpz09%&t2@J|E&Kczk^OIB0s#fE;I_1$-Y|VU{==hN&mr9C!c_8N}tAC-k$)}-W)?A z&)zTmdL=?6-8(P4CB{IzXL>+GpaAYQqaSgwiL(gWGZGiF<>!tYi92c%LC zA2~YE&Y6$@pytz2so_8FI#6N`vgO61CGd+g95Eh%L?+xax$Sh#VD|+@*TkfMIWZ5X zfhZ%s3z_K^a)+BV5T+!QU1Z;u4#Kc8)x2S;40!{_0(wShC32-= z?4#&FgHQ|G)f$c>BVv~|SE0x>FB6dxNEZ}? zJk}AdR6h#DdWopG+_@!YBw^)qKBv%$X;WDyt33(*dhEo1P1tF)PqWW`ajsQ$_DjvH z8YNaB@v~-@2;N7e_{&Zw8f#eZ9m5 zTl;_QcR!d>2B`FBe}d@ANf>lo?=;FnG7FB2)6|q4`h~uh89hD4A(;epdBFNlh9m3g z^lqlg^>}OZ)(*5sYfp|JU4jpG1oo%8wUq7#vy%Sl+`^8Ua$zH6V_0#LPdvulY3L7X zk2R)q8g8kZc@jC!5a^KfgNlWxfB;DAoiEx(sXsTJA~yk%_HROcF7ai@bUb?(jGSke zp%f+<78lUTsbq;HASJ@uhd|Q>ex}_qufE+M$+FC75>q>n4wY{^hVDA!)Up)zJo3u{ zIgmlEBDd}z0noMU=6A@0@!M(G^Y10APrjM{4$;Vt{g~A27j7Ota#MpK21fFW93k23 zRR1iG4A(Ym6GW?0srW1|oYpL;bjmgXSJ_wkq|N>ET}GtndlNKX_bIdU4M;YOJ&r1y zzdw;-^*+xf=VXsh&HdDi+%35>8&|d+`;4^Fxk}$ZX$si-r&j7})n^(WoboGSb};G9 z{mCg4Tf-N|(;u-WZOXH;+jFEKi9$X=v`YBh^yDYO7hgR?AEzD&d873pO};6Z-CX~< zDENtfmTty`$ZyK4GM5^G?6%QQuP3W7`xGp7jVt_nDO2ZrPi*Rk~mU0Sg{L7qIt1|yow+=FJJpQ>dw@8Q47}8TxD}r$ zP-ZNU{K5%!@VI=B{y*M8K>$tvc701rm~sn>S~uzS;O0k*>os-{t1BxHzqtS7ff}~C z`(x$hbA?Uy$LzXnuEmNQx>Q`eW0~DlpRQ;UI4~?~I2bQKp=vCj&O+C9ZkP^~BpzAs zem+ z#B7YEi|w^ro4nm?e_cpOzy1n?B2c>^y&>qJ6+tBZ*L>JbjrIdKrg|h86U1!%<1|VG zQiJE9+Jdkj0^h&S_re^_1Bd=jmc&Jhzh9SN*E_@55@@?N!pbLjx2s{`j96j16BdfMZ z&C4+_343okEa9Gm(TY|mBy?zYmI?}v3UUfL9gCgVQwQxqO%epGqdOOj_AK_tAL9=p zA+r*VB+j`a=6x|B4-_S?I0KJ;bzqLlyPly%%r?3;W#1{#{Xp$hC4_QVTYKCXMRm%o z4CFqzaTwKcAU{lDObya|GSjK7a2nk_<`7)}?P&Mc8tfe`w(^y_;+X4GZ_}FLq0JBrB6)7#=)ydl+xh?3nf2(C?o%e%8+BB+S@)<4LL^Mz89(46U%BKS7GkWE?G$| zqdP~-poXrBZ{#@XY0)wu15XK&1xQaeK0Q!=k`<5o{m}dEBRfcL;LZnmMIXa)C(@{t zyh58tgv)H9(vCP^P>+c+54-@wx04W;e%kQ<-KyJT1jJ(lN~3xRS`kbyvDJ*VQPz^c z(?5FPf7W|W9PC_91@%l>W{T@v)HS(+Y?ZhAv}R`8;ufzq_tY+@YC=diJ&+)gSM}J> z=~Sw*T=am{+)@~nDnj?xGg<=y;Y?wTwTR4yUIzS@Q{bUU#K( zO_OOQc762u(QEN3MF6~4j^@OueTjGC%@ZfF!qXo=4AJY(FW2-q2vkF>u;YaXtWH$y zc4h@PIfYb1gC{=S@zXR2l?7kMS~$4&AILtkSYetiP4|9{5T%!Tej zwR^MK(Rc{~^$et0t%fIZtPg?%2hNzp+5)}rOuOS=IYCZm5;(PxHK!JoCqX&nDN|== zPq~%)V>lBgC2i=Ow*iXF%gmP|A6^Umf%MJ48+6d}$hv)WSSw)ayLxBgA|!(=EIMrk z)YJGt(Am>4CJV|Z$IAp9i_ZFQ$|3MmY$3bcvT1Yam*W+{s#tO&O?*x@vS_sr! z8kO|<@54j!r$&SC>Tf(b)-)MZkF^Q=sBU;fB==t@VG~x3RdIE-pMM(qNd2_0*{^1? ziSKuWqrNyC>>55Pv{`plz6udU+7C#PP0=~_b^7F;4$lwg?pzh32`OQxuua2yc8r=Z zaW#SMn)+y+dc%nt=<=!;`(p4tn#IHNxW3!9y<_(t+gv{|5p+V-z%G>S=YzcxMKPxM z%jm1vJPV$&odMLEjK@InKth;n*#9c?+gyoTBgc!t}NY#{h@V`jvp+6E;O6jt%=eTa_@eNPA2UBO~I~!5!3Up9B&aT1bv3^|bp1q~!ta zrUOsF4tx8nJ#RT!=Z!*IzPEOMV=AfXNAf>wy;J7j-R7H;b>p3Yy4L|kR0`x-r>uKV z*RcZ%2Z#o_p)IlWEeW|X-BRNMMRd`VP&SG1kL(aWejpq}k$!Z`M-eENBXYvWTOZ^n zgV(Us5Y@MNCuF37b{eCi8R$|2e=#|UPQCtPvl+b7!*a2xE;ZTg*ZGfmIleq@#B%G^-5$?i z*Zr#xI;D(X-#L`=1iRB8RPU1O_x8O?bA7TwSqoIzRXfGbOoZEgwE4YZJ+NDf)-*a< zE%`M_F3+vNs_9w?m45!BM zcU*{IaZ6nNO=9QB26-$VubZLcUs-;a85)boJjB-RH-152q!EPL1wT6bF_o2^JZ!G3 zZ>dFS5=Fs+kA4iKT))nnM4P=nUUNCmZ>@Kz-NJ)~Dh3A3Y#t$$fdBm{oP2rbSHN1H z4%bVWQ{yDxXNX9kQVZ>1;kV&nY?FITSQo$`tRpDxl+`i)gEGmCx-@e?Ur9Z4X-}M+ zAn6qK{1rn7tqVd|7=p67GMQV~BDKC7jn+fGR|&7{O`UgyP0j<3RZ>969BHVz^$$8S z^$H7M+L*#?AK;dbl63qK0~e=$jGa9on%XLIHR!6ike8ON&S}}6vAAHfvci*=!7rFk zD+`i8r3CjkExfwikuweDG+(`=qJ6@Zp-_kYBC3{Yd7#_rp}zEV&b_Sr<#E!%E0;`y z$3oxxHC53Ml}yIh{U^&lxZ(5PoyA)>N+%y3PZjDw6 zTsG|cF!6YW!ZENSmfOrV3^N}BB0sMpn|!09~RTcFN}i0a0f#NXY( zRe_SXDNsv&FI<=8D1a^kvhO)F1JGK{+nyTNIF^knW}~-uk~wII37Tqbc%#>L?BFNw zSE@RxDAQAG#sgKq(DZg{16z{7G<|u!pQ}XjlbCQ0ke`;6cXA&K6)nj2j`%tq^OneT zXJPZDy3jeHPtW6-Y(ia7qci6w)P!j-s|Vunqyxmos??k81s^xm1V4-Lzm@^YPF@wk ztoq1g^}bQ)45k;P#oHZ$-}c$aGu6;|^d{(C@96O_k@EVFo<2O#;h)kZZ1y74o}0&N zGa!)9*15M>fsl;H^O2@BBk+a$2>1MNXiTb3vX}tT@1V9@iN22O!_x+CK2jIcm1I?p zADd`ldUrjjepK@^?3swfM`8Q@CYuK?Cm0UZVPS9X)h`S+dwp&B8~I=K&Ao+Rr&CjN zuH@Nqhn!Sg3tC>6Bu`0xFO!LMfN57=(r;`_Xs}nzZ24LklTuXm#hh=(B#zK8$QhLA zFw1HoX72UeQcB$>#^LkD|1ll^?uC{9?{GkN{YzxIbsr{zvTWfh_9j9O)me1GT11Yl zI13r1ed{ZHd)6RG^h-S1BT_ms;RE3~53aRUNUzIG$RPMDrIt2kpseyJj=?6{__UZf z9Mg{n8p(J*()6tJl;86x$J@YVuejtG>n)$hGNhRjlI36+Fcj>2v~8`g2Xfx*7JswK z`h1%!C{ES_aVJ96KfW|R88tz@;kFgRxE55%kP?jpHfSb`6Q>+oUwcUBSsuADHMte` z-Wx;8_R(<{u!SnkW29LON>>AcPL0%aj=?Zan;!IwB5Nk=7Ck3vC_htF|v)S7ANw%`tU8@H*Pd&~zn&O_J|0xNy zMgI$tHx*n@_&S+lZIbTvYAF=lkH;BtRTp`lGZ4mSKCX0{ieGWW_@Wukgs7-dq+dXV zPOy{J?YuX5;3K}X7RGkHZT-qxP@AN*@T~5!jV_;|@_y^qD=*7JXYCS$Hr-q>qbTQa z>!(JDDSzA;+;Or}jG;0+VXrkGO5tFiShtaN>43Q*bGiK52REhFBfD#~O_+MouO@ON zQnS*o@^1zk`Q5NVuJH zUFG}afu6{h&}C&eW=c~k{Q9Qx{D;x-?cL#)`^$a4HZEdNpBk5Epw(Mn5of+p65EU{ zD$lbQ-+bk*%Qk5^WQ3cSH}db!cFbz&RejMbo~DVhdgQB34?D@rgdsA^V^o+V8hmY? zrN}B}o_IBs-8dAC0#L`;HMz$mfCcjV^Bu~W3=>)je_u>O^mC`GuJ^7oG|`<+uhSDP zCCK?sO8Dt>H~w2*m@QPMDraYjIjd?(zx$t_qwQEWC@5JRoIPjBP!$-*wMOTkcB)Cm zL^93Mm{9nFGktMbf?fUjb3-ukgr5B3pV=cOL07^7&Eez9mXX!r{aTe$M2yL{aiz|I zbW*0(slEERI6ACYd)^}DN>fHxc_XGAaT!`Zp54|-^B?{*R{#1)9)h5PRcyYkMz4edaz)f0)Yw(Khk^$%@>N3JfW zTsUxp{Hc+f8hhP1RKCy+e7;zUw!C^@s&n2S_O>vpK<9$-@_0BnZ=-%6$t_teSC56E5<>Su}c-Cv0eBaY;1Rb@YU5HCiK0Y|E2D}X{J0-r>wn2!(?cFG&oUHYK1!2wFJm(RALg!x)nJqbLyn_ z^KK|Nw{us!UV09W2aE%fQaLe*%tXz$rvV|(U3;Z-S2Y&wao@~P{3mvR5BM@moA!1U zisMJN-uN1pYki$0HU;#hg*(qIze6{S?rZqmuV9IN^{4Q6U5)to{g}=(*HkbFDZW3Dzr>mu7R`f0K=exx~u%J07Cn`%53-wDVPG>;n}JzUA)HD2%9Oz zKm#Ps74N$F(kx9lAU5HfXxXTgr-Ll>hJDbcb{f3U+i73WS??{4C6t3# ziMF41XMa3dr2!E<rH&<#X8h2KgB=S8Z@(t zlM0&)xeQ(X%X{=Bm|oL>O)0ea>JSL*U6yE0N+a-7rejo%7gF@~kSYGTV zCtj8aOEXvZbkz~8&2?YBzP6CHT>n>s9_%f-5CM4^V0c+eK-`R`4tM4H*tjXV;M=wf zc1`=%uPwvBtb9N1`kTdX#KrH~FY{CFrR^HYckH|WYV1&crQCnBUE@$%S;LUwyGlBViD=X}6YpvEPS8!-N0xpI?jJ2hxwn>11dv5_v zWSZlX*Cr=jV4dCQI^M^DpKY_dj&97g!$WTLb*~s+?}GZf>T;&7bLL}A(`|#*OB?dS zz>nd4cyTc){Bx;Rq`%%(d`p)LhQ=|1Xd-D7(OaXCd4v-i4!J)a}&&AbrGUQp${yVm6zu}ayp-Egwz zW$gdblCD%%b(t7?-`ULGnSpktngc6^2gn(?%k2z6YPOJ_8aYzwJZksRw7fT);8HFm zyf(4ZdsAthlaNnSmlssFtMLEnNDnF6 zSP2Q06Zfz_#t*EDL6e(!g=Cy;KZfA}EQO8>@vNu6H!IuYFv-`ewP#l zonV+c6Nvx)I(PZ`Rm--rJzvs1BxnIT6mP`MrtpCC1+k7SEoN3p!gA!&OlO?FoW-W& z;8P&w3}>c-lg#-7)!5qQZ+UD}pbS|eqjDPzoS8il#dhyhB+uHN)DLT4jutRI9ca`35i(}J}mw9q0$%8v(HYTs$EWa^r?y$%Vp9-NQ zsm5`>Rn6>=yONW)xbo&b>y&fUeJqE>FunD3OWn8Uswbfkh@6e;&}qATl=Q5sJSMNL z{OP3*>&+-6*dHarfHpl?{SYSdk8Xpy6iQiZRfKt12ElVsiQc_j_c$7L+=Z1i-)@kb>>4k5mHUSS~y< zUmtL7F3%oO>8)3qyyc2%RgURQg+a^Zt)!`EeX3fOF_t(CM-j+)4=-;oYc*+lj?v1; zs}IFGUTt`)-J;%-4=b>jUf0_M4c(2W_6(*E0A@-r(_#e}qFF@*EDyS5uN|7%-iTxu z7FK3YOrace+>U68sRIus7_jckOm=-mi~qU5_}S2o5A%il{t&)pwC$Quc%MJ{u4jJF z;GPWp`7)x-!5zGW0^`9)rcYbHTyTz|#OAj)FJ0@*tJEXeMP_vMW=<(uwuZ(V=eDI? z{K!&Z5S{NeTPuP4j+g)CLEuY*`#VX4RS6!>RyHZlHEEa~XdP=i(xV*&mCN>q<7UJm zh`!siII8`2o~90Ov!C-w&!^OfylM1EwK}wr66RuM@D1i$gF9QhZ9VK zcEy{BX1*voTus(u;8*cAsn6FDH%qb@P-8ps*O~X!v1lW0W5l44gCJvA#=;4uq^j%7 zmtJ=`zU}B{Ui{p^bxB3U5mL9`vF(lsGQa|O))_HOz=UgSgYB$A3ay}nCpBrYLoIW!M~|~3Tx8k;;;w2h zmuDkt9`6Xx)Xp5bdua~a$4XYrWFM70Bwl&klpY4-7-OD&xPB$JtiLsV-m#*%Jc-V{ zWsTxMEx%sYR)p*1wuYBCKJ?peSJ?xQRugVm#k2)_s;o_G*IL`ebb%)s31uj==qfhF z;2&*FNoc`4=)A=+`Hs$etKU_}+Ma##P?REat*nEXKH3`T=$jt#0(2CF!CxX&FZ{+f z1b%!h-OdgbyUV4~rH9dWl?$L?dg{!LS>c+tC~-4+F(EtcTGQ4-L!*?6_`BUa% zIE@@e!n?O>kU!inMbrdz*O6)v0K>e1()N4W`#>yJF(KGaIhwAYeKBd$ASlgpV0lhx zT@JEO!I6h1fO3yVRwkD<2+oQfA=~_uS?z@Tskp2vwXR{4lAzl9*)|v z!&lgd>G_^?D|Y)|4Y|-5E^u=Tk!KiLeIobVi^9&5NjE2d)Zf)k@x!%$N$z>qL-1J^ zpKr4?${CjtK0EIZzgrHvtM{%5xV#ypQ8+rGd!*sF?2F4M-L8~vvkNzyWB5T{0Q#0(ce;LB_HJ?>7SzCt)h!PhSM3;z2h^6GhH6WpO z1hH+G+WlbMd5_|I;pYKe2Ep4dEyt8Uh-m>*lbtm3^&5PndqDusfUG9ZUT>%~&@`S& zF+J>mt~yKS!(~+I8>aLbfYjr8)d^aOpDNtf)yA3epjkhFXOH@NcCp}^DHu+SR4;bq z)H{PUa=G_`B|Uam+PmCVRGj>!7A!n3xcnN*`8L1K#jM6LFZg^Hzle0-BOdwEVE~Q# zT>5<1m`=lOCOYfjL=aJ*!izyxTMCrt7vd3NQ3xgqNhWEoAtBmD8J!nS$ScIPs8M%# z8(r~5@%hJU^ONiFf0U^Fxo6*y>Kmh22)b+t!d%ZmT{w5=Xn8EUvE}>qICyB6>B{rQ zz*iidHt-M-rm6jRPV4hxi{0C|k>2}SMCP?m;$j2S_XGE-cR_~7jd!9VZ2c#ctq}=j zrp|U8YT}pyQCg}U?zE(qtN`?7n-iU!RZ3Ml|L%#sQaE*0&|>fJ0NELJ^yP#!9BYQM zAU0(oJ*{t3tyqkI9ZT4n+AXe@^pwXRV1MWAE2TAB_x@!a{_Gy={FTyE>b;cq;80li z(mR5BC`1@-se!>yNq13<0g?Rt_FRz3sqnhUy_b#*(mPcgeeyJ7XBD2+%*7;86rr+cl)KyD{#tBA?vq_CdO=>GoIMHT; ztmEFajj`!RD+~h`Wp7;*Wy@3NW?zy%xD&cB#Dkd7{~#HXCe&ZMa?6mO@CiCJ(iD+AJJeOZ(FkG1p_rBb1(Z(CDcSYuoDS zxBE`9RJAxWzD$wJ7sp!}%Xd;t`BKz)tJe|3i;*w+Sw*iN0lL%9)b%_*cYZggSK87= z+NGJ_s`pzYfvpDvtDhb}j+L5s4Pp4ae-kuAbnEd)Kog2HKF*gCl7|BHE}QHOuo-IH z0WHzNLtbV{O*Mgg0ozrv_m>9ce**yKs|rM+zjqIrlGnN``Z!bvN4r(GpY?Vis*Le3 zp%nakzV(M&6+WF{3Jn!Utl_r@IrR=3-*>X7zA>y!Grfgu<{g$u9F4)opo4oEI97$E z=kx1><#bkJbn!bE2O|kVikod&*i>MNke#t#ziB_^7+tIB^GwA-zOX1MLPPZG4kIS+ zlfAnGXoZ2oOWsN-oJdgrfzo|qRrkKXEX-jhwVvGv6UNo`)Jxfg4PM_fSIt(Do|)4~ zHL|l+w#-KBIXbW;`Tf%b4wZo;k00(%ZVq7K=HHRK`t5xP5QDZz!*}5`Rub!0p0UrZ zzjQ_6rMHb0p22v0VPM$xm;3Pd4Me{Dt>7-}F?&*68X5B#u`RRSswq^*Ytub?FL|oD z*$-xhSN}fRmx4>*7a8)%G1hG7w!1Y4jd+K~0i~ej-C5UtPzcIUiS_YFa>x7WFb$k>^e`c>maHI+VPC0S6u`I;7NqH; z*WglMS4=D7fl+-Rnl1_IUOC!yud-O#I2E3@3%Rwq_L0S}=}^ZwKp^G%OHT#Qf9iHEp>O}<9? zr>`AvYmD6aDGFIjMHpK2Sy?mG!{evMvE|B6!-FReb1;Y0P=mkOoYyJyj~$=hDY#tz z_s;8|gY>QmLgnd2@9*-*sZ@#8C`2t(vN}Ug)(iXde<_$=wOS2*8&3_t=W^!G_5KjP_%zOU($BkTnsx^%+3?!-)n3cpq(}a zE~BL0<;#wH4v_ba?$Nh-d|Yxm)5j;`3vp*4+@Y92!f(w;0yws7NpMj4+aDq}LA9LDzrOZs+Ed_&t6tPbxZ?;Wp^O#Qvv%7+qDJOp7$KUodwuXWNAbvP30k& zw9PxM35zIUd^T=Vb3US(u%D?*@WJj81X@`19k(`m9A5Z)aIY1y+v2QUgH_A}L^eOl zz|{zeb?m+SqcwaX*U2o2s&6!<_GqY3E-HX$0qX9qffrzmIy2i^hGJBk(s(*BjYanlrYFqf-_)ouS zU1Eka_ca z;z5mi-Oc8Yi+wY75Q4;GQ;4D@94a6BB!w@Lbwq~8St9dQa!YfqIPl<5Z1YV+|i3iu#X-Z=WDu-i)Cm~oliafv0oByHzt2eP@HS`PP4SzU%k$< zw9t6!eDeCt4`@CVy&}s@Azs+{%V?OP5yy>Dycz_Bf5iM&>Vc19NzjIdMoKS^gzGEG z1OUF^6Y8$ZjE=sTA>Yu2;N!S^^fLE-jJMK7-S*FoobZg-G|2d1R*D$Y*j47X>auth0bF9AzQTpjfSKrXT9#CBS&wC-e^A)r!B?6~gx9{Pjk) z08BPz@7kWb-TKw81&dmj(nqm}>jAkrJmqj5FAUJ+fDbM{MJ^W}STgkwjUJ|(L^gWh zpyM^@SAQ9L<#3ZF_5j3VlZTC?$$E9mBsPj47m=v>`Bml?YH$F)EVK77mG_^~Q8g~+ zJl|WpPA*n7f%W@X!QQ^}A^8ScssPi$dUNe$dd_2m=7>r3>E_Up*2caEC`c%t`>7#? zIEvOXDnxEvx)v}!{NTfMIxY(b=kULFn{f*Oc&0`^sd_OM*V;J7E*^_Q2+=D9u+*r{ z39YQ=)$pD^v}y!rtJi=lDvr}U;~zh&?}dgr6R^X9cgNMVG*9~@C;V&ZEfdCDPLL1% zhQa#xTXj2aX(@zzZ7U76^w&_aB=h0)e|GGoV!}OoFxplLQ~j!TuF{V{-re3JRcHv2yUoQNj{4!CSE$(rG3gB zt83YJI0()^Htiw`WI3^d3)LoCqE&l3wfB`x5ZG*gL-{IL2Oeabp{or+j-o@y`^Gar zW5KiuTM|0mOiEI0h4Z=B86H^tdY?m4t2iZ&Z~sgz(u`KCHGbQ= zUmK=zi}kL)3AVKuGlNZ|NL;f51LVW2VBzrcq2Iky!`Qhdv0KFxt>zAueLLAO-x^{L z?!e>S+Te5*BqLwXCgAh5Eks}MUhYox!D5>|52-BXqxajHziYQ=C3$%TQ;h!@j$dFo z5%Z6!JT}zTPcQ`B``Oc;9%sVa(`NGyILY4{#cV=lhc=p;^3uJA#7)~l2AbrIo#c4P z|K5<;5fK?f3FU>+Cz5mddE&7GaqgH}j#5RlEI9gHMP>uu#?Qg1<0OI|+_R!}+hU(p zkinS~dGez+Fk_;%NdRH2iRV^}yfOUFCAia#XbPV&1VS2Fd$cTUL-5RdpcE{ALHrupJolyUht#)^_+s%FbPFGAP1eu%?&`#~xdhzREmHn8$(WmuVPdb$Qfki}~io;VZo zagf{6=EQn*e6!>j;Mes0LD&=VrisND{jx?~FNt8#QT7!HI5;qm z8URzK=6K8K@V9jyzrkoXr_mB)gy7HfSP*v~I=|1bd2E8X*uEekUyzA_p=-U~mbyK6 z6p*dpm{)gB8r6@zIevaREy8N@wbrzXg>SJ6T!lM~-1E@sRHv#8rteJ4#_Jq^@6^bQ z1$@Bm50)PGUcek%450=ETF02CMGNii^C)MDtapG9es^(>2~p*T?jY&Y)I%Ju*tB$boyj!Ae8V0+ttJ0yK;SIvPdqh5Z{%?4u;0nSL7g zxhb+SPlMXtzIS)5ZW(+*ur*B96a=suP%4*_x5BV-AV9RH?07zs(^3jH*Syfj9hr zHbGWczmKo)RDKP7=$Y?B=mtax%7PQjd%q!V#`ZJ=O1RAkjc3`rB3GqNcXtW5RHV1Y zl-Zm$^SR4cknEc11wx4Oe-7?Zb;?m!KAjxjXka3q^uA<0ovi%aNDZa)e{a|a>?a@R z(a=oxEjy9vLu!FNqVi6aOf^N;8J zeP^Jc2aVTT!Kfv-AQ>~c%$5AUr8;v-G#mItyPGy8fqe1O{3=rsk0SL`h}GcGl`2Y} zkrqTZGvd5;+WJ`Gmf%MxeZsL@49}f9lpMb`J)M$k9uLZh50ei>;%^R~Sb=ElGknsW zR?9T@nus^hQP+P&OgLlPxeW|9)(gC}8|zJkS73Es+eCl*AJ)=SH=d5$lu9;>4|dv@ z8n^rf^ZPD|c$id0rHp%fKLGTd1pnrF8CAYDT3=A}>1(ubI=E7$oD!!c#ywO<%SFh( z;DMUm@9$8xe7A?OS12^Q6}Pz+cGg`oDtMt5M z^$~#CnMDo48-#(FVvnvgnMe4<9?y>_@)Kwh$>~33uXp<45|)rgaY=-R*lj-lpvKL! z2s6mlQ%ejQGeGKH%Kji(VbZZ2WBY(xAzmhNa%&~(r2G@HhvyhcLI z%}cz4O&76Ywhd;AU84>6xzP4VfB(>saQT>dA$=kj*GM=kYe6@dJ{}*9F!Pj*VlSP* z{^$#ZT4?YBSrE%+B9G5gI`NB`XW`W~W7aHr@8~^xnpj50$WHfehDPUXyZtq-xNP)f z8XwO(Wy1r#R>!r;#^cZ4_!w<^(8p@`pN+```GkK`mY%K#`|m-TnZL?5rup>)2bYkp zN|&?LP&t;#GqlbnRuo`rZ)uZ0^#D9H_$W(#fy>##jJ|H8d)nS-4DUs5F3<6^k3x3v z-jCj%3_9R>JN}`>Xd&TnebdSCusrW#-$u1PL}FNT`ghIg!D~Q?2$`J?WUNm=Tt)tR zejp#m^uHESaQbx=7V=q5k+GhO9o*>sy2Jvk5U_#ORLWBr1l|91RgdhO3MpHUHq(v? zRgcJ2Iqq=GJGkalJ;K)8**+5s;-4XId%IWLqWVx0OZ5ME@-a{>Uu zX%Q-I_4r^vcpq7YYnE8`m__k6U*#OEt4LxsIiB7O5gsbKXZA9PeS&L7+AHnX+G3U&Cl~Z)&H9^@MhYl22`(9`n%E)RS=f@Awm*mk0}QKOxU@Z7h7p02N!hFdT?#;QnUQeayqw!>8hb zfdO^Y)h52NT}Fn@EnbYq8E^MwMgben_C|r!#gBQ&htNX9 zVB`Cb^_xTBTA&9!@4}OrYKtF3!dfj>a}I9(Z@P|$L^3>9SnG*`Ymul5L&JPtf#id` z(~~;Wn*>LkY;a>$H$|y*7vNVq8NdJ6s_K5Ba%APr>z;AS@CGdoe`~8g_^;dMUk7IP zjsAFWyjk69OVpNzUH_c0>b1Y6H%9RcV;OuNc5*2V^jAJm@uGnCX@Y8hZ$sLOcS4aK zTugrr(-iCAdl>Tv%BRloqn6XZ0^OIgadiIrdj#CNJ(=JTc%2rM{E>UgMuo71%{e_l-cN}COLxcdQR4O_Yzn&h-I0vf zN6cNZ)NJ3Cs^8q?(J91dRA1l|K@0-_)pmHcY%D61z9}%F-nlIPnm`3IzBz+X_eU?x zy9=F0c#XUhE9dgs^>i$}Zyb$K-xoNyV{!MkejW8`KipXeAkAajsO!Y9Q5>G`cOqK1 zIm3SL#FX-MU@x`EcH6SeuE#!IJ5Be+pD>{1{&)w-_e|dtSrwFxfmq=x$Fje>Sh&%H z$@NEi{NkXeH*fOr$?%*p3^vyF{oUX&Cdkqt=@FSh z-1v98<_s5>QF|t>hjqtQH*8rZLJT4qreY-ispQ@;AfnRH7g{AMP04fE-gl<#G7e%iWiZ zZxo=pmIh@ym+WfKHi?4*RKuEoo_@GeK*v3#gjNE2{j5s0E@y3#9ek+#k(TE< zQ4@kY5wfFaH`+J)pM>NagB(6Lsnqw8_lY0oo0RMc931jMEKBMC&DOw9-Q#XksY;Kp zL~YRAety+B_l##46Q-O1zgmAyJx2KXVn+2%N0vYOHuiih(g1HFEl zeQBfUC}JG9K_Fw~Nvy_G8iw$pD+4J(0h%Qj z3%t#?b*CLS+p=zLbmms^z8jEqqAB|B!LuPcjI%_!t)Xil%R40ED);V|_NZy!7_M#l z1M!(gnK;mqxk*CExqUB9*KF_9mKs==y8+c^mFnsyku?Rwonn27%^`7~x&0A3 z5#YHUUU9NdfnoAm|4|F3D@+!eW;sYuC-%`zxrVm4LwxeccPSGO#ZCN>?szHKF6L25!LM!8Sros>86^_9mq)>q;>oN+YC zghZCbGo)Qm&mW3<*87ekL5nwIh#PBA)rB*OnqhFFX0yC=*Q<3puMWhxxKKS`Z7N2^ zE$$DWlz!zU(&x`N(oGhsje0_78f72Lg&lDNU;gkb;5Z4X^kzE| zQ64$)VEx~UG0lO{HdFDSXtFb|HL+_pl`lW~f_^dSchL`$sACfbCI?+1&qH6Wn@X#G z-nA}|wo6=vH{-AlF|!~|4MCJTX2{p#%&%{7qvffV_yuy}i^Vp5@sH>E%Ly;SM6#us z#6%eXi)h#EEZ|Df%{99)Wop8Wwux|`un#aevGt2$EPEy3J-J<0Bnh8zUtT}^a~!lb zZ9!UO6v~7f!>kM;hJWPntKpffqvUfrD+ku`2KC-2Z7&z9U#_l{XT9z&jcCo8Ji4&t z)z}6;dHduEX>5*4{&OtWE1)cv>m+8ks@V-kQt2Q~Lt!GlFcwNwYH90tY_d0!c-RDP8TpJJe z{nuLHrx!mq@@Mi&+-ZEekRd1vwBIXrRX*U$eq;>YTzpSF2+hlE189V6+pV%}SRSofGT-(Ru!4Nn>=|=3gl3 zKyE&L4w;zEcUt56MneHI7V|AvI7Qfy^|mj4=nuOy`bzusjP-{%iiq-w-*cC4r34-L z_U$dr8GhP)a^wbOaen~9P%s&fq!H*4jN<&}lk)>Wws;ZnHQMdD*Be@%I;GzEe`0=jwojTyVMO!25>-1qvwiaAqIWN5zdS4I;;cSvHC*^rL>E4nPpv~|I2>Q{ z4|HDclp6JCe@h;SS+(ar48^+hCn- zQ4689vElTSZN#kQwFQ@rUo%G%@>6ddo#K$Nfu#H!EY3`)$epNcCC~HG)99EuGD9l* zDO$cY{PnzW&mv%RseQYwAa{^uVX5=cEsC1$DIa!W4%yDRXTKdA+P!3vUNv+7b}YMM z~k`|LL{_pqv?wmyAcm z3ya3)FWsrkp|vJf(wB|oQuf)fp_?Pjy?=gjjLZKx|1BF<1QnoVQskg}_IhO&8r)^x z+5@sC=zNwcf2>u>gA|Lvu(hQn*M+s8_m~Y~mG|hgERHCEOrd9+I%_Hte{CqPNEBB# z&)P5UWDa&&BMiDW^CX`^m5sY6lEmn8(PSYkmW|FA20`=W*k-b{o~8ZpGo|KdlNZ(jtmJSsFjHXkJe3Sa-}*&0$c=xo+v1BZMeAV zGWzKoAj$fsSXm*HhR2QeQOQeJE-y=p!f-!QM~*tv-p?e8iY5#Ds(8a4jz}hto-C&( z%GZ;Z*XcKuGuNkN2D)qK;}%*-mhqHW7y0HE6G29Jqhv`Z%aPpT#+mGO&zHy07YXnB znW@WDq9=q<+6I)VB*=mYCCx`$9Fv*Z4Joj|5PZy;P5rp%C8?ufAe?`5UI7){o4CPYue_yRcf{mkg_Jl(LFZ?o3kNc0q8W+z1eDces56u`X!G!1>hudZch7(BqMt=Kns~gvKc_+^j?FdH z#5?|1YEze`((qWrC5Bw&4#c<*(vox~Ap8+{b2EzrTTQ0PGv4IQz`v?pae0WgeD&tS zosjkK2}W?Usg31bg8fqtW9jo!W02S(g_vSLT{o1<8Rhnih`4GY2efcyJ{d)m#Nz|% zF!{X1gih0=w(nLi4O2PHY)T59Bl-Gtp*l?BevVVN`76-;GFJO+GX1_|oPv|5T+*VH zbQ%^&s-XF+&z#VL4K|k~IWMf=xw&c>3~z{|rwSVKRK0+4t%1;_2}fgm-t%LpQO zk`bFP3eN|~QDN2E^9BAzp+z&6i{Cb7CoGlJ7_Ovnxg$=0ZT3ELxeYE_N~J4SHkSE+ z-n0`+m)9uDVKlcfh0h0CDxSvm8tUWY0xF$|%0beoJO0AjGxYM>32xre3j4`<)Y{DT zwq-DlF^Sl_P|gS5JTLfIj-)*BuZQLthKsnI)R}kHur)d2MG}bv-4U=cH{JVuNLO$= zftS1rrwi8Ui-GuNDyOk>pOp3?nV7Tej;e!+70$So_Qr$0?#TV7dA9k5G&%FF=%8XR9yiCSbDt)>z|+jk;J&Q zDq*0o11k{8q@5dv4`pp-92b{oH~xUbqYHHfoKKgRsS>xuJF~b%@<@-UaPB-Jlr*z^ z1^#{skO3(0$>#ZnuE?Gq!5W52q87+kL`Zz^44OE3^FKulnnH~Rhn(w->v)Y2L{yoR zxczL#5T3N5c?@H&A}w?xfB%7A`r$e?)^Jgo#NrU*!F7_KqQYo;auw7%i14#BM~3~8 zN-R|(z1FngUP3Y-pl}*SRkBUJ$QW!#ilQS9e4oQ};?mt|bUR^cf3`6B&n-(2&i^y+ zu)_Mado-bivvHfRuoUh#>uK?*MjjbQv;2> z1|u#d>suprsQ}u;hVbb30U;P}v?5yg+`00oLVQF}1q~30i179xm?j{<-{_SiNPw;Y z#DTU-5_CQ^ z6kaJy5+DmDhNAEf9Y>>cP;ej~X;?TP4Gg<5^(xyG+`p=D`tZFtW!JSOpBuS3Lm6E& z$D9+1pf8%nhGlcq5*!lbh5YSEKCd-GB$3M2=_&R-%ulY1)tgM50{U3XSH;?+I%XpI zGvifnEsh9nBn1GRrSXZEUcA_KPEdfpQniwZ8S0F+q?uyIh&f8FY)af>V+sswSjHH0 z6Zl9(AErL{SAA=ykVnE73}+0DiMeEZ=2%bs@UaW|W9rN;8fm@Wr8Q-u3B?dKb-30} zTk)QpNJ57?lQu|ki-vLW>1BIKnyZQlE*%B(o!+$>=Xg}VjlVQQp6QKQ+NYo(1xrhW zx}*KI9$o_DVd@%1ibz~PUZhwVi2MWbaK)?FE$Pg1xEfr884D6Drl%n4vQmg|oFI`Y zEqyU;q)S^(@?t!X%WIXy^N|&fXWm;GoV;8l#&w1O1H-UO(`<5Uao4*8BdLMWkU7^* zk@BQCMpooeaYr0e?VfZ8RM=O%5cM~9)V+*HCg2vQ#*QrTkN&f9p$H71&LEK==g-q7 zf3R3>^U_{V1N|-L#YmZ>ssW0GWnKN`dIdU?L=S*FM=vbbhdg=?pY&t98p@?r^o#KK zGy5DB5NyCcF0lVKrLP0a4a6&=wC9KM6e&tg5H%JN*F%uUmS5j8e6+V>$|%rvVQC=O z{T=2?MSrIU_h}0h;cyVZtcksFrEv)R=$YGzvW3@4Vfh7#uQu=d-peCyPR%Sr)8(M= zZ+68$TyXE`bL@o_bjG9c?3#jMGL8QBd=ftV`Hk6&!gyKLr}>p#c!xnqFT2&D+n5IY zctGMF9YyZ_eB+C|!2Rd0De1bY7k=(q3*Yj}P%2La7c?Ct<8 zB*i3+$V4;>l=dQsatGywH{q{eEz(G#KZ~fQSN$0LGTxcdacr;hz@aR|-8AsauH%(;fOI$e$~ARgSEC|r>4@Cu>-95j+ZlrNVp zu-FSLu7cEG>tEk+pFWAD8B(UQ0elK0>tZ?`O$K#k#3T`(zU9xE^!{g{ClETLAZ!5cmSHu!D zH>*HmxWGmNpD>|tr-PMKji<8^+dMpVUQf72w}=gmdWdnvxHw7}o_epOlC+}GMSb_I zXi2B^NZv9Z^RX$B41j-|{PxZ&ZcphrB9mok3PBUvW??&s*OoLn%=1 zJ{ngwKA`@H;I~d`mw?2k5ZR8C~AAr!8 zR6`6YJWL!;9Bld-YtW2}E9X+6Nh7o*C4tw@j71>kJ2-Uc6DFz`0vJ4i$2mfP@UUuq znzev7cgN{N27Dyj{l~!<;aJ*I>?TpvL;N&|YiP*8ago)`x$D)$?!`&<*@GqgA_ zvDrS^=6VMQ5O9XcF4)C?jXUxGqnix09$oHuyO~FrT|p|GbR6N68<&l1aE6OxY(mX? zbSf~P$9StnA(D?SXS{m4Yw_)go3*jRRT`@Vy;iSnP`>~#s(wI#ZMu?kr_slNi$A> z4;yvs8dFBP5Y;yRntq5ov6`{=^_vCi{%^3GT3?@U9tCBa)rz?@muLv?#BIFE_7(q0 z5MDgj@~W!L_1*D%hcD)U#PMWOwI+rCbeRFY{ChbsS~5W^xlW7{-b^}@a(@9`wubaw zsdhK~I?UyyEO+6EK8e5M+vrLMS}ar>zHIb???{Q;97=Zz?@!4+&u-65!*M?*RqXS zKt?PSuLF-pIZU75eQ?%Dt>oaZ|PsHsUD8HZ@XDRNCLk0qY0nt@l;vBP*f6JM4haLs zR2!`zS>Lh1-4e*yCSt3(N@g)6c*}wi1-a`$4k4o{xtH0hr_60pZdvCge?-ues z#TWo%*f(5Ib{s;DMnUAP>-x;Q$Gh`n9~I>nFn35&*d(*q8N$mw$GoQ)grozO>gYC; zJsVU503vBL5e>l;IWWPCND&V7NW!m!qYa-0278_~%aRak?8M%t-m1L(GfdeE+3@Z)*9kv&!FZA_jv0Bznqc~spa zYXpSLRel0j?QTojt`xz@=0lRLTx*jVuV1CfLQePnfT=Pa0|Ut0u$+k-qS`Mesk4AF z86zd^O>(lRVdv_)Lg2HAtWpU{_3=nFWh5Gk#RLIkg=jRi&L!Xzlm>CJEeWAk!hC>_ zD*~pptI~qfT}qJUQz^lLU;Q3%@t|MGP3dHN zi$N^`!VKSmDBJOINCG!6q&`1!){VnV+jlN)wq7->dTYMMs=5m6q-o&Q`uSF9lqFbD zSQr=)RNv@RH7t{U&z{QeAa-B3m0dC5HSPs6On{jypf@+nVMzN3t29;42vw(sw>!{M zkwmYI#VWVqnpF8NC@9c&3shk=_k%gqqG`b!aD} zal?nv4DSX&rTdmq_TOO?mSv)8hMZ%;^&+XzZm24}e5-k(+ng8)Gq+>_)u6xJeN1bg zzNchcb%WoURjU!BPCJkaN`nuiy{m6FRE&^A1DWj7?>eMx+n;0xm!*lIzI+00wgW9& z`k;e@G^cWi9ZM|x5a12i9#f#kv>=CMIMIq9E-j2E(dD9LGrzAkPBRWjr{e1yXp%2H zGdsn#_i0HfaU*|B>oD6=p=NBs;v?|J;RUc#zJmCRhh7p{5%CpsqxzT@o=P~D?XSq0 z3>+3A85t0*PEAG1j$76dme(7i8QkUuejcp*QZ@o;B3TktlERHTyfrD`i_0owUpmJY0p3M2#ya z1learZPhDahJT9zlIyEvQns26(TLfP4|?Px0SLkuFYy$Vt_INGw(ILvBdGF+%(e6v zt24cWF)8F~!UmF)XyHl{vSb)Tc}o2ktl-zccJpv;y&xC`sX9kqUMuE%vSO%MHSYsn zQ6I!z04meaq1Av&uy$${Ort6>EpbvZ;4v8-ix8s&Wrz1q z$F^vdaPTQzAVp)KWLcUB1?hY&8=5hBXEcXnhP;bsWWvsMY@Fv9`{14xalUh8=x(pF zAS)nA!p=gzD8hFIgfPT(?x@{`IG*qRnMI!tLx%V3yxOe6asnfhH$EmtW%c74)9OKa z6uD-e*%w0tXvjE2ISisT#n9cNY=FJsQq~wu+T%|HWWDfc==Y~F1IZ$Gh!n&f&dIM};)ypFKTAIr?Np1AW1+V+t?#6Oouc;8^qUc?wV@D%456khkS ztNU-NTwDJs6d1PgNo`cq3rthyncc=;=~+==@S!r^Gp2n=gG@4U9 z00i<-%ZT-H9eI)-#D)wpYo(2HmTL?ygKZv@?3)daL*RAi(2;>5XEU?Y6=+qDO&^W< zAPb3^0(5Y4zE#Vie=We0>4sZlv5#w69E5u#?mN-V{-59(=5od64jficyh^kk6hlN~E?*+ay= zh-I=0JPYML82IG_l3kh+La{w2RPBP^+bhs8$s(aCo1nvntYH(QAS?}$W?5vU1~52+ z*r5agFckZLB(}RkfZ3&Y@IQH$=$j)vRqC9~B(h+lew=^iQY-r#>C~l~V$Cm}M-z^33o|k+-X|>6; z$rRBCnJTVNh9!6SyPBCSA<)7CpB@iy7%8t9k!=i5cDT&5tHPy#`r@g{TRuP(C5hdY zAAxoc_CSZiwNuNw9w;z=Rkb2J(r=&NxGSZtzq3fz-Xscn`2cJzE5zYyj z=q-==Pcf4PJmw2~{1Fv|`91#iW%#JTt>$y6c};2+Ao+YUwi=tHfJMr;zL|kjU{I5e zBim>cKeiyI5ch)il1oyR;vx3n&}H<>)wqQBT6TdRz%A1vx6iA}RHhKIJEtEEQL7@p zOyyx7y7LZ8{*jF8RV<8gt(~69M=4Rt2Ymd3)be9gOP9sUN zP$Q_)VT|MYWp9lp4{3E-SRd0)i`HoQmPJ)r0~!*X467diF$gC&GxK18$SrI5I0)j9 zO$$kPlhi3gxf+i~VC6s{^CoJ1n#16InhQg?FaVj$4li&2Yh4aQq+-Lbk5OMnt5VSb z;dv~xl;YEZkGn4CY&}29wLDj0(C3YMkPpI;h3S&QT3DOa?PuDotfJDCxiC-_X$7hw z3GQ=wIe5AQ6FRLHA_K#P3^9|DKKRXUN>e!sQx-N+1n}zAeqn^+kqP#&kJ~tSuN;U4 z!Q2+HQujUV6 z8xH%zU|c6xp3;d-d1}+1W)o-?1t3g=C&RQYDoBLesTj96%4!Kl)h`DTpdiW3Vl{?_NCoE)w4SiX=k#2I*+sfh487HI^BWdZpq(-p10o$I zoa~Iw+mel_*CI9d%;bUJHIf%HA`SD+Mw+dbMQ4MPpNnBz zi?Pz$UesBoSV)&Cq0OVV=dt`1Z|{a+Et8a4QDI->;r&f()L@GR7URaAUJMLmQOIgK zCz}-GmQ4&)8}9SNYmZRY;Ke~-q=_YX3JS@$8aFhwaI!%`>Y&(sc1WgH4KO9V5KzCp zbh;qjW?R?xB^SFS#BhBVXa`+`h6&qAs;yYpBUJ;?b)Ue}Wj&lC$5F`34Ftff=6ulE ze@F|pZ*D@1u;4K?tbo_3V$Fqh52E6{bA_neYPl%O0f-4LTo#?NMX#~Fk!s`Yj`=4l zFm}4&kE}?1x`UQVks6WDP#3x9Lj>0y{FY@ zACf*g4A)9lVz-KGzBY26WRS!66E@G0_6BK}T@JwK$jXDxstm?PKDHYIfN%(a$Jv>_ z%&Hy@L5hm2Md;6ce@JD%%Ytl?c{>Ph7hWvV;UwG>pqz@C`i%PXrG`L6%ZWYa zWkcqM73EXS#=>>TxZLWG#L3dMJPx0ISQP#PKtOe$s>&S+G&gIZ+NaEb7zA+eR0y86 zza^^GUnjG(MRtirqSGRIP;jM)dN(O@w7JtK5D5LCoNA+gdk`jwcbr@F|Ee2s+{jjNC#D)r=$do$TWp8HV80 z7`f_+@fy_xXi~KCC$K$*r`bX5SgUOE87=5E z%U5Cy>R(R^gbUMy;VEZ={(yTAaPn4jDhU=pmCH_5_W)VFn(8=dc}n9OeY(2lsa;|K|PI(kb#g2V)&k!DAxMCG}np!+{( z3R+WF<12Iko~cvTF?&$6+to0W_mFdq;aw3EMm0s$a~S|a%;9STrs`;}dmt+tNXAN~ ztS&DjLGhFj>&>|KO#M0@2A3ePMaV}e43e*4Vdi5@GLc8+VPmOXg(=XXQ1|Iq_tn~<FKx-i!gOqNCdbVdi%k_xo#`GW3$i9c>d>MC)?jzs%E^ zB;gpY2^SWw4v4#uQDoo&^vHl{Xi%1?3<5h!RpVrtKn#M$_UCo%e$px~|R2ON#z(NLCb5^x!`4WzpjDKmBxU;NFg11>inC z^MVJSGIY&)N(wh)z^s)$RK2sIucLvKdFtG!1YL+xt0rHRbsF9^N`nB$@Js&S&1S8^+Da`jvJ5D46n4}(=}^(?HggR@od1iCI)BY>7^U(^<{ z=#Fs13MYak;eN5JZQIw`NI)B9i1}(0bF&&s2m|*(YA?cB?l1D`JFO_!n!0mwt!knurFw`N9&R=|NR5e$@Se7rsP@fI&;JmW%B25JWE9ApF} zo9@~PU2d(Yew`54y_dhe|9d}m|G)gR zeesq-Y!+Tt(Vg0z?`Fz4QDXE1Q~ck|{mAhdPTzx57MYuWvf1)q(=|q)1ivH*9UHwj z>?G{8lQr>eymS6T`$uk5DnAnZ{}26du!P8! zLVbD>35rq>dUDVw6wy(LyQ>;4WaG{7`!!1-bc4pdy5j#eWTnRc#ygJKOH}5hi`6@fF!OQx&g>T*V!(1g@^Zsy$V?)G$y&3kG zugkJq+?Eu@ zYI0RXk)*nahd9(V@8%^xt=#bV$?+Q*7!4Nwg~x<(z1p%(waUcRF!U-&T&el-vMns| zbBXhiru69poZ`ms>#K9|n+;dH_#DZJ#<&_40UKgr4>L z7%_(1Ea%VFWH_8O7aFTd@cxr%$9Z?sHaC&Ojny^R-vC1c(z5Uoo)?e!q+NjPO#-+m z%R^>ejn@$wo2OkgR027m8OulKVm`Qk^#bYpSAX^!3->QO-r0)B)40}c;w%~4x968P zc~OeScw?d}=x|Fqi%Zs?wnRPjLB4CJzoFV{E_%be+NFa3bR(6fhpoz+Z(TZc-uPJ~ zeQtuG=ZBXNA$@25YLI<@XUx~t8-F+9E^MWthyk5OvIa4=r?`!qI4=Ku7S=8VW`Q9j zauMFk#Zi_atnM^xrcU3Psi>Aa4pcjX)&mcvx`WN6%0Rv9HXXPx&|7{Gw$bHiKkw-u z5!HWc{>=ySTD&PJ{T3SWOh^BvY@}@1>tDgUNHJD;}p6a2UNd_y<=R zUlmG-|DcF+BR7cqeI65D?3dS2T`BNa55H|Ezr-veI{Yv#nfMxqo8X(L@0oCUo?(g$ zsA;#OsZCCPib)UD!jxw{w&$~d;b&N^yWhU47$%|O58M>^&D>!uPKC=c^|T8V=KXEF z=X3&U54Uj^uq6MtyZVUL4&Q7b7na?DgAEUlh~-fzL=1z0KNOTF*tV+vF>u^2 z^`_p=e&H$`gePlP*bj_yc*1`g=FUJRp7gm@^yc769n0sw?c{7*8n|@D7J82u`)CcP4I!+hl zbRg}TfnfdQ!nV6tpar^k`oP+EPxXzul{+@HjP5;eEybPv#S?2kr+yL-W}0>DpB#NZ^_&CAGGx1&F_}tn zzUA<0Rrd$z_oL}XeMULEc~Ng|rGJ&0oiq7mCI{NVYUF9EMX~GCVFUDmI__|N_q?)m z-rhp)BewLR%i@z#qMb9_hdKD0wo^pOeO^jVR#|atD8jv-b|v8Q=)q7xvtjM;zOLQ? zLp*LR46VvlkkM9&f6fWEFuqkrhr5yEACK&%CWK%<({UrXm9-6?ec`l+?fiZO z{Q-WUI4$+FT)9Oh;~eU4j?(9&rqrDGff{gk#sq!AN5W=ozM0?p^KB?FGxn3Od+x;; z`B)dT)?KhQ!jQ{}(Q*YHXZ$**&($oIUN3e`a(c8(({f#;9Z2I@ln!RR_LvE$H5ZkR zRdYVyzp1mQ>zPHNk5hig_?Pwnp~SHM&QVlP1>I1%OF07_@t^w2N5wMk>UO`?O)vfF zx1jREksz26ngsCC>M8!>j4?FTGFJS#5O({*pRcINEPltEj)2PkpZ;#(OE3h6bY|?6 zdT{viD9DU*K8|5&uBmbZW-h-&^2Dvp*55wb@>?k>vu;CylcMwC;Ch66bS(6JANZNs z=<5Aj<0wJeooZ#F2~}O*Q76(%VcPb%Cd`5^#KVdDgviBllYLN91yB;CzJoLcXlwwcMD#Gkd(KzGxfk zQ1rdWx&uwSws{(V8Q+62;(vzco>Adv32lq2+}etNzT2*e@Jl3H8(JS5)WvONX{8@g zi!Q1^B4#hW+EhNrH@M=ellzs+epGTpeDqu?;8-Xy^cY#mGTTa#jk|kdPW{+tU;8s| z@_p>*Si7twVFPfHw$@qPShDiGxL>M+O;5{{pjginyy#`D1g@lQtih0bPx(-Zdc&*P z=5?m|DFD*n?aE@g=2mj=UzsZ8X@Iuu`NC%%u96=z!CtO!2-Dsy#T1O}zIzb2OiJgF z7kBdfm0qSyc%oFD@3+{|m!|aWS8BQL_|m+{#ATnv!l^g{>1b<1W)CXl$}ZR%6{?ZV zip!fK?P6E(ksJgTd_L(;(KX8q#Izt_xY5S>VYDi!Wvt!#mMV9iZx}sFn%fNAh zu5Vb}qUgqlo2>L~<17G-^EBV3@@IO~N%5!TC7qP8+{zR&Jab-@VDp+g77G_9=vPw=@JM%c=n5D$lv4h zA&WnkR`2r_NmRRkR|d-8cPW3Yu<)~6Rne3_qPAI$ab^dDr?jyM;1*HWOySqUM?B06 zln<3=XI@!xl>kTgjsJGv&kQJ<&;A2n>5){q^-W83zJ2$ckyRhMis9w}rkM@53Nig`Fr`DCoELhEiTRKoZ*6+bb-WKj9N zt@l$c2mQ$?k=%7%gTw_oCy>6m(AR|&BI1-Ns{~?RkN1D+te#nYf4ob6E{d8gmY(~+ z=TxIBFPt8^`k+9#-&g0>r`h?-y#u+<;&XsA5A?}(Bj0uD-t#-sWRXJBoCZBeeD{yU zyLi#J&}67Zdj`Au_HSUvUtfGZvU!LK-Hdim?VtRQ6hb*fFHN}^`<>2k;|5U*z>lQ_ zS15{~?>Y{bG(Jx0B_g8weGS~S@NF1@kxk;fwgaV%sM7PP(uVf zHB&UAl}n=4Mnmej@Cwfi=_H`jv^q5_zbqL{$nwg@+V9jWX@0RXeT2{~&pCkGwBYdT zTHt@K3ZKjt=~k<825h|wIuHWCL%6-Scg~3%VmbQ#YhQaPyq-FUKk3vDI5`*eTiA7Q ze1cVBM}9OTQemd8-Q2hs%`4thH7=7_Eg6*cPe(7XDdRO6r9cetz%UT*-PN<9HbmF| zT>dnjd!9Z}UQ)z(`jxp4z8X2jBYLYFxwDaRAD2SHY$0mCpy}xlqj8YJdSz9^=L&dlF7r-=AFei#lbaYFi7-~Y(ZjR|hDzJxZNFww&9AnuoQgG#`T3VYHL3V% zPj865-DRY+dWz|(TOa4c+MX4v4}kBlen_;2#l4k5y1XN?<$hX~b~L?6_*z<=MzEkz z6}cta>8f!2XE-g(hCu+?uo8m&jjhjjsk8#Peb{xo)uT7)inQmxWgFTYpTwUc+&q;@ z);S~|m^gbRk^ZL98HO*c{{WZVl z41s|;)_Hy^e^;gJKUM7*Pk8lSUFL(Cm`(7-zpYhD4dm3-N{3Rlg>ph32*cS63S~8y zcDwILeE;uEe|X_0Nl$U{&?s6G6HX-6Wbv83?$NOZn1>KU5B%+C9jHA1r!;-K$04JK zu_{%!KtY;T_^WRxgLQuN=2da6;vZoPJz(89h1}Po=Qde_3*NKfIhtEkCRSr)-u}l? zg?qazJIm!+?v9J$Rn7)w$jsx)#65dHgY>S-+GvHXxEYPWeEB`~C+Ql(926tYQ|Djn z8G`A$Dq#b>6%Dv74k~B&KO1M(Ae6)UwUJ++KsFt4;54-4H z9JW2k+V(%%b~eAN7>$)LU{T2pjmnLA{lRHid?+q^#q8vD{fIwtVkDgSX-dU|>5J#C zj$y9GpY1mUfl_CC?d)`)OrP2g?7So~loxC@Ws-Au@DqHs;=-_CSFKWbp#Rv^qw|?R zX~io1DY;8zFt<4yp3dL79qaHyJEs7{u)4C_uY!Ed*%f5xi9 zM=<}gx7#l7icN~zUz5jA^E|Cf9HK2g`K;W)L-^rE;*#yl??@Zp-EHqHCT>z1&NeUB zdotCgKR8OSGwziX#MGFY1#2WMt;29~Z(*e0y}N^PkO4wW>sHk*PU>GSnD4YQ`*N(*Ot1KQOHiv73b>ykwBv>0sUeDtGG zX`M-QrPgu(R+tplN#@S^^93j%k=_kHKADfm4NlD8)m=~tU$@9U^yUk$efeq7yOG7GQIbXHs~O7d(_rX2I?f2Re)X{U;X-;IKA+yIl&YTpcX8h&oY}P# zMTWu(0SZflp1)icsR6Ewko{1-dx>^DSbSxoVBC}64ZPHpT+DW>@4uMJ*~<spyI%X zmTLog=920sy|X=gntLsXWZ-n7u+y7wy4tGZw;jle1ei|!ky>p$?9<<6K^rBXkMhXE zH^v)+%MsrNHI}T=#@!hXYPkCiC8nb>8yIduW(M&_>ybKB+Kq-sTIC9iR79TePiDa_ zmSel__T-?VuW`7)NyjnQ87Dl1@1LDdfBD?%L9$y?=rDNc*WR6V+4ULshBshY*E;M6 zZwveWcc8#ssc6=ylyw~cfx?4_g~C=B(M0by27IgCW>#tyxP=1@Igs9tGv8Bm{%qI( zQs8>OV2-{S4IRWQBzSQEs_N6lBTsG(Je=n8jgeH+xaSTCSz%RF;1v&Pvoqm7rHvD} zz5J8)KoucCMO5-ILPfto{5h|L?gZa`> z@u|*FYct5T0~f)~k_CAAQg%MaSWn;7ok3gsZ&~+ho;qjrtj?}_ga#w6-R;%m3>W_? zJ6F?EqbE4{7W63-LlTsW3JSemkw*iswAA$n@JgrE=7xf3G-}S73iq$wYF^lozXAv+ zOTA%?;ylGU(MnX%`$6gw-w;%qHu zQVX}-vvJYnaf^C!;d5KN94Nir+YT!-X&wnweYFQbOnAfHU&R*ENp&YHU@~}5B0t5k z%w`vtFWB9x?DV<2oG7!&Kl+|cuZy!=A^7iuh=^#(@pBD7o`s2)-)^HU8;U^&OUBR5 zo{{o)Z^{(VE-xV@zv3UUzU$|Ngn%`7pK*+_!t8r8_H}8V+NOR=kiqBymLwuoi3#U` zJlUNXJ-p0sAVDSFWB6^3iwR2Asy+K{rM#&^WZv~^(erykf>`M6D-CS@Fu9AiNI2=# z1K_)tHtE!^Pch>O#>TCOM%LQtMh8Y;je{`jN5P`PkAsAK8aZMuE?-uH0!`&= z$5!r}BCX)(Pgi=is^zj-Jf0Bo#zbxz{ap^hEB0Jo6*A%I?PN`(16Pvt~ToC`|I zDOc?lCfxe%*%b_pXe}?wCDWwzwEZM!7ksEsW;o=T{Z&0PZuRp4d;T+t3=(sFO_PJ~ zkf$!(0v6qO9&sB_o)VEK$&<^q=5YlQhv0V?{a%3@(GN7vb$K{HPLs-hrtio?A;l&n z5yVGir~U@%5~*4c=kvkTrO<-M?91(yhr-eIH}!*Ferp>!(^q}RO59w$N+wlL4AU0! z1f59f7u}XjAH+NI6R6}gxeXB z&lL3Y)kOY$!(0r;5RN5)mR>xR1lr~%BTkMstZU=~Zx8g;hyC!g-*&&s+=L?h$hB-q zkRiQddfA_!I0CvJB^4c?H)V1dJ+Iw)o4MXz;G*d^Mqe`W&`~I9%>n~*F6@6x zYDB{!-oewIcaiR=@pFuz?_c&GFF<$U-{NP=I;Ew?BCV5O_$lX9z8dtsw}seG@ej#8 zs&u7&R`Y#hQk{ix@QSgcV__WNH9++E4bz%fW3~h{gfRoK?izhUKH84s@5<10dM0U+ z{#b093r|n#mBYzL9{zVY{Blh+kzU^e;s=cQF@Ko{z5=IHpT0eqL%l8sOW#7i#yo7< zbf;#M7#H(l&iZE!JrxNNce6Dvd9q=Cs2fh*WUcdf=N#0#7uzXB8dmHMN441A2 zp6}PjjB4^6$G8_Iutx&bw*P+O<|kQAlhmn5yt-AzF)dNl9<}63Q#fr7b1i@T4jhX| z+1f||#OFSrr)a0Mr}@#b>QATJnc0TmY_Z82`p3l{2%WM$X|#}jvv=vN82reeivt?s z_^op}+iK|>(PGoi_LS=)RM==4)>X3NO;qsO4)kF3XOoUX{zTvyZ$}Hevzk4wbDbdZ{ zM1Ak6Oz$>-aXa;@iA5&AxXhA6Ogec$$X{o%L=^9lDg{-5Muj9Z=dxZ}X(Ay9h_H*& z#4*1sQ1IAmPK;sDTu-cuEH$;|(Odq*^Q?flH)?`5;d3!{i20z9Y^dNQRt;#RDoyE1FVzuoHp-oVi@&`} z=i5wr>*tHUTGY|HYHDq3c`a^-kKkp@nR@2gGRsX#SiBsOqe8BaPv6VmdI=P4k>b$d zmw2_-?yEiGA8EOYqzxA*W-$sSW<5td-mB?O6#cZ3W#6q@%^5_b+(U_TmFqsg(ebs9 zKVDtVv*Z@|xaEoN_Yd15bG@XmE@)lN#`7a)7m>FNJV2A0jo1ZDmV4GDK^x2L56$68 z1cI_H_M2ob-)#Mmvx)o?_q~S0dkdtU@#^ zpOj()KiNU>;2%lt`Jn>l_cfb7P4wn*y&^xmZR73XETf$yA{&90E(Qi%# z`%}ZD$oOLm%`kF*;IC?&d=2!H~Uz4^Lex1c6 z8RE`zz0`L3oXyb<#`;_6!h+8JqGO`*I1*DVr6F>id&j}aY;z{BUZrJi`=PO8em9DY zzx0BGS7^r(&BegEU8gc1erFr(s$n6v7eMm&-6@t94K-AB(Pb2+plxTNvZ47*DE)Jk zts~d@g%BNWj?Z+~$vH&6p&FBt-{wJ{3HfmO`(F3y)z@uN6bTs#g~S5*PyCIhiDAE* zpX)^_&$h#yRlt|ZDq*^)$2W{%S0<4vzZr-5YpXUhd=aMu4AL1gB=(+}XX>z-Zbhkm zDgAk)U4lDRePiZp`-Yt-4mD8cc0)$;clC=aK|k2P8=J~rFI z)2QEK3ct{_onzvqfXSYy6$AmafIQ3$W2{>$ zGeznT?k4tzS^i=ad=o1Kbx98@&oL0EdQ$PKUmPybNA6}?-KdG zwI*;J=`lq1j_nbZ5a$!8@|^Pb^XGr=)Gow*+t)$Z9*-Q1b}NDTcr3@hjz7BCg0d|~ zR7IvO9J1oRnm-tS=ePbNIL5IkXiwtQTaxRHLA;LwNL`LRGo4{EZzKK8Q_q_vL@m9V zLyhjpC+05*`1-=C{{=X&E0&f8b#cC~ZM}FS7uo)jVB6-{Dtd*}?Mt935ye83&K_fr z@E05CL6+t)7pZK^SX2^WO05mg>(DWU@3_R>7u3YeduKvYHtrSla(&u6zXR{zT!kn$ z->8P2=sXXBILZI@YQ~eiQTjp!sy+S~!w600X1%FZPTndNzznFenB`i?DYUTW>%A1Neqh_i13PW=N^HAS7S z>{3=X(Pm|VOfl+WWsm3L-t)c4pmXaREy$RnKH^QEGxb%luuZQ?KT$$|q*AGhRaEld zcrcUg_<=uzdhw|Vu-HVs?>z;@2PdbH@ZF+`H|VBm`7ZjlZ?^095~C>$Ly@sAv6(%F zbceL|?d0R{Wix9t6Eq&Y`$097QyK!eW2io*nhgY}#=bS}7q~@->&#m_F2_7o+`G|; zZ}m{8y6t;P z;}1?<%U123KGo^agrCGMnLo8Dotc*RpPYX2BLj>I>kpp90C5EEr5%thB+idXha=sh zm2{~CC<3JGR%b(WXr!lfEP4m7k$xw^{h!1OeP&{^T=F(r7|A%RQG{m-AmaX*T zsZ=E@&;xg_U^CQMM~bPKSIQrn)p_!LkE<--JL1_kTeFef3*v@8#ezeJ%6F>xAyx$O zPP(A0&fni>%x$h5J@U`yA|ci{D`a0EHIuJc$>#trH6CA{=^W~LT6hXFJwZtPPIl6q z7|T#2+8Vi;eV>{^*W(lMBfG{vCG^^v@xDjSd4ijLhF2c|D6e>8a_ z{JF2C!Z<`p;XAGzU&Ux!t?iQLe8vYxp6zfPVg=7PmG1#O&mRD`XS602SmcYlBSD;lI)^yx$w zq2#WJ$q4y&|BP0n!u+#Ax?HMWy%5&A_OItjYtMY&4K-<6%~1SrT^=Uf=Wnc2y1hYsWoE`D{e-vTuVmS=YjA+C(*6*LLMiX9z z$;mUZQi2X9Jm^J8SUZZy?AmH0PPGVFaqSIAm{ZGS=0cTTh-mfHgnsCbrygo;z+DSK zmk9P(|9XUJ@BHI)RGehDBZio!WMjd~`B{PivhH0+VF^ilYO=?cr98{w+ncYpY~F`W za2&IBsZ3KezOFa_bukCfBJlhOV<(QD=P)E?h_Uq~rk!B9PKp-nqz`|8ErsfE)~Q|J zb2saTD-^+a(38}kcv7_YA{g;n4}7J%Q*$0!c0WFLxJx;42wZ0e9dEuD`i*mdqetqe z{p|91ik@}0H*Pluj($AaD$E*fqVtwTP zyfwG@)%As@PojY;m55#?+?i(b8Nq0}@lS*TvtsveL+qvguyq!wa>R4c`8o!?CPha_%_uIaj}In)k5U~eVsMC62oIuFWEyCpwJAEA7kAtd6hN;M!vR> zoUyjD$GQ6!@H;hbQ7`~pvQrAXO^)OMD80_{_u2g{9W=W3@jw%5-F$uVOzhqE?nXun zqmh7lY)P4C8EJqkomf#qgUVS>DESFB!PzZ`Ltj+x)|1w_=npUb$fui5xaWWH@BHXP z+4m~xNLQOd%u0I53wWVEuoSD9?_BO83Aw!8Wq5j)IlyqT`u+-5H^dJ>o`w74axTOe zEF(PMHfa7%?fvh+$r3-fwKQb}Y#WVm@ErS=qZ~bav&MhsQ&tU8Mc`=rm_mCrS3b&2 zhr=+d`Bs_3Uu+q~ro?w^_w2;x{;)cSRuC(#e>=&Ke^zQ1Has|vlc8m90oqQtt&+m~ zZZdm|T14R~KH#wD?)!vHOvcSJ{2F-qX{TF0*2w$y&^s-p-_r?@HI74MAfuWN7rH3q zCJ`Ta#*x;ff!g_;^lL+XR_~YPOTOdImTsD7Ao24$=E36G2aGMV`!y zg_C2}laV>4q(=V0&d1!jMR=HHHUp~r{C%?aqmap zUzRHM=OK7JEO(!5Lkb?QLu&_X^__iuYA94y$h~yb1jzvPHELb5EWG00$~>>Y!~t_L z8h;9pW{8w_*)B9=++)7zOc3zm=ygOJn7{k|*3GHhr9A0}p4_24blf_f98%9m=VJ0m zT5oFGCwZ1=sJUw=q$&(B#zpN@#1WXZZdY2k!ac{eU{-oN+jTbFQ3Px>(Pa*;T}bmh z!oBZexg}Qw+_Yk*@m`caoC&D+5~!h9WNcnNd~RhpUu7o<_E1Q3LL-0r3#)2ta1voY?CPE zUNrbOeu+9rMQTm)?$b~YYGeqRA?@UlkAh}wIj*+HVv>HQW(b$vdb8sjDf8oT^9r&4MwaW?7FyT0-M@X<1v10fFhHd{q2Df!40kvNh+CO5ZA#|eHG zkly3%`)HAb5yTdwm@b*LUyh$f{N%ee_=^{FkAizkq~ZY$H)o#O_V4QWZ?#se0|MW6 z`(H+-E0m3g{=QZlr1IXjb_|WRp8MQwc>>(tTCU4R>wl?~k|!+un5;-qHO#m>Jq0_Dwq?#s-^l?a2*A*1-monw_@O;f zMbQSfb5zQwnx=|%{3~`A*CGGt(G^BWo<55U%pUuE?OvobSd9TLIS*2&>e%@0v|TXW zwV3%}{NG8$sIMnppUoY``poO9szJlq@jRUd-3K;po6aegqH{Jbod-b-Y zjq%6usheGklX|7OUv$J>-n5eA$DccTeb7W(yVElKVv-hCyNs8+>>o7u8J9}bxZC=u znf~Ebs=g0XtMf0?tbx_B(c6Wim zVF1DA4bx?O_G0N={UJ%1Cl0|pE&R&`!-~pacni@{admH}X@5v!Ro=NztWG@r`z~c; ziy&d{sEazExs029jL+YjkLo@FnFjqnWpf3~xWV6K6R+jv1(es{h#Yv|tVW98CuV7> z{+Kx$7knGMHqC7?5tfu1$t0Xp6zt9AluT$UH0Z?&;w`JR;s+$SO0t=DQrF6zeaM$^ zvAHh8R_+e|5RX2FLPT&Ozhvg8%$Gxxqu?=4#Gk`@^nKfZTT>EtF&j6mTI~;RDJC-!&7frL zH-i^a#pvLP#4g2o)af{fE#o188zt($wyC*yB1w+m&k|Jy>*jvlRI_bxbU!VQe_6;$ z)?Ne6I72?X5%!sitZLEQEX~s0At5d7 z0!w$7@bjGS&HD$uH*@BkxtpuGc%JzHFedJyg4+cysT3bl39T{jQ(T?oX`u_8x`R3b z%LoSG)ki*$wiE$bz~^IZJP}MWuMMDZ=H<1#c=|l@oZFv=|AM^B9r{N{T=)Bk0r{YFDcrF?=wIlIgapKP0c{J zM^hA>q0ydhYkj23hK7NN;6`!~bw&AfksbZeT1fkXfMlM~;9YBHy?624{HBPDa0J|9b)WDI>P7 zW8s5Hp!CCR;dLdNJav-zo153{FnLtfh*NHE_lN}URy3y02se=_7>SjvC{94YTirU; zfRhb0`V1n!8K?NxX20OktgqeHmiaQiLH!Nw0%0Lh<~796mgF5tvsQE2=->yBF>-A=JZf1rj9Kb0 zT{GmlP%SHV!HA-g>NtA8dTf)7?&Mw>&GqsZXoa?IQu012PK=j{jQzb1DINoPx{15C zQLBgG0PJsuFFMEjD@A-S9w7~)o(>w(oOKisY8~8(&Fit4=UMYyta#NujhaSeC#63< zC{{xb^e-w2m-iMARTYLa98<2< z&K-auYt1Q@d@5ma4TLcPz65>crlMu4Cy(G|-?o6?@+s6~-#AYLbX9sSvScTeAEk^a zL`Y)peP0DOm5tg*`}dc-A8>(OPs1bQ&57;R&#LcF4We5^%)hm2RR!jTnpcD9%t^+E zX=lfsC?$6EJ}+>Q^<^`JRZJ=_(HQo}>QUBAh_Rs5HEhpN&<6CtP)I3Du13qn6;2a}yoXaP)+4Y{( zRCTzl6D%1<&4W&*&=n2GSQ$(3CNlQwu+#{~dI<@pc%Mw`NXeOsDn2_uQ%t(2w7o zQ<-{Ts8(~>-2Ord-KBr=SSMF=Z^U-J6OmwqhX4wG*w(sL3G+o1;&=b}43*yGmbUz< z9}Ae+H9WSFmf?M5zJf0S$HD{O@aw#{-6>OsOXKNIwBSR>iaJ(a#HEuh9j^8TmjVNH zKRt1iX}H9FS$k3Prju0y(juSZr)vm-gGGa~zR#pzfB6?UDso-aNqRJ3ST$AL9~Bm$n&&-hGR~iHH4et-Q`$;5O@6 zdiC$ju7%Ek$*q!S2x>#A<<_9A#C?$pF!_#*`Eynnwxw7F{YH<^5jU9HxQ-e5%y8qI zWM+fwAv64Z+LW@Hd=kn(|9V!nb#n7+c ze8m=NTRbAgW_{w#|6<*2dVwZHw)2m406*3z2b_$C>lT-tCaq1#i3&~~B(i&yJ2%uq z8+yIL#Z(K#F8>Ekc7IN^l#GdFV%;e=ag z*9BTp0RvvY3U(NNLsNM7&ToQHOQ+SqiShf4xX{0)Z14vnm6bt&^h!`K;`Xd9qPIm! z0%JP==Cq=Emo9YLgtscE_FzSwYO-W2sQ$;C=+w-RRvGu}pF|7qXEiF}+2rP5ml9EV z=6VJeCn#uQe|p)!jHl7CCzaL`t(>)8PQ?GjyW&Sv+kH$LFaIKNm{TVAlzP}9DyD_L z+>)JV1EK99!?1`Us^|`~h8pfPpUiV|j;1`Gg z)p5C$6V$fBCF(*1i%{KoZRiwA4#(hl$qo{z z8prz!Y|3`|PILmvU*z#Hz-9r3cQHeAqI@%tP@%&^m2)?Kgq&|;8w3L1&PycQBj&4f%PMEKx_$_IN zPA{hQWk-zMSp3&p6KK=JTO%Uy&HE1x0zlxpZLbKD(XtzHE11nzRh%*g&)EP_)Beia zLHG}Qd#QKcP8um19P!twUA(PnNPYci{#TE9RcMU8Hk$6RL`+#i>|X)SyK7b!#oXX1 z>DM;sm)S8}YHJy^pA26XY#xP3nj0o(^Qzbp)mYvmW8qUfB-F5_ok;&&ws)3v0Y)z< zj`zL31O(PjISuK+UbPwFjy!TANs4FM_Sk|XsRb35&QLP@nuBAOHJTCYb8*Rn{uPx=p-J8+|OPC)Bq&$iQuHdY!F3dlru( z8{S)4HXyIqY|zBu;~6y>N_TekftjYrdY2$OSkh5Bli99BFkML|@Z zGr`~XBDYQh=>D&w=tVSOvdGf&3U}XPM;pHP6Qj&}%7vUw3{600?N>#JfuL{GQ#F}N ze+S4bZ%N#N3235Bv7o7eO>w*IaiDdY1$AJ0HiPh8KW zuF2Eob;M2U;Is7vxMu{wn^b3$RC1kQdOQ77*%^B@vuT&l-`gjb-Sdnz^3cfec#R zch$@1Mk-@zP$`5H=zZ4;bO~1@fJuzYW5xNN?ugtGIf39Ls*iD{#)Fg zVm6g)QKu7!!YDAFXzav1s)Wc|0&47>Ilaj1Ol3#wZFoL@2+KQ%45;jef23O!sCY_e z=^jZ?hq2)unU4U-B(p>;RrpXy>K@xkSv2KNI6S+Sgm{rd`xqz41}T-4{YGNFUG2#| zwyut?=#sBVDZA2x#k6Mqrj>V07^5;1U=i$+p-2O!8IG{;+;}yc{0B{+nAk-dvKdK{ z>0@y5O6e25@4353S%Q{+0c?D1h|b<6kGqUOreHoL|@fi=4p%}=Xdy$Gm}E_`lrZt8mKCNYAA%0xEAJkDHI(-1JWn2 zm-l?4=vj8xwq|O3DgBf;lV|aE-hMHvp3UboVv5EO>TZ}@Z-U+(O^@oRV?PZX&fI1_ zBMf7WTuvR0H>hzV1CQaa;ZRM7Td&wl`OW-emH`1i!A~s6iq0d%0fJ3OXN1I>iVa4$ zeH6ncS{Hb@1xx*8J$mZv2Qd#eJz7-)%$np=X;@hc9=YJKytB zv(sU^^y7qltQHCEguvh}&_XT=#AttXeYbn90`S(b+dXW_zLezAFVgW@CPYgY zzN)QldN2-2g7*#YDi__H_tBb^eQKRJ-t){ zuU3)o%vnSS*|hP1usB4yz^jKKm0w59`E!+C8Ii)$t8RC8jWqQVr>NOh%Q>GN5JuPrpo z{h`K@2Twdc4U$5^2mEi`D^aF^XV=?xr^j7dKr=bxlB%^QARpH^0*EAhh4z(Mny7esg5 zDR4GYsBlRTF8BMxL{ew_oHH#lQ^@#IS)Qu%J5oHZj-n4}3-*%loMj3hK3zJV#27m>v7gUB#^Id|A&wE0JF8OsxSg)ZO;yQvru??B6 z6w;o#ny3;Bb4D2$5w9`U`eOEkbEi=A8~kzmi;7CwBP;MaGG!(?KwE>)Fp)?3Pz5W? zsLITo)^lUF8BKke*!p9Vs=K?E+yS*PGx>Ig&e1^Fi3L)fL6}K9?Mh(i=PtW?omZmo zJVCZ>keCj~r&CQa`@rmLn0TDjVE+eG+ja5-VKLM>DR#=DLif417Mxy--Q z17Chhr$_2cbX=4O{gLfA9i~rLh}!L*;$JE+HKdqxF$;$NjVMJN`X?!VA%cc7`-C=4 zm}~c-TCr}rZ8b)6+zHGr8Ii=jDulX9&;tM`1R~e|^;PQ9>9_yTzNVqL>|-w~5?9}$ zaYwSRF#bq}{DSo3D>1^2TD@U^tKWR;#z;S3{jecyGQe%UOta(m-JHx^5mBN&&e!GS zjZYJ*EfAllWTPCE$=9n+ytjpRkMPe9?v1X3|0ZXW8g3jh9?YDYA^c|fD&@Z}sm)56 zKfQm2MHcBaeroKW5vCP z(FM@)sJ%;28;t|yRxM6|i)%0$uO{vvxGi%sb@YW~(7DjTrwVv|P~2RQptB^a?#P#6 zS`8)fc*{l-si3zd*jG2IQSPv05UE1#Y-4B|-PbGZn)@KV3}0@$l2UXu!|p#I3A?^b zu~}O0g}5}Iz77h~QB&O>%a}_vw$_)mlVKf7K&Wm5X9!rQ&GXNrK#4PHxD+ z@Tm;rqNYuP2@DPswAP&T8$cd+?rSn|=EKv1P3TDheJ!RNW97E;TI<$dfHlt9uf_Q` zz8f)xfp8jZ#qgI$ZMsJ_z88Cgh(M?)s^BvKfXed({#h7~U-5_a5u>w7tHl26KUV-{ z@#U}BdCbLkchA>UQ>wdy0JqDq>s2dvA}Ga$=#Vq|58%L0X!PTj%*!lbYFi#0FROoGFO^YPS&y_-<>LcyeApAAw$=ArXVFLWdUhkB z^$?G}zFz9ZpuQS^^OR_Yu@S5_ZlrcuEzSjg?GVpL}vSmUI!v zajYXVp``!4eL=FX-F&e;`a1TtJ}BIAEU0#z#4Lz1R$E!8ZuwKQ1Rv<(G;3SCY_d=Y zi~iPYY^#Sb^pH#!^2jZKwVqOc`Wp>14b?6cD#~TGi9zsW_+?*nP5D0iF{|e^cR%_0 ztCFS+-1;aX?jTXX!_=fN-nJ&x1NlE=LpZHW$;mbVgPUbJT5Mj!U&Y;u!U$VZobuK! z$WKu=d@JJbH$)Lz2uZP0+})>~-Jgz^*|tJ%whte3TKMZ(c*jSpj4hx&=u9eNo=&aZ zrfL~MfTC7b^iku=sUYq>6#FK|D-Iek2J>o#2ZH%Y)4~yw%@P(PkH zcr|Uf*fTnHIi7y)37sh+GBgC=9jBAke}({8FbbpR+N1f<`%fS5a-wQ0xBGs9x4u&7 zN8GT$0qa!A-W6^ZpkT_Ccxo&>-yz*4V2+dEzh(Sa8C%qO=Y_IwB;dDio`8`5JNp0c F{|5tvNb3Lq literal 0 HcmV?d00001 diff --git a/scripts/bake-horizon.py b/scripts/bake-horizon.py deleted file mode 100644 index 372e70e8..00000000 --- a/scripts/bake-horizon.py +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env python3 -"""Bake the 360 degree horizon seen from the ridge viewpoint (src/app/features/scene/ridge/vienna.ts: VIENNA) into -src/app/features/scene/ridge/viennaHorizon.json: per azimuth, the highest elevation angle the terrain subtends, the distance and -height of the point that sets it, and the surface slope there (the normal). The source is Copernicus DEM GLO-30, a DSM (it -includes buildings and trees, which is what a horizon is made of). Source, licence and attribution go beside the bake, in its -`source` block, so the file cannot travel without them. - - python3 scripts/bake-horizon.py

[out.json] - -Needs numpy, tifffile, imagecodecs (pip, in a venv: this is a build-time tool, the bake is committed). -""" -import json -import math -import sys -from pathlib import Path - -import numpy as np -import tifffile - -LAT, LON = 48.1929826, 16.3534237 # the server location Meta gave, 2026-11-11; keep equal to VIENNA in vienna.ts -STEP_DEG = 0.5 -RADIUS_KM = 60.0 -EARTH_R = 6_371_000.0 -REFRACTION_K = 0.13 # standard terrestrial refraction: effective radius R / (1 - k) -EYE_ABOVE_GROUND = 0.0 # the viewpoint is the DSM surface at the point (a roof, in a city); the page lifts it with VIENNA.altitudeKm -MIN_KM = 1.0 # the DSM at 30 m cannot resolve neighbouring buildings as a horizon; nearer than this is not ridge - - -class Mosaic: - def __init__(self, folder: Path): - self.tiles = {} - for p in sorted(folder.glob("Copernicus_DSM_COG_10_N*_E*_DEM.tif")): - lat0 = int(p.name.split("_N")[1][:2]) - lon0 = int(p.name.split("_E")[1][:3]) - with tifffile.TiffFile(p) as t: - self.tiles[(lat0, lon0)] = t.pages[0].asarray() - - def height(self, lat: float, lon: float) -> float: - key = (math.floor(lat), math.floor(lon)) - a = self.tiles.get(key) - if a is None: - return float("nan") - n = a.shape[0] - # Tile origin is the north-west corner; pixels are 1/n degree, pixel-is-area (centre at +0.5). - y = (key[0] + 1 - lat) * n - 0.5 - x = (lon - key[1]) * n - 0.5 - y0, x0 = int(math.floor(y)), int(math.floor(x)) - y0 = min(max(y0, 0), n - 2) - x0 = min(max(x0, 0), n - 2) - fy, fx = min(max(y - y0, 0), 1), min(max(x - x0, 0), 1) - top = a[y0, x0] * (1 - fx) + a[y0, x0 + 1] * fx - bot = a[y0 + 1, x0] * (1 - fx) + a[y0 + 1, x0 + 1] * fx - return float(top * (1 - fy) + bot * fy) - - -def offset(lat: float, lon: float, az_deg: float, d_m: float): - az = math.radians(az_deg) - dlat = d_m * math.cos(az) / 111_320.0 - dlon = d_m * math.sin(az) / (111_320.0 * math.cos(math.radians(lat))) - return lat + dlat, lon + dlon - - -def main() -> None: - folder = Path(sys.argv[1]) - out = Path(sys.argv[2]) if len(sys.argv) > 2 else Path("src/app/features/scene/ridge/viennaHorizon.json") - m = Mosaic(folder) - h0 = m.height(LAT, LON) + EYE_ABOVE_GROUND - az_count = int(360 / STEP_DEG) - elev, dist, peak, east, north = [], [], [], [], [] - for i in range(az_count): - az = i * STEP_DEG - best, best_d, best_h, best_pt = -90.0, 0.0, h0, (LAT, LON) - d = MIN_KM * 1000 - while d <= RADIUS_KM * 1000: - lat, lon = offset(LAT, LON, az, d) - h = m.height(lat, lon) - if not math.isnan(h): - drop = d * d / (2 * EARTH_R) * (1 - REFRACTION_K) - ang = math.degrees(math.atan2(h - h0 - drop, d)) - if ang > best: - best, best_d, best_h, best_pt = ang, d, h, (lat, lon) - d += 30.0 if d < 5000 else 60.0 if d < 20000 else 120.0 - # Surface slope at the peak (rise per metre, east and north), central difference over 60 m. - la, lo = best_pt - dl, dn = 60.0 / 111_320.0, 60.0 / (111_320.0 * math.cos(math.radians(la))) - ge = (m.height(la, lo + dn) - m.height(la, lo - dn)) / 120.0 - gn = (m.height(la + dl, lo) - m.height(la - dl, lo)) / 120.0 - elev.append(round(best, 3)) - dist.append(round(best_d / 1000, 2)) - peak.append(round(best_h, 1)) - east.append(round(ge, 3)) - north.append(round(gn, 3)) - doc = { - "viewpoint": {"lat": LAT, "lon": LON, "groundM": round(h0, 1)}, - "stepDeg": STEP_DEG, - "radiusKm": RADIUS_KM, - "minKm": MIN_KM, - "curvature": f"drop d^2/2R*(1-{REFRACTION_K}), R={int(EARTH_R)} m", - "source": { - "dataset": "Copernicus DEM GLO-30 (COP-DEM_GLO-30-DGED), a DSM, EGM2008 heights, 1 arc-second grid", - "tiles": sorted(f"N{a:02d}_00_E{b:03d}_00" for a, b in m.tiles), - "tileBytesEach": "about 42-44 MB (Cloud Optimized GeoTIFF); nine tiles, about 380 MB, read once, not committed", - "url": "https://copernicus-dem-30m.s3.amazonaws.com/ (AWS Open Data, eu-central-1, no account)", - "licence": "Copernicus DEM licence: free of charge for any use incl. commercial, attribution required, no warranty " - "(https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model, Licencing)", - "attribution": "Contains modified Copernicus data: DEM © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 " - "provided under COPERNICUS by the European Union and ESA; all rights reserved.", - "bakedBy": "scripts/bake-horizon.py", - }, - "elevationDeg": elev, - "distanceKm": dist, - "peakHeightM": peak, - "slopeEast": east, - "slopeNorth": north, - } - out.write_text(json.dumps(doc, separators=(",", ":")) + "\n") - top = int(np.argmax(elev)) - print(f"ground {h0:.1f} m; {az_count} azimuths; highest {elev[top]:.2f} deg at az {top * STEP_DEG}, {dist[top]} km, {peak[top]} m") - print(f"wrote {out} ({out.stat().st_size} bytes)") - - -if __name__ == "__main__": - main() diff --git a/scripts/ridge-bake/.gitignore b/scripts/ridge-bake/.gitignore new file mode 100644 index 00000000..c18dd8d8 --- /dev/null +++ b/scripts/ridge-bake/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/scripts/ridge-bake/README.md b/scripts/ridge-bake/README.md new file mode 100644 index 00000000..fdd50351 --- /dev/null +++ b/scripts/ridge-bake/README.md @@ -0,0 +1,40 @@ +# ridge-bake + +Offline baker for the ridge backdrop: it turns a Copernicus DEM into six sun frames of three transparent WebP planes (far, mid, near) per place, plus a `manifest.json` and an `index.json` that the runtime reads. The baker is not shipped; `public/ridge/` holds its output. + +## Run + +```sh +python3 -I scripts/ridge-bake/export.py --tiles DIR --out public/ridge/ [--work DIR] [--sheet contact.png] +``` + +Needs Python 3 with `numpy`, `tifffile` and `imagecodecs`. `--tiles` is a directory of Copernicus GLO-30 tiles (never committed); `--work` caches the mosaic and rays (default `$TMPDIR/ridge-bake-work`); `--sheet` writes the six frames over one flat sky. `python3 -I scripts/ridge-bake/export.py --write-schema` rewrites `ridge-bake.schema.json`; `export.py` holds the one dict it comes from. + +Tests: `RIDGE_PY= RIDGE_TILES=DIR scripts/ridge-bake/tests/run.sh [test_ridge.py|mutate.py|mutate_export.py]` (the full file takes about 9 minutes; `mutate.py` runs the mutants of taper, chains and sweep and `mutate_export.py` those of the planes path and export, each failing if one survives). + +## Tiles per preset (`places.json`, date 2026-09-23) + +Files are `Copernicus_DSM_COG_10_dd_00_ddd_00_DEM.tif`; the list below is `ddddd`. + +| place id | tiles | +|---|---| +| vienna | N47E015 N47E016 N47E017 N48E015 N48E016 N48E017 N49E015 N49E016 | +| matterhorn | N45E007 N45E008 N46E007 N46E008 | +| fuji | N34E138 N34E139 N35E137 N35E138 N35E139 | +| halfdome | N37W121 N37W120 N38W120 | +| amadablam | N27E086 N27E087 N28E086 N28E087 | +| trecime | N46E011 N46E012 | + +## Planes + +`relight_planes` renders every layer twice, with haze colour 0 and 1; the relight is affine in the haze colour, so the difference is each pixel's haze share. That share becomes transparency and the sky behind supplies the haze. Far is slot 0 plus the floor, near is the last slot, mid is every slot between (a place needs at least 3). Colour is exact over the frame's own haze colour; over another sky it drifts by the difference between the two. Stacked planes leak: each plane's haze is alpha over whatever is behind it, so a nearer plane's haze veils the farther ridge instead of the sky, and the farther ridge shows through it. Over a flat sky the stack differs from the opaque frame by 4.9/255 over the whole frame (Vienna noon), but that is 21.8/255 mean over the 22.6% of pixels where two planes overlap and 0.004/255 everywhere else; the tests bound the frame at 6/255 and the overlap at 23/255. The spec's 2/255 was not pursued: it needs a different decomposition than independent haze-as-alpha planes. + +Manifest `luma` is the min and max relative luminance (WCAG, linear 0..1) of the three planes composited far, mid, near over a flat mid-grey sky, over the pixels whose composite coverage `1 - prod(1 - alpha)` is at least 0.5. No plane pixel is opaque (haze is alpha), so no per-plane solid set exists; the composite is what the runtime shows. + +## Licence + +Elevation: Copernicus DEM GLO-30. The credit line is written into every manifest (`attribution`) and must be shown with any rendering: + +> Contains modified Copernicus data: DEM © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. + +Licence: free, full and open access, with the credit line shown (https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model). diff --git a/scripts/ridge-bake/export.py b/scripts/ridge-bake/export.py new file mode 100644 index 00000000..25ee543c --- /dev/null +++ b/scripts/ridge-bake/export.py @@ -0,0 +1,178 @@ +"""Ridge backdrop export: bake a place with ridge.py and write its three WebP planes per sun key, a manifest and the index. + + python3 -I scripts/ridge-bake/export.py --tiles DIR --out public/ridge/ [--work DIR] [--sheet contact.png] + python3 -I scripts/ridge-bake/export.py --write-schema (rewrites ridge-bake.schema.json from SCHEMA below) + +The runtime reads manifest.json (SCHEMA is its contract) and nothing else about the bake. The pure parts (budget, bake_id, manifest, index, schema check) import no baker; +bake_place imports ridge, which needs RIDGE_TILES and RIDGE_WORK (main sets them from --tiles / --work).""" +import os, sys, json, math, shutil, hashlib, argparse, tempfile +from datetime import datetime, timezone, timedelta +from pathlib import Path +HERE = Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +import numpy as np, imagecodecs +import sun + +BAKER_VERSION = 1 +KEYS = ('dawn', 'morning', 'noon', 'golden', 'dusk', 'night') +PLANES = ('far', 'mid', 'near') +NIGHT_EL = -12.0 # the night frame: sun this far below the horizon +WINDOW_DEG = 72 +PLANE_W = 1280 # every plane is the whole 72 deg window +PLANE_W_MAX = 4096 +PAIR_BYTES_MAX = 800_000 # two adjacent frames (the runtime's worst case) together; the same number is a CI constant in cut-ridge-ad-gates +DECODE_BYTES_MAX = 20_000_000 # the six planes of a frame pair decoded (2 x 3 x w x h x 4 bytes = 18.4 MB at the full window) +WEBP_QUALITY = 80 +LUMA_SKY = 0.5 # the flat mid-grey sky the planes are composited over for the luma probe +LUMA_COVER = 0.5 # composite coverage (1 - prod(1 - alpha)) at or above which a pixel is measured +SHEET_SKY = (0.80, 0.86, 0.94) # the flat sky of the contact sheet +ATTRIBUTION = dict( + credit_line='Contains modified Copernicus data: DEM © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.', + licence='Copernicus DEM licence: free, full and open access, with the credit line shown', + dem_source='Copernicus DEM GLO-30 (30 m)', + url='https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model') + +# ------------------------------------------------------------------------------------ schema (the one dict the schema file and the validator both come from) +_num, _int, _str = {'type': 'number'}, {'type': 'integer'}, {'type': 'string'} +def _obj(**props): return {'type': 'object', 'required': list(props), 'additionalProperties': False, 'properties': props} +_plane = _obj(file=_str, bytes=_int, w=_int, h=_int) +SCHEMA = {'$schema': 'https://json-schema.org/draft/2020-12/schema', 'title': 'ridge-bake manifest v1 and index v1', '$defs': { + 'manifest': _obj(schema={'const': 1}, baker_version=_int, bake_id=_str, + place=_obj(id=_str, name=_str, lat=_num, lon=_num, altitude_km=_num, tz_h=_num, tz_name=_str, date=_str), + view=_obj(look_az_deg=_num, window_deg={'const': WINDOW_DEG}, plane_w={'type': 'integer', 'maximum': PLANE_W_MAX}, plane_h=_int, px_per_deg_h=_num, px_per_deg_v=_num, horizon_row=_num, sky_row=_num, near_row=_num), + frames={'type': 'array', 'minItems': len(KEYS), 'maxItems': len(KEYS), 'items': _obj(key={'enum': list(KEYS)}, sun=_obj(az=_num, el=_num), hour_utc=_num, planes=_obj(**{k: _plane for k in PLANES}), bytes=_int, luma=dict(_obj(min=_num, max=_num), description='min and max WCAG relative luminance of the three planes composited far, mid, near over a flat mid-grey sky, over pixels whose composite coverage 1 - prod(1 - alpha) is at least 0.5'))}, + attribution=_obj(credit_line=_str, licence=_str, dem_source=_str, url=_str)), + 'index': _obj(schema={'const': 1}, default=_str, places={'type': 'object', 'additionalProperties': _str})}} + +def validate(x, s, path='$'): + """The subset of JSON Schema SCHEMA uses; raises ValueError naming the path.""" + if '$ref' in s: return validate(x, SCHEMA['$defs'][s['$ref'].split('/')[-1]], path) + ty = s.get('type'); py = {'object': dict, 'array': list, 'string': str, 'number': (int, float), 'integer': int} + if ty and (not isinstance(x, py[ty]) or isinstance(x, bool)): raise ValueError(f'{path}: not a {ty}') + if 'const' in s and x != s['const']: raise ValueError(f"{path}: must be {s['const']!r}") + if 'enum' in s and x not in s['enum']: raise ValueError(f'{path}: not one of {s["enum"]}') + if 'maximum' in s and x > s['maximum']: raise ValueError(f'{path}: above {s["maximum"]}') + if ty == 'array': + if not s.get('minItems', 0) <= len(x) <= s.get('maxItems', 1 << 30): raise ValueError(f'{path}: wrong length') + for i, v in enumerate(x): validate(v, s['items'], f'{path}[{i}]') + if ty == 'object': + props = s.get('properties', {}); extra = s.get('additionalProperties', True) + for k in s.get('required', []): + if k not in x: raise ValueError(f'{path}: missing {k}') + for k, v in x.items(): + if k in props: validate(v, props[k], f'{path}.{k}') + elif extra is False: raise ValueError(f'{path}: extra key {k}') + elif isinstance(extra, dict): validate(v, extra, f'{path}.{k}') + +# ------------------------------------------------------------------------------------ sun keys +def sun_set(p, date): + """The five day keys from the preset date (copied from the mockup's run2.sun_set) plus the night key at NIGHT_EL: key -> {az, el, hour_utc}.""" + day = datetime.fromisoformat(date).replace(tzinfo=timezone.utc); lat, lon, tz = p['lat'], p['lon'], p['tz_h'] + geo = lambda t: sun.solar(day + timedelta(hours=t), lat, lon)[2] + def find(target, a, b): + fa = geo(a) - target + for _ in range(50): + m = (a + b) / 2; fm = geo(m) - target + if (fa < 0) == (fm < 0): a, fa = m, fm + else: b = m + return (a + b) / 2 + noon = max((12 - lon / 15.0 - 1 + x / 600 for x in range(0, 1200)), key=lambda t: sun.solar(day + timedelta(hours=t), lat, lon)[1]) + rise = find(-0.833, noon - 9, noon) + hours = dict(dawn=rise + 0.25, morning=9.5 - tz, noon=noon, golden=find(6.0, noon, noon + 9), dusk=find(-2.5, noon, noon + 9), night=find(NIGHT_EL, noon, noon + 14)) + return {k: dict(az=sun.solar(day + timedelta(hours=h), lat, lon)[0], el=sun.solar(day + timedelta(hours=h), lat, lon)[1], hour_utc=h) for k, h in hours.items()} + +# ------------------------------------------------------------------------------------ planes -> bytes +def u8(plane): return np.clip(np.rint(plane * 255.0), 0, 255).astype(np.uint8) +def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane), level=WEBP_QUALITY, lossless=False)) +def decode(b): + """A plane's bytes as RGBA uint8; the codec returns RGB for a plane that is opaque everywhere, which is solid.""" + a = imagecodecs.webp_decode(b) + return a if a.shape[-1] == 4 else np.concatenate([a, np.full(a.shape[:2] + (1,), 255, np.uint8)], -1) +def luma_range(decoded): + """WCAG relative luminance (linear 0..1) of the sRGB composite of the planes (far, mid, near order) over a flat LUMA_SKY grey, over the pixels whose composite coverage 1 - prod(1 - alpha) is at least LUMA_COVER: (min, max). + The planes are haze-as-alpha (no pixel is opaque), so the measure is of the composite, never of one plane's solid pixels.""" + img = np.full(decoded[0].shape[:2] + (3,), LUMA_SKY); clear = np.ones(img.shape[:2]) + for a in decoded: + al = a[..., 3:].astype(np.float64) / 255.0; img = img * (1 - al) + a[..., :3].astype(np.float64) / 255.0 * al; clear = clear * (1 - al[..., 0]) + m = (1 - clear) >= LUMA_COVER + if not m.any(): raise ValueError('a frame has no pixel at coverage >= %s to measure' % LUMA_COVER) + c = img[m]; lin = np.where(c <= 0.04045, c / 12.92, ((c + 0.055) / 1.055) ** 2.4); y = lin @ np.array([0.2126, 0.7152, 0.0722]) + return float(y.min()), float(y.max()) + +def check_budget(frame_bytes, plane_w, plane_h): + """Refuse a bake the runtime could not hold: any two adjacent frames (night with dawn too) above PAIR_BYTES_MAX, or the planes of a frame pair decoding above DECODE_BYTES_MAX.""" + if plane_w > PLANE_W_MAX: raise ValueError(f'plane width {plane_w} above {PLANE_W_MAX}') + for i in range(len(frame_bytes)): + j = (i + 1) % len(frame_bytes) # night wraps to dawn, as the runtime's frameChoice and the CI sizeGate pair them + if frame_bytes[i] + frame_bytes[j] > PAIR_BYTES_MAX: raise ValueError(f'frames {KEYS[i]} + {KEYS[j]} are {frame_bytes[i] + frame_bytes[j]} bytes, above {PAIR_BYTES_MAX}') + decoded = 2 * len(PLANES) * plane_w * plane_h * 4 + if decoded > DECODE_BYTES_MAX: raise ValueError(f'a frame pair decodes to {decoded} bytes, above {DECODE_BYTES_MAX}') + +def bake_id(frames_webp): + """First 12 hex of sha256 over the plane bytes in key order, then far, mid, near.""" + h = hashlib.sha256() + for k in KEYS: + for n in PLANES: h.update(frames_webp[k][n]) + return h.hexdigest()[:12] + +def write_bake(out, place, view, suns, frames_webp, default=None): + """Write out/-/ (planes + manifest.json), rewrite out/index.json, delete the place's previous dir. Refuses before writing a bake whose planes are not one size, differ from view plane_h, or exceed the budget measured on the decoded planes. Returns the directory.""" + sizes = {k: {n: len(frames_webp[k][n]) for n in PLANES} for k in KEYS}; dec = {k: [decode(frames_webp[k][n]) for n in PLANES] for k in KEYS} + shapes = {a.shape[:2] for k in KEYS for a in dec[k]} + if len(shapes) != 1: raise ValueError(f'the planes are not one size: {sorted(shapes)}') + h, w = shapes.pop() + if h != view['plane_h']: raise ValueError(f"the planes are {h} rows, the view says {view['plane_h']}") + check_budget([sum(sizes[k].values()) for k in KEYS], w, h) + bid = bake_id(frames_webp); name = f"{place['id']}-{bid}"; out = Path(out); out.mkdir(parents=True, exist_ok=True); dest = out / name + frames = [] + for k in KEYS: + lo, hi = luma_range(dec[k]) + frames.append(dict(key=k, sun=dict(az=suns[k]['az'], el=suns[k]['el']), hour_utc=suns[k]['hour_utc'], + planes={n: dict(file=f'{k}-{n}.webp', bytes=sizes[k][n], w=w, h=h) for n in PLANES}, bytes=sum(sizes[k].values()), luma=dict(min=lo, max=hi))) + manifest = dict(schema=1, baker_version=BAKER_VERSION, bake_id=bid, place=place, view=dict(view, window_deg=WINDOW_DEG, plane_w=w), frames=frames, attribution=ATTRIBUTION) + validate(manifest, SCHEMA['$defs']['manifest']) + tmp = Path(tempfile.mkdtemp(dir=out, prefix='.bake-')) + for k in KEYS: + for n in PLANES: (tmp / f'{k}-{n}.webp').write_bytes(frames_webp[k][n]) + (tmp / 'manifest.json').write_text(json.dumps(manifest, indent=1) + '\n') + idx_path = out / 'index.json'; idx = json.loads(idx_path.read_text()) if idx_path.exists() else dict(schema=1, default=place['id'], places={}) + old = idx['places'].get(place['id']); idx['places'][place['id']] = name; idx['default'] = default or (idx['default'] if idx['default'] in idx['places'] else place['id']) + validate(idx, SCHEMA['$defs']['index']) + if dest.exists(): shutil.rmtree(dest) + os.rename(tmp, dest); (out / '.index.tmp').write_text(json.dumps(idx, indent=1) + '\n'); os.replace(out / '.index.tmp', idx_path) + if old and old != name: shutil.rmtree(out / old, ignore_errors=True) + return dest + +# ------------------------------------------------------------------------------------ the bake +def bake_place(pid, relight_keys=KEYS): + """stage 0, sweep, set_view, bake, then relight_planes for every sun key: (place dict, view dict, suns, {key: {plane: float RGBA}}). Needs RIDGE_TILES / RIDGE_WORK.""" + import ridge + assert ridge.WIN == PLANE_W and ridge.H > 0 + p = ridge.configure(ridge.load_preset(pid)); ridge.mosaic(p); d, A, Hh, _ = ridge.stage0(False); r = ridge.sweep(d, A, Hh); v = ridge.set_view(r['slots']); layers = ridge.bake(r['slots']); statics = ridge.statics() + suns = sun_set(p, p['date']); planes = {k: ridge.relight_planes(layers, suns[k]['az'], suns[k]['el'], *statics) for k in relight_keys} + place = dict(id=p['id'], name=p['name'], lat=p['lat'], lon=p['lon'], altitude_km=p['ground_m'] / 1000.0, tz_h=p['tz_h'], tz_name=p['tz_name'], date=p['date']) + view = dict(look_az_deg=p['az_center'], plane_h=ridge.H, px_per_deg_h=ridge.HPX_DEG, px_per_deg_v=v['px_per_deg'], horizon_row=v['horizon_row'], sky_row=v['sky_row'] * ridge.H, near_row=v['near_row'] * ridge.H) + return place, view, suns, planes + +def sheet(planes): + """Contact sheet: the six frames over one flat sky, 2 columns x 3 rows (png bytes).""" + rows = [] + for k in KEYS: + img = np.broadcast_to(np.array(SHEET_SKY), planes[k]['far'].shape[:2] + (3,)).copy() + for n in PLANES: a = planes[k][n]; img = img * (1 - a[..., 3:]) + a[..., :3] * a[..., 3:] + rows.append(img) + grid = np.concatenate([np.concatenate(rows[i:i + 2], 1) for i in range(0, 6, 2)], 0) + return bytes(imagecodecs.png_encode(u8(grid))) + +def main(argv=None): + ap = argparse.ArgumentParser(description=__doc__.split('\n')[0]); ap.add_argument('place', nargs='?'); ap.add_argument('--tiles'); ap.add_argument('--out'); ap.add_argument('--work'); ap.add_argument('--sheet'); ap.add_argument('--write-schema', action='store_true') + a = ap.parse_args(argv) + if a.write_schema: (HERE / 'ridge-bake.schema.json').write_text(json.dumps(SCHEMA, indent=1, ensure_ascii=False) + '\n'); return 0 + if not (a.place and a.tiles and a.out): ap.error('place, --tiles and --out are required') + os.environ['RIDGE_TILES'] = a.tiles; os.environ['RIDGE_WORK'] = a.work or os.path.join(os.environ.get('TMPDIR', tempfile.gettempdir()), 'ridge-bake-work'); os.makedirs(os.environ['RIDGE_WORK'], exist_ok=True) + place, view, suns, planes = bake_place(a.place) + if a.sheet: Path(a.sheet).write_bytes(sheet(planes)) + dest = write_bake(a.out, place, view, suns, {k: {n: encode(planes[k][n]) for n in PLANES} for k in KEYS}) + print(dest); return 0 + +if __name__ == '__main__': sys.exit(main()) diff --git a/scripts/ridge-bake/places.json b/scripts/ridge-bake/places.json new file mode 100644 index 00000000..60da1825 --- /dev/null +++ b/scripts/ridge-bake/places.json @@ -0,0 +1,657 @@ +{ + "_doc": "Place presets for the A+D baker (ridge.py). eye = observer lat/lon; eye_h_m = eye above the local DEM surface (ground_override_m replaces the DEM ground elevation, used for Vienna to keep round 1's 183.3 m); look_at = target lat/lon whose bearing centres the 72 deg window (or az_deg); rmax_km = ring radius (decides the tile list: every 1x1 deg GLO-30 tile whose rectangle intersects the circle); floor_agl_m = authored eye height above the notional valley floor used only for the floor-plane colour gradient; s_ref_deg = front slope that counts as steep for the painter; tz_h = standard-time offset of the local clock on the sun date.", + "date": "2026-09-23", + "presets": [ + { + "id": "vienna", + "name": "Vienna, looking SW to Rax/Schneeberg", + "kind": "far range over a flat foreground", + "lat": 48.1929826, + "lon": 16.3534237, + "eye_h_m": 30.0, + "ground_override_m": 183.3, + "az_deg": 214.0, + "rmax_km": 95, + "floor_agl_m": 30, + "s_ref_deg": 8, + "tz_h": 2, + "tz_name": "CEST", + "viewpoint_source": { + "status": "existing observer of the round-1 mockup (the scene camera used by the game), not photo-sourced; eye 30 m above ground as in round 1" + } + }, + { + "id": "matterhorn", + "name": "Matterhorn from the Gornergrat (photo cell, 9.7 km)", + "kind": "lone horn, close, 27 deg of relief", + "lat": 45.983139, + "lon": 7.782466, + "eye_h_m": 1.6, + "look_at": [ + 45.97666, + 7.65678 + ], + "rmax_km": 60, + "floor_agl_m": 992.3298828124998, + "s_ref_deg": 30, + "tz_h": 2, + "tz_name": "CEST", + "initial_guess_not_used": { + "lat": 45.9856, + "lon": 7.7452 + }, + "viewpoint_source": { + "status": "sourced", + "source": "Wikimedia Commons geosearch (namespace 6), geotagged photos", + "query": "geosearch ns=6 gslimit=500 gsradius=10000 around 25 centres (peak + 3 rings x 8 bearings, radii 3600-12000 m), then EXIF GPSImgDirection of every file in range via prop=imageinfo&iiprop=commonmetadata", + "files_found": 5003, + "in_range": 3241, + "with_exif_heading": 205, + "facing_the_peak": 52, + "pool": "photos whose camera heading is within 30 deg of the bearing to the summit", + "rule": "densest 1 km cell of photos 3000-12000 m from the summit whose EXIF camera heading faces the summit (within 30 deg) with the summit visible on the DEM (straight line, first 250 m ignored, 8 m clutter allowed); viewpoint = median coordinate of the cell", + "median_camera_heading_deg": 245.8, + "photos_in_cell": 7, + "cells_tried": [ + { + "n_facing": 7, + "lat": 45.98314, + "lon": 7.78247, + "peak_visible": true + } + ], + "distance_to_peak_m": 9749, + "bearing_to_peak_deg": 265.8, + "dem_ground_m": 3090.7, + "eye_height_rule": "DEM ground at the viewpoint + 1.6 m (the source gives no eye height)", + "sample_files": [ + { + "title": "File:Gornergrat-04.jpg", + "lat": 45.983061, + "lon": 7.782031, + "heading": 256.0, + "url": "https://commons.wikimedia.org/wiki/File%3AGornergrat-04.jpg" + }, + { + "title": "File:Gornergrat-03.jpg", + "lat": 45.983058, + "lon": 7.782038, + "heading": 245.8, + "url": "https://commons.wikimedia.org/wiki/File%3AGornergrat-03.jpg" + }, + { + "title": "File:Gornergrat-07.jpg", + "lat": 45.982653, + "lon": 7.782466, + "heading": 250.2, + "url": "https://commons.wikimedia.org/wiki/File%3AGornergrat-07.jpg" + }, + { + "title": "File:Gornergratsee 2021 10.jpg", + "lat": 45.986958, + "lon": 7.780303, + "heading": 243.4, + "url": "https://commons.wikimedia.org/wiki/File%3AGornergratsee_2021_10.jpg" + }, + { + "title": "File:Early morning Eiger.jpg", + "lat": 45.983242, + "lon": 7.783361, + "heading": 254.7, + "url": "https://commons.wikimedia.org/wiki/File%3AEarly_morning_Eiger.jpg" + }, + { + "title": "File:Klein Matterhorn mit Wolken an Theodulhorn und Furgghorn \u00fcber dem Oberen Theodulgletscher- a view from Gornergrat 2021 02 (cropped).jpg", + "lat": 45.983139, + "lon": 7.784172, + "heading": 242.1, + "url": "https://commons.wikimedia.org/wiki/File%3AKlein_Matterhorn_mit_Wolken_an_Theodulhorn_und_Furgghorn_%C3%BCber_dem_Oberen_Theodulgletscher-_a_view_from_Gornergrat_2021_02_%28cropped%29.jpg" + }, + { + "title": "File:Breithorn and neighbours from Gornergrat 2021 02.jpg", + "lat": 45.983139, + "lon": 7.784172, + "heading": 242.1, + "url": "https://commons.wikimedia.org/wiki/File%3ABreithorn_and_neighbours_from_Gornergrat_2021_02.jpg" + } + ], + "exif_headings": [ + { + "title": "File:Gornergrat-04.jpg", + "heading": 256.0 + }, + { + "title": "File:Gornergrat-03.jpg", + "heading": 245.8 + }, + { + "title": "File:Gornergrat-07.jpg", + "heading": 250.2 + }, + { + "title": "File:Gornergratsee 2021 10.jpg", + "heading": 243.4 + }, + { + "title": "File:Early morning Eiger.jpg", + "heading": 254.7 + }, + { + "title": "File:Klein Matterhorn mit Wolken an Theodulhorn und Furgghorn \u00fcber dem Oberen Theodulgletscher- a view from Gornergrat 2021 02 (cropped).jpg", + "heading": 242.1 + }, + { + "title": "File:Breithorn and neighbours from Gornergrat 2021 02.jpg", + "heading": 242.1 + } + ], + "n_with_exif_heading": 7, + "summit_dem_m": 4324.9, + "summit_nominal": [ + 45.97639, + 7.65833 + ] + } + }, + { + "id": "fuji", + "name": "Fuji from the Shiraito Falls side, 13.8 km WSW (photo cell)", + "kind": "lone cone, smooth", + "lat": 35.312467222222494, + "lon": 138.587223194445, + "eye_h_m": 1.6, + "look_at": [ + 35.36061, + 138.72731 + ], + "rmax_km": 60, + "floor_agl_m": 138.6306213378906, + "s_ref_deg": 20, + "tz_h": 9, + "tz_name": "JST", + "initial_guess_not_used": { + "lat": 35.4994, + "lon": 138.7686 + }, + "viewpoint_source": { + "status": "sourced", + "source": "Wikimedia Commons geosearch (namespace 6), geotagged photos", + "query": "geosearch ns=6 gslimit=500 gsradius=10000 around 25 centres (peak + 3 rings x 8 bearings, radii 9000-30000 m), then EXIF GPSImgDirection of every file in range via prop=imageinfo&iiprop=commonmetadata", + "files_found": 6494, + "in_range": 4280, + "with_exif_heading": 588, + "facing_the_peak": 132, + "pool": "photos whose camera heading is within 30 deg of the bearing to the summit", + "rule": "densest 1 km cell of photos 8000-30000 m from the summit whose EXIF camera heading faces the summit (within 30 deg) with the summit visible on the DEM (straight line, first 250 m ignored, 8 m clutter allowed); viewpoint = median coordinate of the cell", + "median_camera_heading_deg": 64.4, + "photos_in_cell": 8, + "cells_tried": [ + { + "n_facing": 15, + "lat": 35.36248, + "lon": 138.86287, + "peak_visible": false + }, + { + "n_facing": 8, + "lat": 35.31247, + "lon": 138.58722, + "peak_visible": true + } + ], + "distance_to_peak_m": 13808, + "bearing_to_peak_deg": 67.2, + "dem_ground_m": 486.9, + "eye_height_rule": "DEM ground at the viewpoint + 1.6 m (the source gives no eye height)", + "sample_files": [ + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 03.JPG", + "lat": 35.31114, + "lon": 138.5886, + "heading": 48.0, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_03.JPG" + }, + { + "title": "File:Mount Fuji, view from Shiraito no Taki.jpg", + "lat": 35.313589, + "lon": 138.588394, + "heading": 68.8, + "url": "https://commons.wikimedia.org/wiki/File%3AMount_Fuji%2C_view_from_Shiraito_no_Taki.jpg" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 02.JPG", + "lat": 35.313248055556, + "lon": 138.58760805556, + "heading": 64.2, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_02.JPG" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 07.JPG", + "lat": 35.312428055556, + "lon": 138.58723138889, + "heading": 88.8, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_07.JPG" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 08.JPG", + "lat": 35.312418055556, + "lon": 138.587215, + "heading": 64.0, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_08.JPG" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 04.JPG", + "lat": 35.312478055556, + "lon": 138.58717805556, + "heading": 62.2, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_04.JPG" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 06.JPG", + "lat": 35.312456388889, + "lon": 138.58715805556, + "heading": 65.2, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_06.JPG" + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 05.JPG", + "lat": 35.312479722222, + "lon": 138.58714138889, + "heading": 64.5, + "url": "https://commons.wikimedia.org/wiki/File%3A%E5%AF%8C%E5%A3%AB%E5%B1%B1%EF%BC%88%E3%81%B5%E3%81%98%E3%81%95%E3%82%93%E3%80%81%E8%8B%B1%E8%AA%9E%EF%BC%9AMount_Fuji%EF%BC%89_05.JPG" + } + ], + "exif_headings": [ + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 03.JPG", + "heading": 48.0 + }, + { + "title": "File:Mount Fuji, view from Shiraito no Taki.jpg", + "heading": 68.8 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 02.JPG", + "heading": 64.2 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 07.JPG", + "heading": 88.8 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 08.JPG", + "heading": 64.0 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 04.JPG", + "heading": 62.2 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 06.JPG", + "heading": 65.2 + }, + { + "title": "File:\u5bcc\u58eb\u5c71\uff08\u3075\u3058\u3055\u3093\u3001\u82f1\u8a9e\uff1aMount Fuji\uff09 05.JPG", + "heading": 64.5 + } + ], + "n_with_exif_heading": 8, + "summit_dem_m": 3765.5, + "summit_nominal": [ + 35.36061, + 138.72731 + ] + } + }, + { + "id": "halfdome", + "name": "Half Dome from the Yosemite Valley floor (Sentinel Bridge photo cell)", + "kind": "granite wall across a valley", + "lat": 37.745833333333, + "lon": -119.592606, + "eye_h_m": 1.6, + "look_at": [ + 37.74435, + -119.53426 + ], + "rmax_km": 40, + "floor_agl_m": 5.5442382812500455, + "s_ref_deg": 30, + "tz_h": -7, + "tz_name": "PDT", + "initial_guess_not_used": { + "lat": 37.7305, + "lon": -119.5734 + }, + "viewpoint_source": { + "status": "sourced", + "source": "Wikimedia Commons geosearch (namespace 6), geotagged photos", + "query": "geosearch ns=6 gslimit=500 gsradius=10000 around 25 centres (peak + 3 rings x 8 bearings, radii 2700-9000 m), then EXIF GPSImgDirection of every file in range via prop=imageinfo&iiprop=commonmetadata", + "files_found": 2505, + "in_range": 1788, + "with_exif_heading": 181, + "facing_the_peak": 64, + "pool": "photos whose camera heading is within 30 deg of the bearing to the summit", + "rule": "densest 1 km cell of photos 2000-9000 m from the summit whose EXIF camera heading faces the summit (within 30 deg) with the summit visible on the DEM (straight line, first 250 m ignored, 8 m clutter allowed); viewpoint = median coordinate of the cell", + "median_camera_heading_deg": 91.6, + "photos_in_cell": 9, + "cells_tried": [ + { + "n_facing": 9, + "lat": 37.73853, + "lon": -119.57124, + "peak_visible": false + }, + { + "n_facing": 9, + "lat": 37.74583, + "lon": -119.59261, + "peak_visible": true + } + ], + "distance_to_peak_m": 5138, + "bearing_to_peak_deg": 91.8, + "dem_ground_m": 1209.2, + "eye_height_rule": "DEM ground at the viewpoint + 1.6 m (the source gives no eye height)", + "sample_files": [ + { + "title": "File:Yosemite National Park - 51700634719.jpg", + "lat": 37.746606, + "lon": -119.590317, + "heading": 87.0, + "url": "https://commons.wikimedia.org/wiki/File%3AYosemite_National_Park_-_51700634719.jpg" + }, + { + "title": "File:Half Dome, Yosemite National Park - 53324601178.jpg", + "lat": 37.748264, + "lon": -119.592606, + "heading": 98.8, + "url": "https://commons.wikimedia.org/wiki/File%3AHalf_Dome%2C_Yosemite_National_Park_-_53324601178.jpg" + }, + { + "title": "File:Half Dome, Yosemite National Park - 53324824955.jpg", + "lat": 37.748322, + "lon": -119.592736, + "heading": 90.1, + "url": "https://commons.wikimedia.org/wiki/File%3AHalf_Dome%2C_Yosemite_National_Park_-_53324824955.jpg" + }, + { + "title": "File:2013-09-19 18 35 25 Half Dome and the Merced River in Yosemite National Park.JPG", + "lat": 37.7435, + "lon": -119.58966666667, + "heading": 91.6, + "url": "https://commons.wikimedia.org/wiki/File%3A2013-09-19_18_35_25_Half_Dome_and_the_Merced_River_in_Yosemite_National_Park.JPG" + }, + { + "title": "File:Half Dome from the Yosemite Valley floor in mid-Spring.jpeg", + "lat": 37.745833333333, + "lon": -119.59233333333, + "heading": 92.0, + "url": "https://commons.wikimedia.org/wiki/File%3AHalf_Dome_from_the_Yosemite_Valley_floor_in_mid-Spring.jpeg" + }, + { + "title": "File:Sentinel Bridge & Half Dome.jpg", + "lat": 37.743419, + "lon": -119.590562, + "heading": 86.8, + "url": "https://commons.wikimedia.org/wiki/File%3ASentinel_Bridge_%26_Half_Dome.jpg" + }, + { + "title": "File:Half Dome pre Super moon 2.jpg", + "lat": 37.745769, + "lon": -119.592972, + "heading": 106.5, + "url": "https://commons.wikimedia.org/wiki/File%3AHalf_Dome_pre_Super_moon_2.jpg" + }, + { + "title": "File:Half Dome pre Super moon.jpg", + "lat": 37.745747, + "lon": -119.593033, + "heading": 97.1, + "url": "https://commons.wikimedia.org/wiki/File%3AHalf_Dome_pre_Super_moon.jpg" + }, + { + "title": "File:Yosemite National Park 003.jpg", + "lat": 37.750814, + "lon": -119.598664, + "heading": 80.1, + "url": "https://commons.wikimedia.org/wiki/File%3AYosemite_National_Park_003.jpg" + } + ], + "exif_headings": [ + { + "title": "File:Yosemite National Park - 51700634719.jpg", + "heading": 87.0 + }, + { + "title": "File:Half Dome, Yosemite National Park - 53324601178.jpg", + "heading": 98.8 + }, + { + "title": "File:Half Dome, Yosemite National Park - 53324824955.jpg", + "heading": 90.1 + }, + { + "title": "File:2013-09-19 18 35 25 Half Dome and the Merced River in Yosemite National Park.JPG", + "heading": 91.6 + }, + { + "title": "File:Half Dome from the Yosemite Valley floor in mid-Spring.jpeg", + "heading": 92.0 + }, + { + "title": "File:Sentinel Bridge & Half Dome.jpg", + "heading": 86.8 + }, + { + "title": "File:Half Dome pre Super moon 2.jpg", + "heading": 106.5 + }, + { + "title": "File:Half Dome pre Super moon.jpg", + "heading": 97.1 + }, + { + "title": "File:Yosemite National Park 003.jpg", + "heading": 80.1 + } + ], + "n_with_exif_heading": 9, + "summit_dem_m": 2669.1, + "summit_nominal": [ + 37.74597, + -119.5329 + ] + } + }, + { + "id": "amadablam", + "name": "Ama Dablam and the Everest massif, 4 km WSW of Tengboche near Khumjung (photo cell)", + "kind": "far high range behind a near spire", + "lat": 27.822000000000003, + "lon": 86.722666666667, + "eye_h_m": 1.6, + "look_at": [ + 27.8617, + 86.86079 + ], + "rmax_km": 60, + "floor_agl_m": 829.8232421875, + "s_ref_deg": 30, + "tz_h": 5.75, + "tz_name": "NPT", + "initial_guess_not_used": { + "lat": 27.8369, + "lon": 86.7643 + }, + "viewpoint_source": { + "status": "sourced", + "source": "Wikimedia Commons geosearch (namespace 6), geotagged photos", + "query": "geosearch ns=6 gslimit=500 gsradius=10000 around 25 centres (peak + 3 rings x 8 bearings, radii 4800-16000 m), then EXIF GPSImgDirection of every file in range via prop=imageinfo&iiprop=commonmetadata", + "files_found": 1398, + "in_range": 1143, + "with_exif_heading": 54, + "facing_the_peak": 13, + "pool": "photos whose camera heading is within 30 deg of the bearing to the summit", + "rule": "densest 1 km cell of photos 4000-16000 m from the summit whose EXIF camera heading faces the summit (within 30 deg) with the summit visible on the DEM (straight line, first 250 m ignored, 8 m clutter allowed); viewpoint = median coordinate of the cell", + "median_camera_heading_deg": 79.6, + "photos_in_cell": 2, + "cells_tried": [ + { + "n_facing": 2, + "lat": 27.822, + "lon": 86.72267, + "peak_visible": true + } + ], + "distance_to_peak_m": 14299, + "bearing_to_peak_deg": 72.0, + "dem_ground_m": 3782.0, + "eye_height_rule": "DEM ground at the viewpoint + 1.6 m (the source gives no eye height)", + "sample_files": [ + { + "title": "File:Thamserku (6).JPG", + "lat": 27.822666666667, + "lon": 86.722666666667, + "heading": 73.6, + "url": "https://commons.wikimedia.org/wiki/File%3AThamserku_%286%29.JPG" + }, + { + "title": "File:Thamserku (7).JPG", + "lat": 27.821333333333, + "lon": 86.722666666667, + "heading": 85.7, + "url": "https://commons.wikimedia.org/wiki/File%3AThamserku_%287%29.JPG" + } + ], + "exif_headings": [ + { + "title": "File:Thamserku (6).JPG", + "heading": 73.6 + }, + { + "title": "File:Thamserku (7).JPG", + "heading": 85.7 + } + ], + "n_with_exif_heading": 2, + "summit_dem_m": 6659.6, + "summit_nominal": [ + 27.8617, + 86.8614 + ] + } + }, + { + "id": "trecime", + "name": "Tre Cime di Lavaredo from the Dreizinnenhuette area, 2.4 km N (photo cell)", + "kind": "cirque wall, spires", + "lat": 46.636906, + "lon": 12.310064, + "eye_h_m": 1.6, + "look_at": [ + 46.61806, + 12.29583 + ], + "rmax_km": 40, + "floor_agl_m": 735.6748046875, + "s_ref_deg": 30, + "tz_h": 2, + "tz_name": "CEST", + "initial_guess_not_used": { + "lat": 46.5833, + "lon": 12.2536 + }, + "viewpoint_source": { + "status": "sourced", + "source": "Wikimedia Commons geosearch (namespace 6), geotagged photos", + "query": "geosearch ns=6 gslimit=500 gsradius=10000 around 25 centres (peak + 3 rings x 8 bearings, radii 3000-10000 m), then EXIF GPSImgDirection of every file in range via prop=imageinfo&iiprop=commonmetadata", + "files_found": 2028, + "in_range": 763, + "with_exif_heading": 207, + "facing_the_peak": 33, + "pool": "photos whose camera heading is within 30 deg of the bearing to the summit", + "rule": "densest 1 km cell of photos 1500-10000 m from the summit whose EXIF camera heading faces the summit (within 30 deg) with the summit visible on the DEM (straight line, first 250 m ignored, 8 m clutter allowed); viewpoint = median coordinate of the cell", + "median_camera_heading_deg": 194.6, + "photos_in_cell": 5, + "cells_tried": [ + { + "n_facing": 5, + "lat": 46.63691, + "lon": 12.31006, + "peak_visible": true + } + ], + "distance_to_peak_m": 2363, + "bearing_to_peak_deg": 207.4, + "dem_ground_m": 2403.0, + "eye_height_rule": "DEM ground at the viewpoint + 1.6 m (the source gives no eye height)", + "sample_files": [ + { + "title": "File:Cime e Nuvole.jpg", + "lat": 46.63605, + "lon": 12.310064, + "heading": 200.3, + "url": "https://commons.wikimedia.org/wiki/File%3ACime_e_Nuvole.jpg" + }, + { + "title": "File:DreiZinnenP.jpg", + "lat": 46.636770555556, + "lon": 12.310305555556, + "heading": 180.1, + "url": "https://commons.wikimedia.org/wiki/File%3ADreiZinnenP.jpg" + }, + { + "title": "File:Soffio di sguardo.jpg", + "lat": 46.636906, + "lon": 12.311142, + "heading": 194.6, + "url": "https://commons.wikimedia.org/wiki/File%3ASoffio_di_sguardo.jpg" + }, + { + "title": "File:2405-DreizinnenH.jpg", + "lat": 46.637782777778, + "lon": 12.309966388889, + "heading": 178.4, + "url": "https://commons.wikimedia.org/wiki/File%3A2405-DreizinnenH.jpg" + }, + { + "title": "File:Dolomiten-Fingerkraut in den Sextener Dolomiten - N\u00e4he Drei-Zinnen-H\u00fctte (9801216636).jpg", + "lat": 46.642352, + "lon": 12.30829, + "heading": 200.0, + "url": "https://commons.wikimedia.org/wiki/File%3ADolomiten-Fingerkraut_in_den_Sextener_Dolomiten_-_N%C3%A4he_Drei-Zinnen-H%C3%BCtte_%289801216636%29.jpg" + } + ], + "exif_headings": [ + { + "title": "File:Cime e Nuvole.jpg", + "heading": 200.3 + }, + { + "title": "File:DreiZinnenP.jpg", + "heading": 180.1 + }, + { + "title": "File:Soffio di sguardo.jpg", + "heading": 194.6 + }, + { + "title": "File:2405-DreizinnenH.jpg", + "heading": 178.4 + }, + { + "title": "File:Dolomiten-Fingerkraut in den Sextener Dolomiten - N\u00e4he Drei-Zinnen-H\u00fctte (9801216636).jpg", + "heading": 200.0 + } + ], + "n_with_exif_heading": 5, + "summit_dem_m": 2746.9, + "summit_nominal": [ + 46.6186, + 12.3025 + ] + } + } + ] +} \ No newline at end of file diff --git a/scripts/ridge-bake/ridge-bake.schema.json b/scripts/ridge-bake/ridge-bake.schema.json new file mode 100644 index 00000000..c31e0de6 --- /dev/null +++ b/scripts/ridge-bake/ridge-bake.schema.json @@ -0,0 +1,313 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ridge-bake manifest v1 and index v1", + "$defs": { + "manifest": { + "type": "object", + "required": [ + "schema", + "baker_version", + "bake_id", + "place", + "view", + "frames", + "attribution" + ], + "additionalProperties": false, + "properties": { + "schema": { + "const": 1 + }, + "baker_version": { + "type": "integer" + }, + "bake_id": { + "type": "string" + }, + "place": { + "type": "object", + "required": [ + "id", + "name", + "lat", + "lon", + "altitude_km", + "tz_h", + "tz_name", + "date" + ], + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "lat": { + "type": "number" + }, + "lon": { + "type": "number" + }, + "altitude_km": { + "type": "number" + }, + "tz_h": { + "type": "number" + }, + "tz_name": { + "type": "string" + }, + "date": { + "type": "string" + } + } + }, + "view": { + "type": "object", + "required": [ + "look_az_deg", + "window_deg", + "plane_w", + "plane_h", + "px_per_deg_h", + "px_per_deg_v", + "horizon_row", + "sky_row", + "near_row" + ], + "additionalProperties": false, + "properties": { + "look_az_deg": { + "type": "number" + }, + "window_deg": { + "const": 72 + }, + "plane_w": { + "type": "integer", + "maximum": 4096 + }, + "plane_h": { + "type": "integer" + }, + "px_per_deg_h": { + "type": "number" + }, + "px_per_deg_v": { + "type": "number" + }, + "horizon_row": { + "type": "number" + }, + "sky_row": { + "type": "number" + }, + "near_row": { + "type": "number" + } + } + }, + "frames": { + "type": "array", + "minItems": 6, + "maxItems": 6, + "items": { + "type": "object", + "required": [ + "key", + "sun", + "hour_utc", + "planes", + "bytes", + "luma" + ], + "additionalProperties": false, + "properties": { + "key": { + "enum": [ + "dawn", + "morning", + "noon", + "golden", + "dusk", + "night" + ] + }, + "sun": { + "type": "object", + "required": [ + "az", + "el" + ], + "additionalProperties": false, + "properties": { + "az": { + "type": "number" + }, + "el": { + "type": "number" + } + } + }, + "hour_utc": { + "type": "number" + }, + "planes": { + "type": "object", + "required": [ + "far", + "mid", + "near" + ], + "additionalProperties": false, + "properties": { + "far": { + "type": "object", + "required": [ + "file", + "bytes", + "w", + "h" + ], + "additionalProperties": false, + "properties": { + "file": { + "type": "string" + }, + "bytes": { + "type": "integer" + }, + "w": { + "type": "integer" + }, + "h": { + "type": "integer" + } + } + }, + "mid": { + "type": "object", + "required": [ + "file", + "bytes", + "w", + "h" + ], + "additionalProperties": false, + "properties": { + "file": { + "type": "string" + }, + "bytes": { + "type": "integer" + }, + "w": { + "type": "integer" + }, + "h": { + "type": "integer" + } + } + }, + "near": { + "type": "object", + "required": [ + "file", + "bytes", + "w", + "h" + ], + "additionalProperties": false, + "properties": { + "file": { + "type": "string" + }, + "bytes": { + "type": "integer" + }, + "w": { + "type": "integer" + }, + "h": { + "type": "integer" + } + } + } + } + }, + "bytes": { + "type": "integer" + }, + "luma": { + "type": "object", + "required": [ + "min", + "max" + ], + "additionalProperties": false, + "properties": { + "min": { + "type": "number" + }, + "max": { + "type": "number" + } + }, + "description": "min and max WCAG relative luminance of the three planes composited far, mid, near over a flat mid-grey sky, over pixels whose composite coverage 1 - prod(1 - alpha) is at least 0.5" + } + } + } + }, + "attribution": { + "type": "object", + "required": [ + "credit_line", + "licence", + "dem_source", + "url" + ], + "additionalProperties": false, + "properties": { + "credit_line": { + "type": "string" + }, + "licence": { + "type": "string" + }, + "dem_source": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + } + }, + "index": { + "type": "object", + "required": [ + "schema", + "default", + "places" + ], + "additionalProperties": false, + "properties": { + "schema": { + "const": 1 + }, + "default": { + "type": "string" + }, + "places": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } +} diff --git a/scripts/ridge-bake/ridge.py b/scripts/ridge-bake/ridge.py new file mode 100644 index 00000000..9874f1b2 --- /dev/null +++ b/scripts/ridge-bake/ridge.py @@ -0,0 +1,539 @@ +"""Round-2 baker: A's painter baked from D's sweep, driven by a place preset from places.json (ray sampling, the round-1 recommendation). +Offline baker for the ridge backdrop (scripts/ridge-bake); export.py drives it. + + load_preset(id) -> configure() : observer, tiles, mosaic origin, ring radius, window azimuth, painter constants from places.json + stage0(detail) : ray march of all 6400 azimuth columns (curvature+refraction), optional authored sub-DEM foreground detail, cached + sweep() : D's per-column scan -> spans (with own height/run = per-peak slope) -> wrapped chains -> 7-knot layer cap + set_view(slots) : authored Y mapping: angle -> row, ground plane at the bottom (see set_view) + bake(slots) : sun-independent per-layer arrays + relight(layers, az, el) : shading + atmosphere + floor + sky +Vertical exaggeration is AUTHORED and derived per view by set_view (printed on the page).""" +import sys, time, math, json +import os, hashlib +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import numpy as np, tifffile + +def _env_dir(name, what): + v = os.environ.get(name) + if not v: raise RuntimeError(f"{name} is not set: it must name {what} (no default location is assumed)") + return Path(v) +B = _env_dir('RIDGE_WORK', 'the work directory (the mosaic / ray caches)') +COP = _env_dir('RIDGE_TILES', 'the directory of Copernicus GLO-30 tiles (Copernicus_DSM_COG_10_*_DEM.tif)') +W = 6400 # ring columns: 360 deg at 17.78 px/deg +WIN = 1280 # window = 72 deg of the ring +HPX_DEG = W / 360.0 +H = 600 # frame rows +COLW = math.radians(360.0 / W) +R_EARTH, KREF = 6371000.0, 0.13 +PROM_M, NEAR_CAP, MINW, LINK_D, LINK_A, LOOK = 25.0, 4000.0, 50, 0.45, 0.25, 4 +FOREGROUND_M = 5000.0 # a chain nearer than this that is narrower than MINW is kept only where no kept foreground chain covers its columns (the nearest layer must cover every column; a lone stub beside a long near ridge is an arch) +TAPER = 8 # minimum columns over which a chain end dies into its valley (D's 8; round 1 used a fixed 20 AND borrowed the far end's value: the spike) +TAPER_K, TAPER_MAX = 30.0, 72 # a taller end falls over more columns: ceil(30 columns per degree of drop), 8..72: at the authored 1.5-4x exaggeration an end leaves the ridge at about 45 deg or less, not a wall +def taper_len(drop_deg): return np.clip(np.ceil(np.asarray(drop_deg) * TAPER_K), TAPER, TAPER_MAX) +KNOTS = np.array([80, 48, 28, 16, 9, 5, 2.5]) * 1000.0 +_r5 = ('#a9b9d3', '#8e9fc2', '#6f86a6', '#556f7d', '#3f5546') +def hx(h): return np.array([int(h[i:i+2], 16) for i in (1, 3, 5)]) / 255.0 +def mix(a, b, t): return a + (b - a) * np.asarray(t)[..., None] +RAMP = [mix(hx(_r5[min(int(t), 3)]), hx(_r5[min(int(t), 3) + 1]), t - min(int(t), 3)) for t in np.linspace(0, 4, len(KNOTS))] +GROUND = hx('#4a5f45'); CONTOUR_NICE = (30.0, 50.0, 100.0, 150.0, 200.0, 300.0, 500.0, 1000.0); CONTOUR_MIN_PX = 9.0 # iso-height interval is the smallest nice value that keeps lines >= 9 px apart (p10 of the layer) +ROT = 0 # test hook: frame rotated by ROT columns; noise/azimuth stay tied to the absolute column + +P = {} # configured preset +rowang = np.zeros(H); PXDEG_V = 100.0; TOP_DEG = 2.6; BOTTOM_DEG = -3.4; Hc = H + +def load_preset(pid, path=Path(__file__).resolve().parent / 'places.json'): + d = json.load(open(path)); p = next(x for x in d['presets'] if x['id'] == pid); p = dict(p); p['date'] = d['date']; return p + +# ====================================================================== configuration, DEM +def tiles_for(p): + lat, lon, r = p['lat'], p['lon'], p['rmax_km']; dl = r / 111.32; dn = r / (111.32 * math.cos(math.radians(lat))); out = [] + for la in range(math.floor(lat - dl), math.floor(lat + dl) + 1): + for lo in range(math.floor(lon - dn), math.floor(lon + dn) + 1): + cy = min(max(lat, la), la + 1); cx = min(max(lon, lo), lo + 1) + if math.hypot((cy - lat) * 111.32, (cx - lon) * 111.32 * math.cos(math.radians(lat))) <= r: out.append((la, lo)) + return out +def tile_path(la, lo): return COP / f"Copernicus_DSM_COG_10_{'N' if la >= 0 else 'S'}{abs(la):02d}_00_{'E' if lo >= 0 else 'W'}{abs(lo):03d}_00_DEM.tif" + +def cache_key(*parts): + """Short digest of everything a cached array was computed from. A cache file is read only under the key of its own inputs, so a changed preset field, tile list or baker constant never meets a stale file.""" + h = hashlib.sha256() + for q in parts: h.update(q.tobytes() if isinstance(q, np.ndarray) else repr(q).encode()); h.update(b'|') + return h.hexdigest()[:12] +def mosaic_key(p): return cache_key('mosaic.v1', sorted(tiles_for(p)), 3600) + +_mos = {} +def mosaic(p): + """Tile grid covering the circle (bounding rows/cols), cached as .npy per preset. Missing tiles (open sea has no GLO-30 tile) are zero.""" + key = (p['id'], mosaic_key(p)) + if key in _mos: return _mos[key] + ts = tiles_for(p); las = [t[0] for t in ts]; los = [t[1] for t in ts]; lat_top = max(las) + 1; lon_left = min(los) + c = B / f"mosaic-{p['id']}-{key[1]}.npy" + if c.exists(): m = np.load(c, mmap_mode='r') + else: + rows = [] + for la in range(max(las), min(las) - 1, -1): + rows.append(np.concatenate([tifffile.imread(tile_path(la, lo)) if tile_path(la, lo).exists() else np.zeros((3600, 3600), np.float32) for lo in range(min(los), max(los) + 1)], axis=1)) + m = np.concatenate(rows, axis=0).astype(np.float32); np.save(c, m) + _mos[key] = (m, lat_top, lon_left); return _mos[key] + +def bil(a, lat_top, lon_left, lat, lon): + y = (lat_top - lat) * 3600 - 0.5; x = (lon - lon_left) * 3600 - 0.5 + y0 = np.clip(np.floor(y).astype(int), 0, a.shape[0] - 2); x0 = np.clip(np.floor(x).astype(int), 0, a.shape[1] - 2) + fy = np.clip(y - y0, 0, 1); fx = np.clip(x - x0, 0, 1) + return (a[y0, x0] * (1 - fx) * (1 - fy) + a[y0, x0 + 1] * fx * (1 - fy) + a[y0 + 1, x0] * (1 - fx) * fy + a[y0 + 1, x0 + 1] * fx * fy) + +def configure(p): + """Set the module state for a preset: observer, eye elevation (DEM ground + eye height, or ground_override), window azimuth.""" + global P + P = p; m, lt, ll = mosaic(p) + ground = p['ground_override_m'] if 'ground_override_m' in p else float(bil(m, lt, ll, np.array(p['lat']), np.array(p['lon']))) + P['ground_m'] = ground; P['eye_m'] = ground + p['eye_h_m'] + if 'look_at' in p: + la, lo = p['look_at']; P['az_center'] = (math.degrees(math.atan2((lo - p['lon']) * math.cos(math.radians(p['lat'])), la - p['lat'])) + 360) % 360 + else: P['az_center'] = p['az_deg'] + P['win0'] = int(round(P['az_center'] / 360 * W - WIN / 2)) % W + return P + +def win(img): return np.take(img, (P['win0'] + np.arange(WIN)) % W, axis=1) + +# ====================================================================== authored sub-DEM foreground detail (Aetheria / CultMath ridged multifractal) +def _frac(v): return v - np.floor(v) +def _hash2(x, y): return _frac(np.sin(x * 127.1 + y * 311.7) * 43758.5453) # cultmath_hash(vec2), as Ratatoskr noise.ts +def _vnoise2(x, y): # cultmath_value_noise: 4 hashed corners, smoothstep blend + cx, cy = np.floor(x), np.floor(y); u = x - cx; v = y - cy; u = u * u * (3 - 2 * u); v = v * v * (3 - 2 * v) + a, b, c, d = _hash2(cx, cy), _hash2(cx + 1, cy), _hash2(cx, cy + 1), _hash2(cx + 1, cy + 1) + return (a + (b - a) * u) * (1 - v) + (c + (d - c) * u) * v +LACUN, WEIGHT_GAIN, AMP_GAIN, CRAG = 2.07, 2.0, 0.5, 0.5 # ridgeWorld.ts constants +DETAIL = dict(cell_m=60.0, octaves=4, amp_m=24.0, fade_from_m=500.0, fade_to_m=4000.0, seed=17) +def detail_height(E, N, dist): + """Ridged multifractal (ridgeWorld.ts `profile`, folded value noise weighted by the previous octave) in WORLD metres (east, north of the observer), + so it is automatically periodic around the ring. First octave wavelength = 60 m = two GLO-30 cells (nothing coarser than the DEM can resolve is + touched), then x2.07. Amplitude fades to zero between fade_from and fade_to metres of distance. Seeded, deterministic, authored.""" + cfg = DETAIL; e = 0.03 + (1 - CRAG) * 0.4; top = math.sqrt(1 + e * e); s = 0.0; nrm = 0.0; amp = 1.0; f = 1.0 / cfg['cell_m']; w = 1.0 + for k in range(cfg['octaves']): + v = 2 * _vnoise2(E * f + cfg['seed'] * 7.31, N * f + cfg['seed'] * 3.17 + k * 13) - 1 + sig = (1 - np.sqrt(v * v + e * e) / top) ** 2 * w; w = np.minimum(1.0, sig * WEIGHT_GAIN); s = s + sig * amp; nrm += amp; amp *= AMP_GAIN; f *= LACUN + t = np.clip((dist - cfg['fade_from_m']) / (cfg['fade_to_m'] - cfg['fade_from_m']), 0, 1); fade = 1 - t * t * (3 - 2 * t) + return cfg['amp_m'] * fade * (s / nrm - 0.3) + +# ====================================================================== stage 0: march +def schedule(detail): + d = [500.0] + while d[-1] < P['rmax_km'] * 1000: + d.append(d[-1] + min(250.0, max(10.0 if detail else 40.0, 0.004 * d[-1]))) + return np.array(d) + +def march(detail=False, curvature=True): + m, lt, ll = mosaic(P); az = np.radians((np.arange(W) + 0.5) / W * 360.0); d = schedule(detail); cosl = math.cos(math.radians(P['lat'])) + A = np.zeros((len(d), W), np.float32); Hh = np.zeros_like(A); sa, ca = np.sin(az), np.cos(az) + for k, dk in enumerate(d): + lat = P['lat'] + dk * ca / 111320.0; lon = P['lon'] + dk * sa / (111320.0 * cosl) + h = bil(m, lt, ll, lat, lon) + if detail and dk < DETAIL['fade_to_m']: h = h + detail_height(dk * sa, dk * ca, dk) + drop = dk * dk / (2 * R_EARTH) * (1 - KREF) if curvature else 0.0 + A[k] = np.degrees(np.arctan2(h - P['eye_m'] - drop, dk)); Hh[k] = h + return d, A, Hh + +def rays_key(detail): + """Inputs of the ray march: observer, eye elevation, range, the DEM mosaic, the sample schedule (hashed as the array it produces), the Earth / refraction constants, the ring width, and (detail) the foreground detail noise.""" + return cache_key('rays.v1', P['lat'], P['lon'], P['rmax_km'], round(float(P['eye_m']), 3), mosaic_key(P), schedule(detail), R_EARTH, KREF, W, bool(detail), + (sorted(DETAIL.items()), LACUN, WEIGHT_GAIN, AMP_GAIN, CRAG) if detail else None) +def stage0(detail=False, force=False): + c = B / f"rays-{P['id']}{'-detail' if detail else ''}-{rays_key(detail)}.npz" + if c.exists() and not force: + z = np.load(c); return z['d'], z['ang'], z['h'], None + t0 = time.time(); mosaic(P); t1 = time.time(); d, A, Hh = march(detail); t2 = time.time(); np.savez(c, d=d, ang=A, h=Hh) + return d, A, Hh, dict(mosaic=t1 - t0, march=t2 - t1, samples=len(d)) + +# ====================================================================== periodic helpers +def blurw(a, s): + r = int(3 * s) + 1; k = np.exp(-0.5 * (np.arange(-r, r + 1) / s) ** 2); k /= k.sum() + a = np.asarray(a, np.float64); xp = np.concatenate([a[..., -r:], a, a[..., :r]], axis=-1); o = np.zeros_like(a) + for i, kv in enumerate(k): o += kv * xp[..., i:i + a.shape[-1]] + return o +def gradw(a): return (np.roll(a, -1) - np.roll(a, 1)) / 2.0 +def _smooth(f): return f * f * (3 - 2 * f) +def pn2(cell, seed): + rng = np.random.default_rng(seed); n = max(int(round(W / cell)), 2); gh = int(H / cell) + 3 + g = rng.random((gh, n)).astype(np.float32) + xs = ((np.arange(W) + ROT) % W) * (n / W); x0 = xs.astype(int); fx = _smooth(xs - x0).astype(np.float32); x1 = (x0 + 1) % n + ys = np.arange(H) / cell; y0 = ys.astype(int); fy = _smooth(ys - y0).astype(np.float32) + tp = g[y0][:, x0] * (1 - fx) + g[y0][:, x1] * fx; bt = g[y0 + 1][:, x0] * (1 - fx) + g[y0 + 1][:, x1] * fx + return tp * (1 - fy)[:, None] + bt * fy[:, None] +def pn1(cell, seed): return pn2(cell, seed)[0].astype(np.float64) +def abscol(): return (np.arange(W) + ROT) % W + +# ====================================================================== sweep (D), wrapped +NH = 24 # samples of the face history kept per peak (valley -> crest, uniform in elevation angle) +def strip_history(a, dl, hh, k0, k1): + """The marcher's record of one peak strip: the ray samples from the last local minimum (k0) to the peak (k1), reduced to what the eye sees (a sample hides + behind any earlier, higher one: running maximum of the angle) and resampled at NH uniform steps of elevation angle. Returns (distance[NH], height[NH]), index 0 = valley, NH-1 = crest.""" + seg = np.asarray(a[k0:k1 + 1]); runmax = np.maximum.accumulate(seg); vis = np.concatenate([[True], runmax[1:] > runmax[:-1]]) + va = runmax[vis]; vd = np.asarray(dl[k0:k1 + 1])[vis]; vh = np.asarray(hh[k0:k1 + 1])[vis] + if len(va) < 2 or va[-1] <= va[0]: return np.full(NH, vd[-1]), np.full(NH, vh[-1]) + t = np.linspace(va[0], va[-1], NH); return np.interp(t, va, vd), np.interp(t, va, vh) + +def extract(d, ang, hgt, prom=PROM_M): + """Per column: (peak_ang, valley_ang, peak_d, peak_h, valley_h, valley_d) followed by the face history (NH distances, NH heights) of the strip valley -> peak. + A peak commits when the ray has fallen hy[k] below it and it stands `prom` METRES above the lowest ground the strip has seen (the lowest height, not the height of the lowest-ANGLE sample: that one is often near and high).""" + K, Wc = ang.shape; hy = np.degrees(prom / d).tolist(); dl = d.tolist(); cols = [] + for x in range(Wc): + a = ang[:, x].tolist(); hh = hgt[:, x].tolist(); out = [] + def span(pk, lo, pd, ph, vh, vd, k0, k1): out.append((pk, lo, pd, ph, vh, vd) + tuple(np.concatenate(strip_history(a, dl, hh, k0, k1)))) + runmax = -90.0; mn = a[0]; mnh = hh[0]; mnd = dl[0]; mnk = 0; cand = a[0]; ch = hh[0]; cd = dl[0]; ck = 0; lowh = hh[0]; capped = False # NEAR_CAP is tried once, at the first sample past 4 km + for k in range(1, K): + v = a[k]; dk = dl[k]; hk = hh[k]; lowh = min(lowh, hk) + if dk >= NEAR_CAP and not capped and not out and runmax < -80: + capped = True; j = max(range(k), key=a.__getitem__) + if hh[j] - lowh >= prom: span(a[j], mn, dl[j], hh[j], mnh, mnd, min(mnk, j), j); runmax = a[j]; mn = cand = v; mnh = ch = hk; mnd = cd = dk; mnk = ck = k; lowh = hk + if v < mn: mn = cand = v; mnh = ch = hk; mnd = cd = dk; mnk = ck = k + elif v > cand: cand = v; ch = hk; cd = dk; ck = k + if cand - v >= hy[k] and ch - lowh >= prom: + if cand > runmax: span(cand, mn, cd, ch, mnh, mnd, mnk, ck); runmax = cand + mn = cand = v; mnh = ch = hk; mnd = cd = dk; mnk = ck = k; lowh = hk + if ch - lowh >= prom and cand > runmax: span(cand, mn, cd, ch, mnh, mnd, mnk, ck) + cols.append(out) + return cols + +def chains(cols): + Wc = len(cols); parent = []; ids = [] + for sp in cols: ids.append(list(range(len(parent), len(parent) + len(sp)))); parent.extend(range(len(parent), len(parent) + len(sp))) + def find(i): + while parent[i] != i: parent[i] = parent[parent[i]]; i = parent[i] + return i + for x, sp in enumerate(cols): + for i, s in zip(ids[x], sp): + p, dd = s[0], s[2]; best = None + for back in range(1, LOOK + 1): + xb = (x - back) % Wc + for j, s2 in zip(ids[xb], cols[xb]): + ld = abs(math.log(dd / s2[2])) + if ld < LINK_D and abs(p - s2[0]) < LINK_A * (1 + 0.5 * (back - 1)): + sc = ld / LINK_D + abs(p - s2[0]) / LINK_A + 0.3 * back + if best is None or sc < best[0]: best = (sc, j) + if best: parent[find(i)] = find(best[1]) + out = {} + for x, sp in enumerate(cols): + for i, s in zip(ids[x], sp): out.setdefault(find(i), []).append((x,) + tuple(s)) + return list(out.values()) + +def chain_layer(c): + """Chain -> dense per-column arrays (deg / m). The chain is unrolled at its largest circular gap into an arc [0, x1] of local columns; every + column outside the arc takes the value of the NEAREST arc end (start end or finish end) and then dies toward that end's valley over TAPER columns.""" + a = np.array(c); xs = a[:, 0].astype(int); u = np.unique(xs) + gaps = np.diff(np.concatenate([u, [u[0] + W]])); start = int(u[(gaps.argmax() + 1) % len(u)]); xl = (xs - start) % W + Pk, L, D, PH, VH, VD = (a[:, i] for i in range(1, 7)); HD = a[:, 7:7 + NH]; HH = a[:, 7 + NH:7 + 2 * NH] + run = np.maximum(np.abs(D - VD), 300.0); slope = np.degrees(np.arctan2(np.maximum(PH - VH, 0), run)) + x1 = int(xl.max()); ii = np.arange(0, x1 + 1); res = {}; x = np.arange(W) + near_end = np.where(x - x1 <= W - x, x1, 0) # outside the arc: which end is nearer going around the ring + dist = np.where(x <= x1, 0, np.minimum(x - x1, W - x)).astype(float) + def dense(v): + full = np.full(W, np.nan); full[xl] = v; ok = ~np.isnan(full[ii]); full[ii] = np.interp(ii, ii[ok], full[ii][ok]); return np.where(x <= x1, full, full[near_end]) + for k, v in dict(top=Pk, lo=L, ph=PH, vh=VH, slope=slope, pd=D, vd=VD).items(): res[k] = dense(v) + res['hd'] = np.stack([dense(HD[:, j]) for j in range(NH)]); res['hh'] = np.stack([dense(HH[:, j]) for j in range(NH)]) # the face history, one (NH, W) array each: column x carries the history of the peak that owns it + drop = res['top'] - np.minimum(res['lo'], res['top'] - 0.4); Tn = taper_len(drop) # end drop in degrees -> taper length at this column + t = np.clip(dist / Tn, 0, 1); t = t * t * (3 - 2 * t) + res['top'] = res['top'] - drop * t + res['wt'] = 1 - np.clip(dist / Tn, 0, 1) + for k in ('top', 'lo', 'ph', 'vh', 'slope', 'wt', 'pd', 'vd', 'hd', 'hh'): res[k] = np.roll(res[k], start, axis=-1) + res['dist'] = float(np.median(D)); res['n'] = len(c); res['x0'] = start; res['x1'] = (start + x1) % W; res['span'] = x1 + 1 + res['rise_ang'] = float(np.median(Pk - L)); res['rise_h'] = float(np.median(PH - VH)); res['slope_med'] = float(np.median(slope)) + return res + +def col_gap(present): + """Circular distance in columns from each column to the nearest present column (0 where present).""" + x = np.arange(3 * W); p = np.tile(present, 3); last = np.maximum.accumulate(np.where(p, x, -10 * W)); nxt = np.minimum.accumulate(np.where(p, x, 10 * W)[::-1])[::-1] + return np.minimum(x - last, nxt - x)[W:2 * W].astype(float) + +def to_slots(layers): + slots = {} + for L in layers: slots.setdefault(int(np.argmin(np.abs(np.log(KNOTS) - math.log(L['dist'])))), []).append(L) + out = [] + for s in sorted(slots): + g = slots[s]; top = np.stack([np.where(l['wt'] > 0, l['top'], -1e3 - col_gap(l['wt'] > 0)) for l in g]); j = top.argmax(0) # only chains that are present in a column compete; where none is, the chain whose extent is NEAREST stands (a geometric rule: the list order of chains depends on where column 0 is, and absent-column values feed the blurs at every chain end) + S = dict(slot=s, dist=float(KNOTS[s]), chains=len(g), dists=[l['dist'] for l in g]) + for k in ('top', 'lo', 'ph', 'vh', 'slope', 'wt', 'pd', 'vd'): S[k] = np.take_along_axis(np.stack([l[k] for l in g]), j[None], 0)[0] + for k in ('hd', 'hh'): S[k] = np.take_along_axis(np.stack([l[k] for l in g]), j[None, None], 0)[0] + out.append(S) + return out + +def sweep(d, ang, hgt, prom=PROM_M): + t0 = time.time(); cols = extract(d, ang, hgt, prom); t1 = time.time() + ch = chains(cols); near = lambda c: np.median([t[3] for t in c]) < FOREGROUND_M; keep = [c for c in ch if len(c) >= MINW] + def arc(c): + u = np.unique([t[0] for t in c]); g = np.diff(np.concatenate([u, [u[0] + W]])); i = g.argmax(); st = u[(i + 1) % len(u)]; return (st + np.arange((u[i] - st) % W + 1)) % W # the columns a chain spans, unrolled at its largest gap + cov = np.zeros(W, bool) + for c in keep: + if near(c): cov[(arc(c)[:, None] + np.arange(-MINW // 4, MINW // 4 + 1)[None, :]).ravel() % W] = True # dilated by MINW/4 columns: a stub that occludes a near ridge for a few columns sits inside it + for c in sorted((c for c in ch if len(c) < MINW and near(c)), key=lambda c: -len(c)): # widest first: a stub is judged against the stubs already kept + xs = arc(c) + if not cov[xs].any(): keep.append(c); cov[xs] = True + lay = [chain_layer(c) for c in keep]; slots = to_slots(lay); t2 = time.time() + return dict(cols=cols, nchains=len(ch), keep=lay, slots=slots, raw=sum(len(c) for c in cols), t_extract=t1 - t0, t_chain=t2 - t1) + +# ====================================================================== the authored Y mapping +def set_view(slots, sky_row=0.04, near_row=0.66): + """AUTHORED vertical mapping, linear in elevation angle: row = (TOP_DEG - angle) * PXDEG_V over the whole 600-row frame (cylindrical, horizontal 17.78 px/deg). + Two anchors: the highest ridge top in the window sits at `sky_row` (4%) of the frame height, the LOWEST crest of the nearest layer in the window sits at `near_row` (66%); + everything below is that layer's body, its foot, and the ground-plane band. PXDEG_V = (near_row - sky_row) * 600 / (highest top - lowest near crest), clamped to + [17.78, 178] px/deg = vertical exaggeration 1x..10x. TOP_DEG = highest top + sky_row*600/PXDEG_V; BOTTOM_DEG = TOP_DEG - 600/PXDEG_V; horizon (angle 0) at row TOP_DEG*PXDEG_V.""" + global rowang, PXDEG_V, TOP_DEG, BOTTOM_DEG + cols = (P['win0'] + np.arange(WIN)) % W; sky = max(float(S['top'][cols][S['wt'][cols] > 0].max()) for S in slots if (S['wt'][cols] > 0).any()) + near = slots[-1]; act = near['wt'][cols] > 0; c_low = float(blurw(near['top'], 3.0)[cols][act].min()) if act.any() else sky - 2.0 + ppd = float(np.clip((near_row - sky_row) * H / max(sky - c_low, 0.05), HPX_DEG, 10 * HPX_DEG)) + PXDEG_V = ppd; TOP_DEG = sky + sky_row * H / ppd; BOTTOM_DEG = TOP_DEG - H / ppd; rowang = TOP_DEG - (np.arange(H) + 0.5) / PXDEG_V + return dict(top_deg=TOP_DEG, bottom_deg=BOTTOM_DEG, px_per_deg=PXDEG_V, exaggeration=PXDEG_V / HPX_DEG, horizon_row=TOP_DEG * PXDEG_V, sky_deg=sky, near_crest_low_deg=c_low, + sky_row=sky_row, near_row=near_row) + +# ====================================================================== bake (sun-independent), per layer +def azrad(): return (abscol() + 0.5) / W * 2 * math.pi + +def face_field(hd, hh, ang, lo, pd, ph, vd, vh): + """Per-pixel face from the marcher's history (hd, hh: NH distances / heights per column, valley -> crest). A pixel at elevation `rowang` of column x sits at fraction + f = (rowang - lo) / (ang - lo) of the strip; its distance and height are the history interpolated at f. Front slope s = dh/dd along the ray comes from the history over +-2 nodes + (the strip's mean slope where the window has no run); the lateral tilt is the height change between the neighbouring columns at the SAME pixel row, corrected for the radial + step (c - a*s) / (tangential length). n ~ (-s r - la t, 1). Returns Z, D, s, la, f as (H, W) arrays.""" + f = np.clip((rowang[:, None] - lo[None, :]) / np.maximum(ang - lo, 1e-3)[None, :], 0, 1); pos = f * (NH - 1); i0 = np.minimum(pos.astype(int), NH - 2); t = pos - i0; xs = np.arange(W)[None, :] + lerp = lambda A: A[i0, xs] * (1 - t) + A[i0 + 1, xs] * t + lo_i, hi_i = np.clip(np.arange(NH) - 2, 0, NH - 1), np.clip(np.arange(NH) + 2, 0, NH - 1) + dd = hd[hi_i] - hd[lo_i]; mean_s = ((ph - vh) / np.maximum(np.abs(pd - vd), 300.0))[None, :] + sn = np.where(dd >= 20.0, (hh[hi_i] - hh[lo_i]) / np.maximum(dd, 20.0), mean_s) + Z, Dp, sl = lerp(hh), lerp(hd), lerp(sn) + a_ = np.roll(Dp, -1, axis=1) - np.roll(Dp, 1, axis=1); c_ = np.roll(Z, -1, axis=1) - np.roll(Z, 1, axis=1) + b_ = np.maximum(2 * COLW * Dp, 1.0); la = np.where(np.abs(a_) > 3 * b_, 0.0, np.clip((c_ - a_ * sl) / b_, -1.5, 1.5)) # neighbours at very different distances are an occlusion edge, not a surface: no tilt + return Z.astype(np.float32), Dp, blurw(sl, 2.0).astype(np.float32), blurw(la, 2.0).astype(np.float32), f + +def bake_layer(S, rank, far): + b = S['slot']; base = RAMP[b]; reg = int(round((rank - 2) * 1.5)); R_ = lambda v: np.roll(v, reg, axis=-1); px = 1.0 / PXDEG_V + s_ref = P.get('s_ref_deg', 8.0) + ang = blurw(S['top'], 2.5) + (pn1(38, 100 + b) - 0.5) * 6 * px + (pn1(7, 200 + b) - 0.5) * 2 * px; ang = R_(ang) # edge wobble authored in pixels + lo = R_(blurw(S['lo'], 2.5)); ph = R_(blurw(S['ph'], 2.0)); vh = R_(blurw(S['vh'], 2.0)) + sn = np.clip(R_(blurw(S['slope'], 3.0)) / s_ref, 0, 1); wt = R_(S['wt']) + hd = R_(blurw(S['hd'], 2.0)); hhist = R_(blurw(S['hh'], 2.0)); pd_ = R_(blurw(S['pd'], 2.0)); vd_ = R_(blurw(S['vd'], 2.0)) + top = ang[None, :] - rowang[:, None]; toppx = (top * PXDEG_V).astype(np.float32) + m = np.clip(toppx / 1.6 + 0.5, 0, 1) * np.clip(blurw((wt > 0).astype(float), 1.0) * 1.5, 0, 1)[None, :] # a layer is drawn only where a chain exists (or tapers) + rise_px = np.clip((ang - blurw(lo, 12.0)) * PXDEG_V, 1, None) # foot length from a smoothed valley: no per-column curtains + foot = np.clip(0.85 * rise_px, 28 * np.clip(wt, 0, 1), 210).clip(1) # a tapering end carries no 28 px curtain: the body shrinks with the chain's weight, so a chain end leaves no stub + depthpx = np.clip(toppx / foot[None], 0, 1) + fade = np.clip((depthpx - 0.6) / 0.4, 0, 1); fade = fade * fade * (3 - 2 * fade); alpha = (m * (1 - fade)).astype(np.float32) # the body dissolves at its foot: what is behind (other layers, floor, sky) shows, so a column boundary leaves no wall down the frame + w = (depthpx ** 0.8 * 0.92).astype(np.float32) # weight of the foot colour (floor/haze mix, decided at relight) + face = np.broadcast_to((base * 1.12).astype(np.float32), (H, W, 3)).copy() + Z, Dp, sl, la, f = face_field(hd, hhist, ang, lo, pd_, ph, vd_, vh) + snp = np.clip(np.degrees(np.arctan(sl)) / s_ref, 0, 1) # per-pixel face steepness from the history (the column scalar `sn` stays for stroke weights only) + face *= (1.07 - 0.22 * snp)[..., None] + mot = 0.55 * pn2(22, 300 + b) + 0.45 * pn2(5, 400 + b) + face *= (0.90 + 0.18 * mot[..., None]) * (0.96 + 0.08 * pn2(1, 500 + b)[..., None]) + echo = np.clip(((ang - 24 * px * (1 + rank * .3))[None, :] - rowang[:, None]) * PXDEG_V / 1.6 + .5, 0, 1) + face *= (1 - 0.13 * echo[..., None] * (1 - depthpx[..., None] * .5)) + ink = base * 0.42 + np.array([0.02, 0.03, 0.08]) + ew = (0.7 + 1.8 * snp) * (1 - 0.35 * far) + edge = np.clip(1 - np.abs(toppx - 0.6 - ew * 0.5) / ew, 0, 1) * (toppx > -0.5) + ea = 0.55 * (1 - 0.45 * far) * edge * (0.4 + 0.6 * snp) + dzdpx = np.maximum(np.abs(np.roll(Z, -1, axis=0) - np.roll(Z, 1, axis=0)) / 2.0, 1e-3); dzdpx[0] = dzdpx[1]; dzdpx[-1] = dzdpx[-2] # metres of true height per pixel row, per pixel + faceok = (f > 0.02) & (f < 0.98) & (wt[None, :] > 0.5) + cm = next((c for c in CONTOUR_NICE if c >= CONTOUR_MIN_PX * float(np.percentile(dzdpx[faceok], 75) if faceok.any() else 3.0)), CONTOUR_NICE[-1]) # metres per contour line: lines >= 9 px apart over three quarters of this layer's face + p_ = (Z / cm) % 1.0; dpx = (np.minimum(p_, 1 - p_) * cm / dzdpx).astype(np.float32) + face_mask = ((top > 0.003) & (rowang[:, None] > lo[None, :])).astype(np.float32) + ca = (0.95 * (1 - 0.45 * far) * (1 - depthpx) ** 2.0 * wt[None, :] * (0.6 + 0.4 * snp) * face_mask).astype(np.float32) + hatch = np.zeros((H, W), np.float32) + if far < 0.8: + rng = np.random.default_rng(700 + b); xs = np.cumsum(rng.integers(2, 7, W // 2)); xs = xs[xs < W] + up = gradw(ang) * PXDEG_V + for i, xa in enumerate(xs): + x = (xa - ROT) % W; u1, u2 = rng.random(2) + if u1 > 0.30 + 0.70 * sn[x] or wt[x] < 0.5: continue + Lpx = (8 + 50 * sn[x] ** 0.7) * (0.55 + 0.7 * u2) * (1 - 0.5 * far) + y0 = (rowang[0] - ang[x]) * PXDEG_V; yy = np.arange(H); t = (yy - y0 - 2) / max(Lpx, 1) + ok = (t >= 0) & (t < 1); xx = (x + np.round(-np.clip(up[x] * 0.25, -0.6, 0.6) * (yy - y0)).astype(int)) % W + hatch[yy[ok], xx[ok]] = np.maximum(hatch[yy[ok], xx[ok]], (1 - t[ok]) ** 1.5) + ha = np.clip(ea + hatch * 0.50 * (1 - 0.4 * far), 0, 1).astype(np.float32) + rb = (np.clip(1 - toppx / 7.0, 0, 1) * (toppx > -0.5)).astype(np.float32) + az = azrad(); dd = np.stack([S['vd'], 0.5 * (S['vd'] + S['pd']), S['pd']]); hh = np.stack([S['vh'], 0.5 * (S['vh'] + S['ph']), S['ph']]) + 3.0 # face samples: valley, middle, crest + spts = dict(lat=np.roll(P['lat'] + dd * np.cos(az) / 111320.0, reg, axis=1), lon=np.roll(P['lon'] + dd * np.sin(az) / (111320.0 * math.cos(math.radians(P['lat']))), reg, axis=1), h=np.roll(hh, reg, axis=1)) + return dict(m=m.astype(np.float32), a=alpha, face=face, w=w, dpx=dpx, ca=ca, ha=ha, rb=rb, mot=mot.astype(np.float32), sl=sl, la=la, ink=ink, far=far, dist=S['dist'], rank=rank, ang=ang, lo=lo, spts=spts) + +def bake(slots): + return [bake_layer(S, rank, float(np.clip((math.log(S['dist']) - math.log(2000)) / (math.log(70000) - math.log(2000)), 0, 1))) for rank, S in enumerate(slots)] + +# ====================================================================== cast shadows (sun-dependent): DEM march toward the sun from each layer's face samples +SH_STEPS = 40.0 * 1.1 ** np.arange(0, 66) # 40 m .. 20 km, geometric +def cast_shadows(layers, az_s, el_s): + """Per layer a (3, W) array in [0,1]: how much of the sun is blocked by the real DEM at that layer's valley / middle / crest sample. One vectorised march for all + layers. Soft: the blocked fraction is the terrain excess over the sun ray, over a penumbra of 6 m + 3% of the distance travelled. Sun at or below 0.3 deg: no direct light, no shadow.""" + if el_s <= 0.3: return [np.zeros((3, W)) for _ in layers] + m, lt, ll = mosaic(P); lat = np.concatenate([Ly['spts']['lat'].ravel() for Ly in layers]); lon = np.concatenate([Ly['spts']['lon'].ravel() for Ly in layers]); h = np.concatenate([Ly['spts']['h'].ravel() for Ly in layers]) + t = math.tan(math.radians(el_s)); cosl = math.cos(math.radians(P['lat'])); ca, sa = math.cos(math.radians(az_s)), math.sin(math.radians(az_s)); sh = np.zeros_like(h) + for s in SH_STEPS: + terr = bil(m, lt, ll, lat + s * ca / 111320.0, lon + s * sa / (111320.0 * cosl)) - s * s / (2 * R_EARTH) + sh = np.maximum(sh, np.clip((terr - (h + s * t)) / (6.0 + 0.03 * s), 0, 1)) + return [a.reshape(3, W) for a in np.split(sh, len(layers))] + +# ====================================================================== relight (sun-dependent) +TAU_Z = np.array([0.09, 0.14, 0.30]); BETA_R = np.array([0.0058, 0.0135, 0.0331]); BETA_M = 0.023; ATM = 0.15 +ATM_FLOOR = 1.2 # authored: valley haze over the ground plane is heavier than the layer extinction ATM, so the floor thins into haze gradually +G_MIE, W_MIE = 0.7, 0.10; REF = dict(az=180.0, el=62.0); REF_AMB = np.array([0.62, 0.74, 1.0]) +def airmass(el): e = max(el, 0.3); return 1.0 / (math.sin(math.radians(e)) + 0.50572 * (e + 6.07995) ** -1.6364) +def sun_colour(el): return np.exp(-TAU_Z * airmass(el)) +def phase(c): + pr = 3.0 / (16 * math.pi) * (1 + c * c); pm = (1 - G_MIE ** 2) / (4 * math.pi * (1 + G_MIE ** 2 - 2 * G_MIE * c) ** 1.5) + return (1 - W_MIE) * pr + W_MIE * pm +def sun_vec(az, el): a, e = math.radians(az), math.radians(el); return np.array([math.sin(a) * math.cos(e), math.cos(a) * math.cos(e), math.sin(e)]) +def EX_REF_NORM(Ec, I, amb_k): return float((0.45 * REF_AMB * amb_k + 0.75 * Ec * I * 0.7).mean()) / 0.87 +def sun_state(az, el): + Ec = sun_colour(el) / sun_colour(REF['el']); I = (max(math.sin(math.radians(el)), 0.0) / math.sin(math.radians(REF['el']))) ** 0.5 + tw = 0.30 * float(np.clip((el + 6) / 8, 0, 1)) ** 2; amb_k = 0.12 + 0.88 * float(np.clip((el + 3) / 45, 0, 1)) ** 0.7 + ex = 0.45 + 0.55 * float(np.clip((el + 4) / 18, 0, 1)) ** 0.6 + return dict(az=az, el=el, L=sun_vec(az, el), sun=Ec * I, sky_sun=Ec * (I + tw), amb=REF_AMB * amb_k, amb_k=amb_k, ex=ex / EX_REF_NORM(Ec, I, amb_k), ex_t=ex) +def _g0(): + st = sun_state(REF['az'], REF['el']); d = 0.7; g = (0.45 * st['amb'] + 0.75 * st['sun'] * d) * (np.array([0.90, 0.92, 1.04]) + (np.array([1.03, 1.0, 0.95]) - np.array([0.90, 0.92, 1.04])) * d) + return g / g.mean() +G0 = _g0() +def col_scatter(st): + az = azrad(); c = math.cos(math.radians(st['el'])) * np.cos(az - math.radians(st['az'])) + pr = np.array([phase(float(x)) for x in c]); g = np.clip((pr / phase(0.0)) ** 0.35, 0.5, 2.4) + rs = sun_state(REF['az'], REF['el']); ref = 0.8 * rs['sky_sun'] + 0.35 * rs['amb']; ref = ref / ref.mean() + col = 0.8 * st['sky_sun'] + 0.35 * st['amb']; col = col / col.mean() + return c, g[:, None] * (col / ref)[None, :] + +def hue_gain(st, d): + lit_tint = np.array([1.03, 1.0, 0.95]); shd_tint = np.array([0.90, 0.92, 1.04]) + tint = shd_tint + (lit_tint - shd_tint) * d + return (0.45 * st['amb'] + 0.75 * st['sun'] * d) * tint / G0 * st['ex'] + +def floor_img(st, hazec, fmot): + """Ground-plane band: below the horizon a flat floor `floor_agl_m` below the eye; plane distance dg = h / tan(depression); colour = ground albedo lit by an + up-facing normal, thinned into haze by the same Beer-Lambert extinction as the layers. Above the horizon the same array is the haze (sky covers it).""" + a = rowang; dg = P['floor_agl_m'] / np.tan(np.radians(np.clip(-a, 0.002, 89.0))) + T = np.exp(-(BETA_R + BETA_M)[None, :] * (dg / 1000.0)[:, None] * ATM_FLOOR); T[a >= 0] = 0.0 + ground = (GROUND * hue_gain(st, float(np.clip((math.sin(math.radians(st['el'])) + 0.2) / 1.2, 0, 1)))) + return ground[None, None, :] * fmot[..., None] * T[:, None, :] + hazec[None, :, :] * (1 - T)[:, None, :] + +def ndl_field(Ly, L): + """n . L per pixel from the baked face: n ~ (-sl r - la t, 1), r / t the column's radial / tangential directions. Returns (ndl, |n|-normaliser).""" + az = azrad(); sa, ca_ = np.sin(az), np.cos(az); sl, la = Ly['sl'], Ly['la'] + Lr = (L[0] * sa + L[1] * ca_)[None, :]; Lt = (L[0] * ca_ - L[1] * sa)[None, :]; nrm = np.sqrt(1 + sl * sl + la * la) + return (L[2] - sl * Lr - la * Lt) / nrm, nrm + +RELIEF_OFF_DEG, RELIEF_EL = 45.0, 32.0 # authored relief light: RELIEF_OFF_DEG off the view axis, RELIEF_EL up +def win_centre_az(): return (P['win0'] + WIN / 2) / W * 360.0 +def relief_vec(sun_az): + """The authored relief light direction (toward the light). The real sun lights a face the viewer looks at only when it is off to one side; with the sun behind the viewer every face is + head-on and the mountain goes flat. Shading n.L (ndl_field, rim, spec) therefore uses this fixed direction: azimuth = the view centre az +/- RELIEF_OFF_DEG, on the left/right side of the view axis + that the real sun is on (so the two agree where they can), RELIEF_EL up. Sun colour/strength, haze, colour temperature and cast shadows keep the real sun: + the relief only decides where on the form the sun's light falls.""" + ctr = win_centre_az(); side = 1.0 if math.sin(math.radians(sun_az - ctr)) >= 0 else -1.0 + return sun_vec(ctr + side * RELIEF_OFF_DEG, RELIEF_EL) + +def fresnel(sl, nrm): return np.clip(1 - sl / nrm, 0, 1) ** 3 # (1 - n . V)^3, V = -r: strongest on faces that lie away from the viewer +def spec_field(L, sl, la, nrm, ndl): + """GGX-like highlight (alpha 0.3) of the face (sl, la, nrm as in ndl_field) for the light L: half vector between L and the direction back to the viewer (-r) in every column.""" + az = azrad(); sa, ca_ = np.sin(az), np.cos(az) + Hv = L[None, :] + np.stack([-sa, -ca_, np.zeros(W)], 1); Hv /= np.linalg.norm(Hv, axis=1, keepdims=True) + Hr = (Hv[:, 0] * sa + Hv[:, 1] * ca_)[None, :]; Ht = (Hv[:, 0] * ca_ - Hv[:, 1] * sa)[None, :] + nh = np.clip((Hv[:, 2][None, :] - sl * Hr - la * Ht) / nrm, 0, 1); al = 0.30 + D = (al * al) / (1 + nh * nh * (al * al - 1)) ** 2 * al * al + return 0.30 * D * np.clip(ndl, 0, 1) + +def relight_layer(Ly, st, hazec, F, sh3=None): + """Shading per PIXEL (ndl_field), not per column. n.L uses the relief light; the sun's colour, strength (st['sun'] scales every direct term, so night and dusk stay dark) and shadows are the real sun's.""" + L = relief_vec(st['az']); az = azrad(); sa, ca_ = np.sin(az), np.cos(az); sl, la = Ly['sl'], Ly['la'] + ndl, nrm = ndl_field(Ly, L); d = np.clip((ndl + 0.2) / 1.2, 0, 1) + gain = hue_gain(st, d[..., None]) + rim_dir = (np.stack([sa, ca_], 1) * L[None, :2]).sum(1)[None, :] + fres = fresnel(sl, nrm) + rim = (0.12 + 1.0 * np.clip(rim_dir, 0, 1)) * fres + spec = spec_field(L, sl, la, nrm, ndl) + if sh3 is None: sp = np.zeros((1, 1), np.float32); face = Ly['face'] * gain.astype(np.float32) + else: + sh3 = blurw(sh3, 2.0); f = np.clip((rowang[:, None] - Ly['lo'][None, :]) / np.maximum(Ly['ang'] - Ly['lo'], 1e-3)[None, :], 0, 1) # position on the face: 0 valley .. 1 crest + sp = np.where(f < 0.5, sh3[0] + (sh3[1] - sh3[0]) * 2 * f, sh3[1] + (sh3[2] - sh3[1]) * 2 * (f - 0.5)).astype(np.float32) + g_amb = hue_gain(st, 0.0)[None, None, :]; face = Ly['face'] * (g_amb + (gain - g_amb) * (1 - sp)[..., None]).astype(np.float32) # shadow removes the direct share only + fa = 1 - math.exp(-Ly['dist'] / 20000.0) # valley mist grows with the layer's distance + foot = F * (1 - fa) + hazec[None] * fa + wf = Ly['w'] * (1 - 0.6 * fa) # far layers keep 60% of their own body colour at the foot + wf = 1 - (1 - wf) * np.clip(1 + rowang * PXDEG_V / 40.0, 0, 1)[:, None] # below the horizon every layer's foot has merged into the ground plane within 40 px: no per-slot colour seams down the floor + face = face * (1 - wf[..., None]) + foot * wf[..., None] + face += (Ly['rb'] * (rim * 0.55) * (1 - sp))[..., None] * (st['sun'] * 1.1 + 0.25)[None, None, :] + face += ((spec * (0.5 + Ly['mot'])) * (Ly['m'] > 0.5) * (1 - sp))[..., None] * st['sun'][None, None, :] * 0.5 + lw = (0.70 + 0.90 * (1 - d)) * (1 - 0.30 * Ly['far']) + line = np.clip(1 - Ly['dpx'] / lw, 0, 1) * Ly['ca'] + ia = np.clip(line + Ly['ha'], 0, 1) + ink = Ly['ink'][None, None, :] * (0.6 + 0.4 * gain.mean(-1))[..., None] + face = face * (1 - ia[..., None]) + ink * ia[..., None] + T = np.exp(-(BETA_R + BETA_M) * Ly['dist'] / 1000.0 * ATM) + return face * T[None, None, :] + hazec[None, :, :] * (1 - T)[None, None, :] + +def sky_hz(st, paperf): + az = azrad(); c, hg = col_scatter(st) + hz = hx('#f5e2c8')[None, :] * hg * st['ex_t'] + tint = (st['amb'] / st['amb'].mean()) / (REF_AMB / REF_AMB.mean()); zen = hx('#a9bcd6')[None, :] * tint[None, :] * st['ex_t'] + u = np.clip(rowang / max(TOP_DEG, 2.5), 0, 1)[:, None] ** 0.7 + img = zen[None] * u[..., None] + hz[None] * (1 - u)[..., None] + ev = np.radians(rowang)[:, None]; cs = np.cos(ev) * math.cos(math.radians(st['el'])) * np.cos(az - math.radians(st['az']))[None, :] + np.sin(ev) * math.sin(math.radians(st['el'])) + ang = np.degrees(np.arccos(np.clip(cs, -1, 1))) + glow = 0.95 * np.exp(-(ang / 4.5) ** 2) + 0.55 * np.exp(-(ang / 22.0) ** 2) + img = img + glow[..., None] * (st['sky_sun'] * 0.8 * st['ex_t'])[None, None, :] + return img * paperf[..., None] / 0.93, hz + +def haze_colour(hz): return hz * (hx('#cdd7e7') / hx('#f5e2c8'))[None, :] + +def relight(layers, az, el, paperf, grain, fmot, shadows=True, flat=None): + """Opaque frame with the sky. `flat` (an RGB triple) replaces the sky and the haze colour by that one colour: the stand-in the planes are compared against.""" + st = sun_state(az, el); shs = cast_shadows(layers, az, el) if shadows else [None] * len(layers); sky, hz = sky_hz(st, paperf) + hazec = haze_colour(hz) + if flat is not None: hazec = np.broadcast_to(np.asarray(flat, float), (W, 3)); sky = np.broadcast_to(np.asarray(flat, float), sky.shape) + F = floor_img(st, hazec, fmot) * (paperf[..., None] / 0.93) + img = np.where((rowang >= 0)[:, None, None], sky, F).astype(np.float32) + for Ly, sh3 in zip(layers, shs): + face = relight_layer(Ly, st, hazec.astype(np.float32), F.astype(np.float32), sh3); face *= (paperf[..., None] / 0.93) + img = img * (1 - Ly['a'][..., None]) + face * Ly['a'][..., None] + return img * grain[..., None] + +def group_slots(n): + """Plane grouping by slot index: far = slot 0 (+ the floor), near = the last slot, mid = every slot between. Fewer than 3 slots cannot fill three planes.""" + if n < 3: raise ValueError(f"a place needs at least 3 layer slots for the far/mid/near planes, this one has {n}") + return dict(far=[0], mid=list(range(1, n - 1)), near=[n - 1]) + +def relight_planes(layers, az, el, paperf, grain, fmot, shadows=True, ref=None): + """The frame as three RGBA planes (window columns, float 0..1, straight alpha) with no sky drawn. Every pixel of relight is affine in the haze colour c: out = X + c Y + (the haze enters only as the foot mix and the final Beer-Lambert mix). Render each layer and the floor with c = 0 (X) and c = 1 (X + Y), composite each group over + nothing, and let the haze share become transparency: alpha = coverage - mean(Y), colour = X / alpha. Whatever sky the runtime draws behind then supplies the haze. + The split is exact for one group over a flat sky; stacked planes put a nearer group's haze over the farther ridge instead of over the sky (see the recomposite test for the measured loss).""" + st = sun_state(az, el); shs = cast_shadows(layers, az, el) if shadows else [None] * len(layers); out = {} + below = (rowang < 0)[:, None]; k = (paperf[..., None] / 0.93); runs = [] + ref = haze_colour(sky_hz(st, paperf)[1]) if ref is None else np.broadcast_to(np.asarray(ref, float), (W, 3)); ref_w = win(ref[None].astype(np.float32))[0] + for c in (0.0, 1.0): + hc = np.full((W, 3), c, np.float32); F = (floor_img(st, hc, fmot) * k).astype(np.float32) + runs.append((F, [relight_layer(Ly, st, hc, F, sh3) * k for Ly, sh3 in zip(layers, shs)])) + for name, idx in group_slots(len(layers)).items(): + img = [np.where(below[..., None], r[0], 0.0) if name == 'far' else np.zeros_like(r[0]) for r in runs]; cov = np.broadcast_to(below, (H, W)).astype(np.float32) if name == 'far' else np.zeros((H, W), np.float32) + for i in idx: + a = layers[i]['a'][..., None] + for j in (0, 1): img[j] = img[j] * (1 - a) + runs[j][1][i] * a + cov = cov * (1 - a[..., 0]) + a[..., 0] + X = win(img[0]); Yc = win(img[1] - img[0]); Y = Yc.mean(-1); alpha = np.clip(win(cov) - Y, 0, 1) + P = X + ref_w[None] * (Yc - Y[..., None]) # premultiplied colour: exact over the reference haze, per channel + col = np.where(alpha[..., None] > 1e-4, P / np.maximum(alpha, 1e-4)[..., None], 0.0) * win(grain)[..., None] + out[name] = np.concatenate([np.clip(col, 0, 1), alpha[..., None]], -1).astype(np.float32) + return out + +def statics(): + paperf = 0.93 + 0.09 * (0.5 * pn2(2, 11) + 0.3 * pn2(9, 12) + 0.2 * pn2(40, 13)) + 0.03 * (pn2(1, 14) - .5) + return paperf, 0.95 + 0.07 * pn2(1, 900), 0.88 + 0.2 * (0.6 * pn2(30, 810) + 0.4 * pn2(7, 811)) + +def debug_spans(cols, win0=None, w=WIN): + win0 = P['win0'] if win0 is None else win0 + img = np.ones((H, w, 3)) * 0.97; ramp = [hx(c) for c in ('#d03030', '#e8a020', '#60b040', '#2090b0', '#6030c0')] + order = sorted(((s[2], i, s[0], s[1]) for i in range(w) for s in cols[(win0 + i) % W]), key=lambda t: -t[0]) + for dd, x, p, l in order: + t = np.clip((math.log(dd) - math.log(500)) / (math.log(95000) - math.log(500)), 0, 1) * 4 + i = min(int(t), 3); col = mix(ramp[i], ramp[i + 1], t - i) + y0 = int(np.clip((TOP_DEG - p) * PXDEG_V, 0, H - 1)); y1 = int(np.clip((TOP_DEG - max(l, p - 3.0)) * PXDEG_V, 0, H - 1)) + img[y0:y1 + 1, x] = col + return img + +def apply_view(v): + """re-apply a view returned by set_view (used by the rotation test and the before/after comparison so that frames line up exactly)""" + global rowang, PXDEG_V, TOP_DEG, BOTTOM_DEG + PXDEG_V = v['px_per_deg']; TOP_DEG = v['top_deg']; BOTTOM_DEG = v['bottom_deg']; rowang = TOP_DEG - (np.arange(H) + 0.5) / PXDEG_V diff --git a/scripts/ridge-bake/sun.py b/scripts/ridge-bake/sun.py new file mode 100644 index 00000000..f1eaa182 --- /dev/null +++ b/scripts/ridge-bake/sun.py @@ -0,0 +1,29 @@ +"""Solar position: NOAA general solar position formulas (Spencer/fractional-year low precision: equation of time and declination Fourier series, +hour angle, zenith/azimuth), https://gml.noaa.gov/grad/solcalc/solareqns.PDF . Accuracy ~0.1 deg, plenty for a relight. Apparent elevation adds +Saemundsson refraction (Meeus ch.16). UTC in, degrees out. Azimuth clockwise from north.""" +import math +from datetime import datetime, timezone, timedelta + +def solar(dt_utc, lat, lon): + doy = dt_utc.timetuple().tm_yday; hr = dt_utc.hour + dt_utc.minute / 60 + dt_utc.second / 3600 + g = 2 * math.pi / 365 * (doy - 1 + (hr - 12) / 24) + eq = 229.18 * (0.000075 + 0.001868 * math.cos(g) - 0.032077 * math.sin(g) - 0.014615 * math.cos(2 * g) - 0.040849 * math.sin(2 * g)) + de = (0.006918 - 0.399912 * math.cos(g) + 0.070257 * math.sin(g) - 0.006758 * math.cos(2 * g) + 0.000907 * math.sin(2 * g) + - 0.002697 * math.cos(3 * g) + 0.00148 * math.sin(3 * g)) + tst = hr * 60 + eq + 4 * lon # true solar time, minutes + ha = math.radians(tst / 4 - 180); la = math.radians(lat) + sin_el = math.sin(la) * math.sin(de) + math.cos(la) * math.cos(de) * math.cos(ha) + el = math.degrees(math.asin(sin_el)) + az = (math.degrees(math.atan2(math.sin(ha), math.cos(ha) * math.sin(la) - math.tan(de) * math.cos(la))) + 180) % 360 + ref = 1.02 / math.tan(math.radians(el + 10.3 / (el + 5.11))) / 60 if el > -5 else 0.0 + return az, el + ref, el, math.degrees(de), eq + +def find_el(day, lat, lon, target, lo_h, hi_h): + """bisect the UTC hour in [lo_h, hi_h] where apparent elevation crosses `target`.""" + f = lambda h: solar(day + timedelta(hours=h), lat, lon)[1] - target + a, b = lo_h, hi_h; fa = f(a) + for _ in range(50): + m = (a + b) / 2; fm = f(m) + if (fa < 0) == (fm < 0): a, fa = m, fm + else: b = m + return (a + b) / 2 diff --git a/scripts/ridge-bake/tests/mutate.py b/scripts/ridge-bake/tests/mutate.py new file mode 100644 index 00000000..244f7f39 --- /dev/null +++ b/scripts/ridge-bake/tests/mutate.py @@ -0,0 +1,66 @@ +"""Mutation check: re-introduce a cause into a COPY of the baker, run the fixtures against it, and require that at least one fails. + venv/bin/python tests/mutate.py (prints one line per mutant; exit 1 if a mutant survives)""" +import os, shutil, subprocess, sys, tempfile +HERE = os.path.dirname(os.path.abspath(__file__)); SRC = os.path.join(HERE, '..') +MUTANTS = { + 'round-1 bug: both chain sides take the END value (near_end always x1)': ("near_end = np.where(x - x1 <= W - x, x1, 0)", "near_end = np.where(x - x1 <= W - x, x1, x1)"), + 'linking does not wrap (look-back columns clipped at 0)': ("xb = (x - back) % Wc", "xb = max(x - back, 0)"), + 'a chain absent from a column still competes in the slot union (held valley value wins)': ("np.where(l['wt'] > 0, l['top'], -1e3 - col_gap(l['wt'] > 0))", "l['top']"), + 'shadow march goes AWAY from the sun': ("lat + s * ca / 111320.0, lon + s * sa", "lat - s * ca / 111320.0, lon - s * sa"), + 'shadow ignores the sun elevation (ray stays at the sample height)': ("(h + s * t)", "(h + 0 * t)"), + 'taper length ignores the drop (always the 8-column minimum)': ("Tn = taper_len(drop)", "Tn = np.full_like(drop, 8.0)"), + 'shadow march mirrors east/west (longitude sign)': ("lon + s * sa / (111320.0 * cosl)", "lon - s * sa / (111320.0 * cosl)"), + 'shadow longitude scale ignores cos(lat)': ("lon + s * sa / (111320.0 * cosl)", "lon + s * sa / 111320.0"), + 'shadow lightens instead of darkens the face': ("(gain - g_amb) * (1 - sp)[..., None]", "(gain - g_amb) * sp[..., None]"), + 'taper cap lowered to 8 columns': ("TAPER_K, TAPER_MAX = 30.0, 72", "TAPER_K, TAPER_MAX = 30.0, 8"), + 'taper per degree lowered to 2': ("TAPER_K, TAPER_MAX = 30.0, 72", "TAPER_K, TAPER_MAX = 2.0, 72"), + 'taper floor ignores the chain end (top held, no fall)': ("res['top'] = res['top'] - drop * t", "res['top'] = res['top']"), + 'painter shades one normal per column (the column mean of the per-pixel face)': ("sl, la = Ly['sl'], Ly['la']\n Lr", "sl, la = np.broadcast_to(Ly['sl'].mean(0), Ly['sl'].shape), np.broadcast_to(Ly['la'].mean(0), Ly['la'].shape)\n Lr"), + 'history collapsed to ONE slope per peak (the strip mean)': ("Z, Dp, sl = lerp(hh), lerp(hd), lerp(sn)", "Z, Dp, sl = lerp(hh), lerp(hd), np.broadcast_to(mean_s, Z.shape)"), + 'history not recorded: only valley and peak samples kept': ("return np.interp(t, va, vd), np.interp(t, va, vh)", "return np.interp(t, va[[0, -1]], vd[[0, -1]]), np.interp(t, va[[0, -1]], vh[[0, -1]])"), + 'no lateral tilt from the neighbouring columns': ("np.clip((c_ - a_ * sl) / b_, -1.5, 1.5))", "0 * np.clip((c_ - a_ * sl) / b_, -1.5, 1.5))"), + 'NEAR_CAP shoulder committed without the prominence test': ("if hh[j] - lowh >= prom: span(", "if True: span("), + 'prominence measured as an angle at the CURRENT sample (round 2)': ("if cand - v >= hy[k] and ch - lowh >= prom:", "if cand - v >= hy[k] and cand - mn >= hy[k]:"), + 'contour interval chosen from the shallowest quarter of the face (banding)': ("np.percentile(dzdpx[faceok], 75)", "np.percentile(dzdpx[faceok], 10)"), + 'a tapering end keeps the 28 px minimum body (stub / curtain at every chain end)': ("28 * np.clip(wt, 0, 1)", "28"), + 'absent columns of a slot take the first chain in list order (rotation-dependent)': ("np.where(l['wt'] > 0, l['top'], -1e3 - col_gap(l['wt'] > 0))", "np.where(l['wt'] > 0, l['top'], -1e9)"), + 'history keeps samples the eye cannot see (no running maximum)': ("runmax = np.maximum.accumulate(seg)", "runmax = seg"), + 'lateral tilt scale doubled': ("/ b_, -1.5, 1.5))", "/ b_ * 2, -1.5, 1.5))"), + 'lateral tilt kept across occlusion edges': ("np.abs(a_) > 3 * b_", "np.abs(a_) > 3e9 * b_"), + 'every foreground stub kept (round 2 arches)': ("if not cov[xs].any(): keep.append(c)", "if True: keep.append(c)"), + 'no foreground stub kept (holes in the nearest layer)': ("if not cov[xs].any(): keep.append(c)", "if False: keep.append(c)"), + 'prominence from the height of the lowest-angle sample (near, high valley)': ("if cand - v >= hy[k] and ch - lowh >= prom:", "if cand - v >= hy[k] and ch - mnh >= prom:"), + 'layer body painted to the bottom of the frame (no foot fade: walls)': ("alpha = (m * (1 - fade)).astype(np.float32)", "alpha = m.astype(np.float32)"), + 'relief: shading uses the real sun again (face flat with the sun behind the viewer)': ("L = relief_vec(st['az']); az", "L = st['L']; az"), + 'relief: 45 deg off the viewer-ward axis (the previous reading) instead of the view axis': ("ctr = win_centre_az(); side", "ctr = (win_centre_az() + 180.0) % 360.0; side"), + 'relief: always the + side, whatever side the real sun is on': ("side = 1.0 if math.sin(math.radians(sun_az - ctr)) >= 0 else -1.0", "side = 1.0"), + 'relief: colour / strength / haze frozen at a 40 deg sun (night does not go dark)': ("st = sun_state(az, el); shs", "st = sun_state(az, 40.0); shs"), + 'relief: cast shadows march toward the relief light instead of the real sun': ("cast_shadows(layers, az, el) if shadows", "cast_shadows(layers, math.degrees(math.atan2(relief_vec(az)[0], relief_vec(az)[1])) % 360.0, RELIEF_EL) if shadows"), + + 'compositor (relight) reads the layer mask m instead of its alpha a (walls return)': ("img = img * (1 - Ly['a'][..., None]) + face * Ly['a'][..., None]", "img = img * (1 - Ly['m'][..., None]) + face * Ly['m'][..., None]"), + 'foot fade starts at 30% of the foot instead of 60%': ("(depthpx - 0.6) / 0.4", "(depthpx - 0.3) / 0.7"), + 'foot fade starts at 90% of the foot instead of 60%': ("(depthpx - 0.6) / 0.4", "(depthpx - 0.9) / 0.1"), + 'TAPER_MAX 72 -> 40': ("TAPER_K, TAPER_MAX = 30.0, 72", "TAPER_K, TAPER_MAX = 30.0, 40"), + 'RELIEF_EL 32 -> 3 (grazing relief light)': ("RELIEF_OFF_DEG, RELIEF_EL = 45.0, 32.0", "RELIEF_OFF_DEG, RELIEF_EL = 45.0, 3.0"), + 'spec half vector ignores the light': ("Hv = L[None, :] + np.stack(", "Hv = 0 * L[None, :] + np.stack("), + 'lateral tilt not blurred across columns': ("blurw(la, 2.0).astype", "la.astype"), + 'contour interval percentile includes the tapering columns (weight condition removed)': ("& (wt[None, :] > 0.5)", ""), + 'Fresnel sign flipped (rim strongest on faces standing at the viewer)': ("np.clip(1 - sl / nrm, 0, 1) ** 3", "np.clip(1 + sl / nrm, 0, 1) ** 3"), + 'rays cache key ignores the refraction constant': ("R_EARTH, KREF, W, bool(detail)", "R_EARTH, W, bool(detail)"), + 'rays cache key ignores the eye elevation': ("round(float(P['eye_m']), 3), ", ""), + 'mosaic cache key ignores the tile list': ("sorted(tiles_for(p)), 3600", "3600"), +} +EQUIVALENT = {} # mutant name -> one line on why it is behaviourally equivalent (reported, not run) +def run(item): + name, (a, b) = item; d = tempfile.mkdtemp(); shutil.copytree(SRC, os.path.join(d, 'src'), ignore=shutil.ignore_patterns('tests', '__pycache__')); p = os.path.join(d, 'src', 'ridge.py'); s = open(p).read(); assert a in s, name + open(p, 'w').write(s.replace(a, b)) + r = subprocess.run([sys.executable, os.path.join(HERE, 'test_ridge.py')], env=dict(os.environ, RIDGE_SRC=os.path.join(d, 'src')), capture_output=True, text=True); shutil.rmtree(d) + fails = [l.split('|')[0].strip() for l in r.stdout.splitlines() if l.startswith('FAIL')] + line = ('KILLED ' if r.returncode else 'SURVIVED ') + name + ' -> ' + (', '.join(fails) or 'no fixture failed'); print(line, file=sys.stderr, flush=True) # progress: a killed run keeps what finished + return line, r.returncode == 0 +if __name__ == '__main__': + from concurrent.futures import ThreadPoolExecutor + with ThreadPoolExecutor(int(os.environ.get('MUTATE_JOBS', '6'))) as ex: res = list(ex.map(run, [(n, v) for n, v in MUTANTS.items() if n not in EQUIVALENT])) + for line, _ in res: print(line, flush=True) + for n, why in EQUIVALENT.items(): print('EQUIVALENT ' + n + ' -> ' + why) + sys.exit(1 if any(sv for _, sv in res) else 0) diff --git a/scripts/ridge-bake/tests/mutate_export.py b/scripts/ridge-bake/tests/mutate_export.py new file mode 100644 index 00000000..8b4025d6 --- /dev/null +++ b/scripts/ridge-bake/tests/mutate_export.py @@ -0,0 +1,92 @@ +"""Mutation check of the planes path: re-introduce a cause into a COPY of export.py / ridge.py (relight_planes) and run the planes/export tests of test_ridge.py (PLANES_TESTS) against it; a mutant must fail at least one. + RIDGE_TILES= RIDGE_WORK= venv/bin/python -I tests/mutate_export.py [JOBS=4 and ONLY=[|] in the environment] (prints one line per mutant as it lands; exit 1 if one survives) +Each mutant runs under a 12 GB address-space cap and a 20 minute limit. Equivalent mutants are named in EQUIVALENT with the argument; they are reported but do not fail the run.""" +import os, sys, shutil, subprocess, tempfile, resource +from concurrent.futures import ThreadPoolExecutor +HERE = os.path.dirname(os.path.abspath(__file__)); SRC = os.path.join(HERE, '..') +EQUIVALENT = {'decode budget cap is exclusive': 'decoded = 2 * 3 * w * h * 4 is a multiple of 24 and 20_000_000 is not (20_000_000 / 24 = 833333.33), so decoded == DECODE_BYTES_MAX never holds for integer w and h and > equals >='} +M = { + 'no per-channel ref correction (P = X)': ('ridge.py', 'P = X + ref_w[None] * (Yc - Y[..., None])', 'P = X'), + 'alpha ignores haze (alpha = cov)': ('ridge.py', 'alpha = np.clip(win(cov) - Y, 0, 1)', 'alpha = np.clip(win(cov), 0, 1)'), + 'alpha from the max haze channel': ('ridge.py', 'Y = Yc.mean(-1); alpha', 'Y = Yc.max(-1); alpha'), + 'haze share halved in alpha': ('ridge.py', 'alpha = np.clip(win(cov) - Y, 0, 1)', 'alpha = np.clip(win(cov) - 0.5 * Y, 0, 1)'), + 'default ref = the sky horizon colour, not the haze colour': ('ridge.py', 'ref = haze_colour(sky_hz(st, paperf)[1]) if ref is None', 'ref = sky_hz(st, paperf)[1] if ref is None'), + 'default ref = mid grey': ('ridge.py', 'ref = haze_colour(sky_hz(st, paperf)[1]) if ref is None', 'ref = np.full((W, 3), 0.5) if ref is None'), + 'grain dropped from the planes': ('ridge.py', 'P / np.maximum(alpha, 1e-4)[..., None], 0.0) * win(grain)[..., None]', 'P / np.maximum(alpha, 1e-4)[..., None], 0.0)'), + 'grain squared': ('ridge.py', 'P / np.maximum(alpha, 1e-4)[..., None], 0.0) * win(grain)[..., None]', 'P / np.maximum(alpha, 1e-4)[..., None], 0.0) * win(grain)[..., None] ** 2'), + 'floor dropped from far': ('ridge.py', "if name == 'far' else np.zeros_like(r[0]) for r in runs]", "if False else np.zeros_like(r[0]) for r in runs]"), + 'mid = only the first middle slot': ('ridge.py', 'mid=list(range(1, n - 1))', 'mid=[1]'), + 'cast shadows off in planes': ('ridge.py', 'shs = cast_shadows(layers, az, el) if shadows else [None] * len(layers); out = {}', 'shs = [None] * len(layers); out = {}'), + 'encode premultiplies colour': ('export.py', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane)', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(np.concatenate([plane[..., :3] * plane[..., 3:], plane[..., 3:]], -1))'), + 'encode drops alpha': ('export.py', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane)', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane)[..., :3]'), + 'encode quality 5': ('export.py', 'WEBP_QUALITY = 80', 'WEBP_QUALITY = 5'), + 'encode flips rows': ('export.py', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane)', 'def encode(plane): return bytes(imagecodecs.webp_encode(u8(plane)[::-1].copy()'), + 'night at -6 deg': ('export.py', 'NIGHT_EL = -12.0', 'NIGHT_EL = -6.0'), + 'golden at 10 deg': ('export.py', 'golden=find(6.0, noon, noon + 9)', 'golden=find(10.0, noon, noon + 9)'), + 'altitude includes eye height': ('export.py', "altitude_km=p['ground_m'] / 1000.0", "altitude_km=(p['ground_m'] + p['eye_m']) / 1000.0"), + 'horizon_row in the wrong unit (degrees)': ('export.py', "horizon_row=v['horizon_row']", "horizon_row=v['top_deg']"), + 'manifest plane h lies': ('export.py', 'w=w, h=h) for n in PLANES}', 'w=w, h=h + 1) for n in PLANES}'), + 'manifest plane w from the constant': ('export.py', 'w=w, h=h) for n in PLANES}', 'w=PLANE_W, h=h) for n in PLANES}'), + 'manifest view plane_w from the constant': ('export.py', 'window_deg=WINDOW_DEG, plane_w=w)', 'window_deg=WINDOW_DEG, plane_w=PLANE_W)'), + 'luma sky 0.8 grey': ('export.py', 'LUMA_SKY = 0.5', 'LUMA_SKY = 0.8'), + 'luma coverage threshold 0.3': ('export.py', 'LUMA_COVER = 0.5', 'LUMA_COVER = 0.3'), + 'luma coverage threshold 0.8': ('export.py', 'LUMA_COVER = 0.5', 'LUMA_COVER = 0.8'), + 'luma composites near to far': ('export.py', 'for a in decoded:', 'for a in decoded[::-1]:'), + 'luma coverage = strongest plane alpha': ('export.py', 'clear = clear * (1 - al[..., 0])', 'clear = np.minimum(clear, 1 - al[..., 0])'), + 'luma coverage = last plane alpha': ('export.py', 'clear = clear * (1 - al[..., 0])', 'clear = 1 - al[..., 0]'), + 'luma never refuses an empty frame': ('export.py', 'if not m.any(): raise ValueError', 'if False: raise ValueError'), + 'planes of mixed size accepted': ('export.py', 'if len(shapes) != 1:', 'if False:'), + 'plane rows not checked against the view': ('export.py', 'if h != view', 'if False and h != view'), + 'budget checked against the constant width': ('export.py', 'check_budget([sum(sizes[k].values()) for k in KEYS], w, h)', 'check_budget([sum(sizes[k].values()) for k in KEYS], PLANE_W, h)'), + 'budget checked against the view height only': ('export.py', 'check_budget([sum(sizes[k].values()) for k in KEYS], w, h)', 'check_budget([sum(sizes[k].values()) for k in KEYS], w, 1)'), + 'width cap is exclusive of 4096': ('export.py', 'if plane_w > PLANE_W_MAX:', 'if plane_w >= PLANE_W_MAX:'), + 'width cap 8192': ('export.py', 'PLANE_W_MAX = 4096', 'PLANE_W_MAX = 8192'), + 'pair cap is exclusive of the cap': ('export.py', 'if frame_bytes[i] + frame_bytes[j] > PAIR_BYTES_MAX:', 'if frame_bytes[i] + frame_bytes[j] >= PAIR_BYTES_MAX:'), + 'pair check does not wrap night to dawn': ('export.py', 'for i in range(len(frame_bytes)):', 'for i in range(len(frame_bytes) - 1):'), + 'decode budget counts one frame, not a pair': ('export.py', 'decoded = 2 * len(PLANES)', 'decoded = len(PLANES)'), + 'decode budget cap doubled': ('export.py', 'DECODE_BYTES_MAX = 20_000_000', 'DECODE_BYTES_MAX = 40_000_000'), + 'decode budget cap is exclusive': ('export.py', 'if decoded > DECODE_BYTES_MAX:', 'if decoded >= DECODE_BYTES_MAX:'), + 'planes order mid far near': ('export.py', "PLANES = ('far', 'mid', 'near')", "PLANES = ('mid', 'far', 'near')"), + 'morning ignores the time zone': ('export.py', 'morning=9.5 - tz', 'morning=9.5'), + 'dawn three hours after sunrise': ('export.py', 'dawn=rise + 0.25', 'dawn=rise + 3'), + 'dusk at -4 deg': ('export.py', 'dusk=find(-2.5, noon, noon + 9)', 'dusk=find(-4.0, noon, noon + 9)'), + 'noon is solar noon of the meridian, not the sun maximum': ('export.py', 'noon = max((12 - lon / 15.0 - 1 + x / 600 for x in range(0, 1200)), key=lambda t: sun.solar(day + timedelta(hours=t), lat, lon)[1])', 'noon = 12 - lon / 15.0 + 1.5'), + 'sun key hour_utc off by one hour': ('export.py', "hour_utc=h) for k, h in hours.items()}", "hour_utc=h + 1) for k, h in hours.items()}"), + 'altitude from the eye, not the ground': ('export.py', "altitude_km=p['ground_m'] / 1000.0", "altitude_km=p['eye_m'] / 1000.0"), + 'look azimuth from the wrong field': ('export.py', "look_az_deg=p['az_center']", "look_az_deg=p['lat']"), + 'view px_per_deg_v is the horizontal one': ('export.py', "px_per_deg_v=v['px_per_deg']", "px_per_deg_v=ridge.HPX_DEG"), + 'sky_row left as a fraction': ('export.py', "sky_row=v['sky_row'] * ridge.H", "sky_row=v['sky_row']"), + 'near_row left as a fraction': ('export.py', "near_row=v['near_row'] * ridge.H", "near_row=v['near_row']"), + 'index written without replacing a rebaked place': ('export.py', "idx['places'][place['id']] = name;", "idx['places'].setdefault(place['id'], name);"), + 'plane files written under the wrong key': ('export.py', "(tmp / f'{k}-{n}.webp').write_bytes(frames_webp[k][n])", "(tmp / f'{k}-{n}.webp').write_bytes(frames_webp['noon'][n])"), + 'a refused bake still creates the out dir': ('export.py', "sizes = {k: {n: len(frames_webp[k][n])", "Path(out).mkdir(parents=True, exist_ok=True); sizes = {k: {n: len(frames_webp[k][n])"), + + 'luma in sRGB, not linear': ('export.py', 'lin = np.where(c <= 0.04045, c / 12.92, ((c + 0.055) / 1.055) ** 2.4)', 'lin = c'), + 'pair check skips the night-dawn pair and the last day pair': ('export.py', 'for i in range(len(frame_bytes)):', 'for i in range(len(frame_bytes) - 2):'), + 'decode budget never checked': ('export.py', 'if decoded > DECODE_BYTES_MAX:', 'if False:'), + 'old dir of the place kept': ('export.py', 'if old and old != name: shutil.rmtree(out / old, ignore_errors=True)', 'pass'), + 'tmp dir left in out on success': ('export.py', 'os.rename(tmp, dest)', 'shutil.copytree(tmp, dest)'), + 'index default always the baked place': ('export.py', "idx['default'] = default or (idx['default'] if idx['default'] in idx['places'] else place['id'])", "idx['default'] = place['id']"), + 'attribution credit_line blanked': ('export.py', "credit_line='Contains modified", "credit_line='' and 'Contains modified"), + 'attribution credit_line loses the Airbus line': ('export.py', ' and © Airbus Defence and Space GmbH 2014-2018', ''), + 'attribution licence blanked': ('export.py', "licence='Copernicus DEM licence", "licence='' and 'Copernicus DEM licence"), + 'attribution dem_source names the 90 m product': ('export.py', "dem_source='Copernicus DEM GLO-30 (30 m)'", "dem_source='Copernicus DEM GLO-90 (90 m)'"), + 'attribution url over plain http': ('export.py', "url='https://spacedata", "url='http://spacedata"), + 'attribution url blanked': ('export.py', "url='https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model')", "url='')"), + 'relight is not deterministic (noise in the planes)': ('ridge.py', 'P = X + ref_w[None] * (Yc - Y[..., None])', 'P = X + ref_w[None] * (Yc - Y[..., None]) + np.random.random() * 0.05'), +} + +def _cap(): resource.setrlimit(resource.RLIMIT_AS, (12 << 30, 12 << 30)) +def run(item): + name, (f, a, b) = item; d = tempfile.mkdtemp(dir=os.environ.get('TMPDIR')); s = os.path.join(d, 'src'); shutil.copytree(SRC, s, ignore=shutil.ignore_patterns('__pycache__')) + p = os.path.join(s, f); t = open(p).read(); assert a in t, name; open(p, 'w').write(t.replace(a, b, 1)) + code = ("import sys; sys.path.insert(0, %r); import test_ridge as t\nfor f in sorted(t.PLANES_TESTS, key=lambda f: ('vienna' in f.__name__, f.__name__)):\n" + " try: f()\n except BaseException as e: print(f.__name__[5:50] + ': ' + repr(e)[:120]); break\n") % os.path.join(s, 'tests') + try: r = subprocess.run([sys.executable, '-I', '-B', '-c', code], env=dict(os.environ, RIDGE_SRC=s), capture_output=True, text=True, preexec_fn=_cap, timeout=1200); fails = r.stdout.strip().splitlines()[-1] if r.stdout.strip() else ('CRASH ' + r.stderr[-300:] if r.returncode else '') + except subprocess.TimeoutExpired: fails = 'TIMEOUT' + shutil.rmtree(d); line = ('KILLED ' if fails else 'SURVIVED ') + name + ' -> ' + (fails or '-'); print(line, flush=True); return line +if __name__ == '__main__': + only = os.environ.get('ONLY'); items = [kv for kv in M.items() if not only or any(o in kv[0] for o in only.split('|'))] + with ThreadPoolExecutor(int(os.environ.get('JOBS', '4'))) as ex: lines = list(ex.map(run, items)) + live = [l for l in lines if l.startswith('SURVIVED') and l[9:].split(' -> ')[0] not in EQUIVALENT] + print('%d mutants, %d killed, %d survived (%d named equivalent)' % (len(lines), sum(l.startswith('KILLED') for l in lines), sum(l.startswith('SURVIVED') for l in lines), len(EQUIVALENT))); sys.exit(1 if live else 0) diff --git a/scripts/ridge-bake/tests/run.sh b/scripts/ridge-bake/tests/run.sh new file mode 100755 index 00000000..f97a126c --- /dev/null +++ b/scripts/ridge-bake/tests/run.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# Usage: RIDGE_PY= RIDGE_TILES= tests/run.sh [test_ridge.py|mutate.py] +# RIDGE_WORK (cache dir) defaults to a fresh directory under $TMPDIR. +: "${RIDGE_PY:?RIDGE_PY must name the python of the baker venv}" +export RIDGE_WORK="${RIDGE_WORK:-${TMPDIR:-/tmp}/ridge-bake-work}"; mkdir -p "$RIDGE_WORK" +HERE=$(cd "$(dirname "$0")" && pwd) +exec "$RIDGE_PY" -I "$HERE/${1:-test_ridge.py}" diff --git a/scripts/ridge-bake/tests/test_ridge.py b/scripts/ridge-bake/tests/test_ridge.py new file mode 100644 index 00000000..5603b3fb --- /dev/null +++ b/scripts/ridge-bake/tests/test_ridge.py @@ -0,0 +1,619 @@ +"""Fixtures for the A+D sweep/chain/taper. Plain asserts, no pytest needed: venv/bin/python tests/test_ridge.py (exit code 1 on failure). +RIDGE_SRC selects the source directory (default ..) (the mutation runner points it at a patched copy). +Synthetic terrain has a known right answer; the Vienna test pins the skyline of the real bake (its rays come from stage0 for the vienna preset: RIDGE_TILES needs the tiles, or a cached rays file must exist).""" +import os, sys, math, traceback +SRC = os.environ.get('RIDGE_SRC') or os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'); sys.path.insert(0, SRC) # RIDGE_WORK and RIDGE_TILES must be set (tests/run.sh sets them) +import numpy as np, ridge +from ridge import W, TAPER, TAPER_MAX, taper_len + +EYE = 100.0; GROUND = 50.0 # ground below the eye: every ray climbs, so only the placed blocks make ridges +ridge.P = dict(id='synthetic', rmax_km=60) +D = ridge.schedule(False) +def az_of(x): return (x + 0.5) / W * 360.0 +def col_of(az): return int(round(az / 360.0 * W - 0.5)) % W + +def rays(hfun): + az = (np.arange(W) + 0.5) / W * 360.0; A = np.zeros((len(D), W), np.float32); Hh = np.zeros_like(A) + for k, dk in enumerate(D): + h = hfun(dk, az); Hh[k] = h; A[k] = np.degrees(np.arctan2(h - EYE - dk * dk / (2 * ridge.R_EARTH) * (1 - ridge.KREF), dk)) + return A, Hh +def theta(h, d): return math.degrees(math.atan2(h - EYE - d * d / (2 * ridge.R_EARTH) * (1 - ridge.KREF), d)) +def in_arc(az, a0, a1): return ((az - a0) % 360.0) <= ((a1 - a0) % 360.0) +def block(a0, a1, d0, d1, h): return lambda dk, az: np.where(in_arc(az, a0, a1) & (dk >= d0) & (dk < d1), h, 0.0) +def terrain(*blocks): return lambda dk, az: np.maximum.reduce([np.full_like(az, GROUND)] + [np.asarray(b(dk, az), float) for b in blocks]) +def slot_at(r, col, ang): + """the slot whose top at `col` is closest to `ang` (the layer that owns the block)""" + return min(r['slots'], key=lambda S: abs(S['top'][col] - ang)) +def jump_bound(S, x, w=26): + """steepest step allowed inside a taper: smoothstep slope 1.5 x the end drop / taper_len(drop) (+ margin), the end drop taken as max((highest top within w columns) - lo, 0.4)""" + seg = S['top'][[(x + k) % W for k in range(-w, w + 1)]]; drop = max(seg.max() - S['lo'][x], 0.4); return 1.6 * drop / float(taper_len(drop)) + 0.02 # the taper always falls at least 0.4 deg (top - 0.4 when the valley is shallower) +def active_pairs(S): return [x for x in range(W) if S['wt'][x] > 0 and S['wt'][(x + 1) % W] > 0] +def test_plateau_has_no_spike_and_no_cliff_beyond_taper(): + """Flat-topped plateau, az 100-140, 20-24 km, 900 m. Right answer: top = theta(900, 20 km) inside, nothing above it anywhere, outside the plateau the top only falls + (monotonically, within the taper), and no single-column step exceeds the taper bound.""" + A, Hh = rays(terrain(block(100, 140, 20000, 24000, 900))); r = ridge.sweep(D, A, Hh); th = theta(900, 20000) + S = slot_at(r, col_of(120), th); top = S['top'] + inside = np.arange(col_of(101), col_of(139)); assert np.abs(top[inside] - th).max() < 0.03, ('plateau top not flat/right', np.abs(top[inside] - th).max()) + assert top.max() <= th + 0.03, ('spike above the plateau', top.max() - th) + for side in (-1, 1): + x0 = col_of(100) if side < 0 else col_of(140) + n = int(taper_len(max(th - S['lo'][col_of(120)], 0.4))); seg = np.array([top[(x0 + side * j) % W] for j in range(1, n)]) + assert (np.diff(seg) <= 1e-9).all(), ('taper is not monotone away from the plateau', side, np.diff(seg).max()) + assert seg[-1] < seg[0] - 0.3, 'taper does not die away' + assert S['wt'][(x0 + side * (n + 3)) % W] == 0, 'the layer is still drawn far outside the plateau' + j = np.abs(np.diff(top, append=top[0])); bad = [(x, round(float(j[x]), 3)) for x in active_pairs(S) if j[x] > jump_bound(S, x)]; assert not bad, ('column jump above the bound', bad[:5]) + drop = th - S['lo'][col_of(120)]; width = int(((S['wt'] > 0) & (S['wt'] < 1))[col_of(140):col_of(140) + 90].sum()); assert drop > 1.5 and width >= 0.9 * min(72, 30 * drop), ('a tall end must fall over ~30 columns per degree of drop up to 72 (absolute, not the constant) (its drop is %.2f deg)' % drop, width) + +def test_ridge_whose_two_ends_differ_does_not_borrow_the_far_end(): + """Plateau az 100-140 whose height climbs 600 -> 1200 m with azimuth. Right answer: left of the left end nothing is higher than the left end's own top, right of the right end + nothing is higher than the right end's top (the round-1 bug held the END value on both sides: a 0.9 deg step on the low side).""" + hfun = lambda dk, az: np.where(in_arc(az, 100, 140) & (dk >= 20000) & (dk < 24000), 600.0 + 600.0 * np.clip((az - 100.0) / 40.0, 0, 1), 0.0) + A, Hh = rays(terrain(hfun)); r = ridge.sweep(D, A, Hh); tl, tr = theta(600, 20000), theta(1200, 20000) + S = slot_at(r, col_of(120), (tl + tr) / 2); top = S['top']; xl, xr = col_of(100), col_of(140) + left = top[[(xl - j) % W for j in range(0, TAPER_MAX + 3)]]; right = top[[(xr + j) % W for j in range(0, TAPER_MAX + 3)]] + assert left.max() <= tl + 0.05, ('left of the low end rises above it', left.max() - tl) + assert right.max() <= tr + 0.05 and right[0] >= tr - 0.1, ('right end value wrong', right[:3]) + assert (np.diff(left) <= 1e-9).all() and (np.diff(right) <= 1e-9).all(), 'tapers are not monotone' + +def test_slot_union_only_lets_present_chains_compete(): + """Two chains in one slot: L1 present on cols 0-99 (top 0.2), L2 present on cols 200-299 (top 2.0) but its HELD value elsewhere is 0.5 > 0.2. Right answer: on cols 0-99 + the slot is L1 (top 0.2, wt 1); a chain that is absent there must not win with its held value.""" + def lay(c0, c1, top, held): + wt = np.zeros(W); wt[c0:c1] = 1.0; tp = np.full(W, held); tp[c0:c1] = top + return dict(top=tp, lo=np.full(W, -1.0), ph=np.full(W, 100.0), vh=np.full(W, 0.0), slope=np.full(W, 5.0), wt=wt, pd=np.full(W, 20000.0), vd=np.full(W, 19000.0), hd=np.full((ridge.NH, W), 19500.0), hh=np.full((ridge.NH, W), 50.0), dist=20000.0) + S = ridge.to_slots([lay(0, 100, 0.2, -1.0), lay(200, 300, 2.0, 0.5)]) + assert len(S) == 1 and (S[0]['wt'][0:100] == 1).all() and np.allclose(S[0]['top'][0:100], 0.2), ('absent chain won the slot union', S[0]['top'][:3], S[0]['wt'][:3]) + assert (S[0]['wt'][200:300] == 1).all() and np.allclose(S[0]['top'][200:300], 2.0) + +def S_ok(S, i): return S['wt'][i] > 0 and S['wt'][(i + 1) % W] > 0 +def test_step_cliff_is_one_step_and_levels_are_right(): + """Two plateaus side by side, 700 m (az 60-180) then 1300 m (180-300). Right answer: level theta_A left, theta_B right, one step at az 180 (col 3200).""" + A, Hh = rays(terrain(block(60, 180, 20000, 24000, 700), block(180, 300, 20000, 24000, 1300))); r = ridge.sweep(D, A, Hh) + tA, tB = theta(700, 20000), theta(1300, 20000); x = col_of(180) + SA = slot_at(r, col_of(120), tA); top = SA['top'] + assert np.abs(top[col_of(62):x - TAPER_MAX - 2] - tA).max() < 0.03, 'level A wrong' + assert np.abs(top[x + 2:col_of(298)] - tB).max() < 0.03, 'level B wrong' + assert top.max() <= tB + 0.03, 'spike above the higher plateau' + j = np.abs(np.diff(top)); ends = (col_of(60), col_of(300)); big = [i for i in np.where(j > 0.2)[0] if S_ok(SA, i) and not (x - TAPER_MAX - 2 <= i <= x + 2) and min(abs(i - e) for e in ends) > TAPER_MAX + 2] + assert not big, ('a jump away from the step and the two outer ends', big[:6]) + assert (top[x - TAPER_MAX - 2:x + 3].max() - tA) <= (tB - tA) + 0.03 + +def test_single_peak_has_one_maximum(): + """Gaussian peak 1800 m at az 90, 30 km, sigma 1.5 km. Right answer: one maximum at az 90 +-0.2, monotone either side inside the chain, no secondary bump.""" + def peak(dk, az): + lat = dk * np.sin(np.radians(az - 90.0)); return 1800.0 * np.exp(-(lat ** 2 + (dk - 30000.0) ** 2) / (2 * 1500.0 ** 2)) + A, Hh = rays(terrain(peak)); r = ridge.sweep(D, A, Hh); top_peak = theta(1800, 30000) + S = max(r['slots'], key=lambda S: S['top'][col_of(90)]); top = S['top'] + xm = int(np.argmax(top[col_of(60):col_of(120)])) + col_of(60); assert abs(az_of(xm) - 90.0) < 0.25, ('maximum at', az_of(xm)) + assert abs(top[xm] - top_peak) < 0.1, (top[xm], top_peak) + seg = top[col_of(60):col_of(120)]; peaks = [i for i in range(1, len(seg) - 1) if seg[i] >= seg[i - 1] and seg[i] > seg[i + 1] and (seg[i] - min(seg[max(0, i - 30):i + 30])) > 0.01] + assert len(peaks) == 1, ('secondary local maxima', len(peaks)) + +def test_wraparound_ridge_across_north_is_seamless_and_rotation_invariant(): + """Plateau az 350 -> 10 (across 0/360). Right answer: flat top, no step across the seam, one chain crossing it, and the result does not depend on where column 0 is.""" + A, Hh = rays(terrain(block(350, 10, 20000, 24000, 900))); r = ridge.sweep(D, A, Hh); th = theta(900, 20000) + S = slot_at(r, 0, th); top = S['top'] + assert abs(top[W - 1] - top[0]) < 0.003, ('seam step', top[W - 1] - top[0]) + assert np.abs(top[[col_of(351), col_of(355), W - 1, 0, col_of(5), col_of(9)]] - th).max() < 0.03 + near20 = [l for l in r['keep'] if abs(math.log(l['dist'] / 20000.0)) < 0.3] + assert len(near20) == 1 and near20[0]['x0'] + near20[0]['span'] > W, ('the 20 km plateau must be ONE chain crossing the seam', [(l['x0'], l['span']) for l in near20]) + R = 1600; r2 = ridge.sweep(D, np.roll(A, -R, axis=1), np.roll(Hh, -R, axis=1)) + for S1 in r['slots']: + S2 = next(s for s in r2['slots'] if s['slot'] == S1['slot']); d = np.abs(np.roll(S2['top'], R) - S1['top']).max(); assert d < 1e-9, ('not rotation invariant', S1['slot'], d) + +def test_vienna_skyline_has_no_invented_jump_and_seam_is_seamless(): + """Real bake: no per-column step above the stated bound. In a chain (wt == 1) a step above 0.12 deg is allowed only if both columns carry the raw span peak that wins there (a real step of the DEM, e.g. a roof edge); in a taper the + steepest allowed step is 1.6 x (top-lo)/TAPER + 0.02. The envelope across the seam must not jump.""" + saved = ridge.P + ridge.configure(ridge.load_preset('vienna')); d, A, Hh, _ = ridge.stage0(False) # cached under the key of its own inputs (computed once if absent) + ridge.P = dict(id='vienna', rmax_km=95); r = ridge.sweep(d, A, Hh); ridge.P = saved + worst = []; cols = r['cols'] + real = lambda x, top: any(abs(s[0] - top) < 1e-4 for s in cols[x % W]) # the top at x is an actual raw span peak: a step between two such columns is a step of the DEM + for S in r['slots']: + j = np.abs(np.diff(S['top'], append=S['top'][0])) + for x in active_pairs(S): + bound = jump_bound(S, x) if min(S['wt'][x], S['wt'][(x + 1) % W]) < 1 else 0.12 + if j[x] > bound and not (S['wt'][x] == 1 and S['wt'][(x + 1) % W] == 1 and real(x, S['top'][x]) and real(x + 1, S['top'][(x + 1) % W])): + worst.append((S['slot'], x, round(float(j[x]), 3), round(float(bound), 3), round(float(S['wt'][x]), 2))) + assert not worst, ('Vienna jumps above the bound', worst[:6]) + sky = np.max([S['top'] for S in r['slots']], axis=0); assert abs(sky[W - 1] - sky[0]) < 0.05, ('envelope jumps across the seam', sky[W - 1] - sky[0]) + for S in r['slots']: + if S['wt'][W - 1] > 0 and S['wt'][0] > 0: assert abs(S['top'][W - 1] - S['top'][0]) < 0.05, ('layer jumps across the seam', S['slot']) + +def _shadow_fixture(): + """flat 100 m terrain with one 1000 m wall at lat 48.45-48.46 (5.6-6.7 km north of the sample point), sample point lat 48.40 lon 16.5 at 103 m""" + m = np.full((3600, 3600), 100.0, np.float32); y0 = int((49 - 48.46) * 3600); y1 = int((49 - 48.45) * 3600); m[y0:y1, :] = 1000.0 + ridge.P = dict(id='syn', lat=48.40, lon=16.5, rmax_km=60); ridge._mos[('syn', ridge.mosaic_key(ridge.P))] = (m, 49, 16) + return [dict(spts=dict(lat=np.full((3, W), 48.40), lon=np.full((3, W), 16.5), h=np.full((3, W), 103.0)))] +def test_cast_shadow_follows_the_sun_ray_over_the_dem(): + """Right answer: sun due north at 5 deg: the ray is 580 m at the wall, the wall is 1000 m => fully shadowed (1.0). Sun due north at 30 deg clears the wall (0.0). Sun due south: the wall is behind the sun (0.0). + Sun at 0.2 deg: no direct light, no shadow (0.0).""" + L = _shadow_fixture(); f = lambda az, el: float(ridge.cast_shadows(L, az, el)[0].mean()) + assert f(0.0, 5.0) > 0.99, ('wall does not shadow a low sun behind it', f(0.0, 5.0)) + assert f(0.0, 30.0) < 0.01, ('high sun clears the wall', f(0.0, 30.0)) + assert f(180.0, 5.0) < 0.01, ('wall casts a shadow toward the sun', f(180.0, 5.0)) + assert f(0.0, 0.2) == 0.0 + +def test_cast_shadow_east_west_and_longitude_scale(): + """Wall of 1000 m at lon 16.575-16.585 (5.5-6.2 km EAST of the sample point at lat 48.4, cos(lat) matters), flat 100 m elsewhere. Sun due east at 5 deg: shadowed (580 m ray vs 1000 m). + Sun due west: clear. Without the cos(lat) factor the wall would sit at 8.3 km and a 6 deg ray (980 m) would barely touch it, so the fully-shadowed assertion at 6 deg pins the scale.""" + m = np.full((3600, 3600), 100.0, np.float32); x0 = int((16.575 - 16) * 3600); x1 = int((16.585 - 16) * 3600); m[:, x0:x1] = 1000.0 + ridge.P = dict(id='syn2', lat=48.40, lon=16.5, rmax_km=60); ridge._mos[('syn2', ridge.mosaic_key(ridge.P))] = (m, 49, 16) + L = [dict(spts=dict(lat=np.full((3, W), 48.40), lon=np.full((3, W), 16.5), h=np.full((3, W), 103.0)))]; f = lambda az, el: float(ridge.cast_shadows(L, az, el)[0].mean()) + assert f(90.0, 5.0) > 0.99, ('east wall does not shadow a low east sun', f(90.0, 5.0)) + assert f(270.0, 5.0) < 0.01, ('east wall shadows a west sun', f(270.0, 5.0)) + assert f(90.0, 6.0) > 0.99 and f(90.0, 12.0) < 0.01, ('east-wall shadow edge is at the wrong elevation (wall is 5.5 km east of the point: the sun ray at 6 deg is 660 m there, at 12 deg 1.2 km)', f(90.0, 6.0), f(90.0, 12.0)) + +def test_shadow_darkens_the_face_it_covers(): + """Whole pipeline on a synthetic ramp (slope 0.35, lit by the relief light): with the shadow march forced to 1 every face pixel is darker than with it forced to 0 (the shadow removes direct sun); forced 0 equals shadows off.""" + A, Hh = rays(terrain(lambda dk, az: np.where(in_arc(az, 100, 140) & (dk >= 20000) & (dk < 24000), 50.0 + 0.35 * (dk - 20000), 0.0))); ridge.P = dict(id='synthetic', rmax_km=60, lat=48.0, lon=16.0, floor_agl_m=30.0, s_ref_deg=8.0, win0=(col_of(120) - 640) % W) + r = ridge.sweep(D, A, Hh); ridge.set_view(r['slots']); L = ridge.bake(r['slots']); pf = ridge.statics(); real = ridge.cast_shadows + try: + ridge.cast_shadows = lambda layers, az, el: [np.ones((3, W)) for _ in layers]; dark = ridge.relight(L, 300.0, 30.0, *pf) + ridge.cast_shadows = lambda layers, az, el: [np.zeros((3, W)) for _ in layers]; lit = ridge.relight(L, 300.0, 30.0, *pf) + finally: ridge.cast_shadows = real + off = ridge.relight(L, 300.0, 30.0, *pf, shadows=False); c = slice(col_of(105), col_of(135)); rows = slice(0, ridge.H); Ly = max(L, key=lambda l: ((l['m'][rows, c] > 0.99) & (l['w'][rows, c] < 0.05)).sum()); m = (Ly['m'][rows, c] > 0.99) & (Ly['w'][rows, c] < 0.05) # body pixels (not the mist foot) of the layer that owns the plateau + assert m.any(), 'no solid face pixels to compare' + assert dark[rows, c][m].mean() < lit[rows, c][m].mean() - 0.02, ('shadow does not darken the face', dark[rows, c][m].mean(), lit[rows, c][m].mean()) + assert np.abs(lit - off).max() < 1e-4, 'a zero shadow differs from shadows off' + +# ---------------------------------------------------------------------------------------- shading fixtures (round 3): the face history -> per-pixel normal +def _bake_view(hfun, az0): + A, Hh = rays(terrain(hfun)); ridge.P = dict(id='synthetic', rmax_km=60, lat=48.0, lon=16.0, floor_agl_m=30.0, s_ref_deg=8.0, win0=(col_of(az0) - 640) % W) + r = ridge.sweep(D, A, Hh); ridge.set_view(r['slots']); return r, ridge.bake(r['slots']) +def _owner(r, L, col, ang): + S = slot_at(r, col, ang); return S, next(Ly for Ly in L if Ly['dist'] == S['dist']) +CONE = dict(Dc=20000.0, Rb=6000.0, Hc=1800.0, az0=90.0) +def _cone(dk, az): + E = dk * np.sin(np.radians(az)) - CONE['Dc'] * math.sin(math.radians(CONE['az0'])); N = dk * np.cos(np.radians(az)) - CONE['Dc'] * math.cos(math.radians(CONE['az0'])) + return np.where(np.hypot(E, N) < CONE['Rb'], CONE['Hc'] * (1 - np.hypot(E, N) / CONE['Rb']), 0.0) +def _cone_pixels(sun): + """(analytic n.L, baked n.L) at pixels of the cone layer: the analytic one marches the ray finely to the first sample whose running-max angle reaches the pixel's elevation and takes the cone's own normal there.""" + r, L = _bake_view(_cone, CONE['az0']); S, Ly = _owner(r, L, col_of(CONE['az0']), theta(CONE['Hc'], CONE['Dc'])); nd, _ = ridge.ndl_field(Ly, sun); dd = np.arange(500.0, 60000.0, 4.0); m = CONE['Hc'] / CONE['Rb']; out = [] + for x in range(300, 1000, 7): + c = (ridge.P['win0'] + x) % W + if S['wt'][c] < 1: continue + az = (c + 0.5) / W * 360.0; h = _cone(dd, np.full_like(dd, az)); ang = np.degrees(np.arctan2(h - EYE - dd * dd / (2 * ridge.R_EARTH) * (1 - ridge.KREF), dd)); rm = np.maximum.accumulate(ang) + for f in (0.6, 0.7, 0.8, 0.9, 0.95): + row = int(round((ridge.TOP_DEG - (Ly['lo'][c] + f * (Ly['ang'][c] - Ly['lo'][c]))) * ridge.PXDEG_V - 0.5)); d = dd[min(np.searchsorted(rm, ridge.rowang[row]), len(dd) - 1)] + E = d * math.sin(math.radians(az)) - CONE['Dc'] * math.sin(math.radians(CONE['az0'])); N = d * math.cos(math.radians(az)) - CONE['Dc'] * math.cos(math.radians(CONE['az0'])); rr = math.hypot(E, N) + if rr >= 0.85 * CONE['Rb']: continue # on the cone proper, away from the foot kink (the +-2 node slope window rounds the kink) + n = np.array([m * E / rr, m * N / rr, 1.0]); n /= np.linalg.norm(n); out.append((float(n @ sun), float(nd[row, c]))) + return np.array(out), Ly, nd +def test_cone_is_shaded_per_pixel_with_the_analytic_normal(): + """Cone (apex 1800 m, base radius 6 km, 20 km away), sun from the west at 20 deg. Right answer: the shading of each pixel is the cone's own n.L at the point that pixel sees, so it changes down every + column (the radial direction turns as the ray climbs) and across the face; the round-2 baker stored ONE slope per peak and gave every pixel of a column the same value (within-column std 0).""" + sun = ridge.sun_vec(250.0, 20.0); v, Ly, nd = _cone_pixels(sun); assert len(v) > 100, len(v) + err = np.abs(v[:, 0] - v[:, 1]); assert np.median(err) < 0.05 and err.mean() < 0.07, ('baked n.L is not the analytic one', np.median(err), err.mean()) + assert np.ptp(v[:, 1]) > 0.8 * np.ptp(v[:, 0]), ('baked shading range is compressed', np.ptp(v[:, 1]), np.ptp(v[:, 0])) + cs = [nd[int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 6:int((ridge.TOP_DEG - Ly['lo'][c]) * ridge.PXDEG_V) - 6, c].std() for c in (ridge.P['win0'] + np.arange(400, 900, 20)) % W] + assert np.mean(cs) > 0.03, ('shading is constant down a column', np.mean(cs)) + +def test_plane_face_has_the_planes_slope_and_no_lateral_tilt(): + """Planar ramp facing the viewer, az 60-120, rising 0.35 per metre of distance from 20 km to 24 km, then a drop. Right answer: every face pixel's front slope is 0.35 (19.3 deg) and its lateral tilt is 0, + whatever its row (one slope per peak could not tell a plane from a curved face, only the history can).""" + ramp = lambda dk, az: np.where(in_arc(az, 60, 120) & (dk >= 20000) & (dk < 24000), 50.0 + 0.35 * (dk - 20000), 0.0) + r, L = _bake_view(ramp, 90.0); S, Ly = _owner(r, L, col_of(90), theta(50.0 + 0.35 * 4000, 24000)); cols = (ridge.P['win0'] + np.arange(560, 720)) % W + rows = np.arange(int((ridge.TOP_DEG - Ly['ang'][col_of(90)]) * ridge.PXDEG_V) + 8, int((ridge.TOP_DEG - 1.0) * ridge.PXDEG_V)); sl = Ly['sl'][np.ix_(rows, cols)]; la = Ly['la'][np.ix_(rows, cols)] + assert len(rows) > 20 and abs(np.median(sl) - 0.35) < 0.03 and np.percentile(np.abs(sl - 0.35), 90) < 0.08, ('front slope is not the plane\'s', np.median(sl), np.percentile(np.abs(sl - 0.35), 90)) + assert np.abs(la).max() < 0.08, ('lateral tilt on a plane', np.abs(la).max()) + +def test_ridge_step_tilts_the_face_only_at_the_step(): + """Two plateaus (700 m / 1300 m) meeting at az 180. Right answer: the face is level laterally (la ~ 0) away from the step, and strongly tilted at it (the height changes by 600 m between two neighbouring columns).""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 60, 180) & (dk >= 20000) & (dk < 24000), 700.0, np.where(in_arc(az, 180, 300) & (dk >= 20000) & (dk < 24000), 1300.0, 0.0)), 180.0) + S, Ly = _owner(r, L, col_of(120), theta(700, 20000)); cols = lambda a, b: (ridge.P['win0'] + np.arange(a, b)) % W; rows = slice(int((ridge.TOP_DEG - theta(1300, 20000)) * ridge.PXDEG_V), int((ridge.TOP_DEG - 0.3) * ridge.PXDEG_V)) + far = np.abs(Ly['la'][rows, :][:, cols(200, 500)]); assert far.max() < 0.05, ('lateral tilt away from the step', far.max()) + near = Ly['la'][rows, :][:, cols(620, 660)]; assert np.abs(near).max() > 0.2, ('no tilt at the step', np.abs(near).max()) + +def test_roof_height_bump_in_the_foreground_is_not_a_ridge(): + """Flat ground with a 19 m x 40 m block 700 m away (a roof / tree in a DSM). Right answer: no layer: a peak needs PROM_M (25 m) of height over its valley, and the 4 km NEAR_CAP shoulder rule obeys the same + rule (round 2 committed the shoulder with no prominence test: an arch 66 columns wide stood in the foreground). A 60 m block IS a ridge.""" + bump = lambda h: (lambda dk, az: np.where(in_arc(az, 88, 92) & (dk >= 700) & (dk < 740), GROUND + h, 0.0)) + A, Hh = rays(terrain(bump(19.0))); r = ridge.sweep(D, A, Hh); assert not [l for l in r['keep'] if l['dist'] < 4000], ('a 19 m bump became a ridge', [(l['x0'], l['span'], round(l['dist'])) for l in r['keep']]) + A, Hh = rays(terrain(bump(60.0))); r = ridge.sweep(D, A, Hh); assert [l for l in r['keep'] if l['dist'] < 1000], 'a 60 m block must be a ridge' + +def test_contour_lines_are_never_denser_than_9_px_over_most_of_the_face(): + """Right answer (cone): the iso-height lines drawn on a layer are at least CONTOUR_MIN_PX apart over three quarters of its face (round 2 picked the interval from the SHALLOWEST columns, so the steep centre + of the mountain carried a line every 2-3 px: the fine horizontal banding).""" + r, L = _bake_view(_cone, CONE['az0']); S, Ly = _owner(r, L, col_of(CONE['az0']), theta(CONE['Hc'], CONE['Dc'])); sp = [] + for c in (ridge.P['win0'] + np.arange(450, 850, 10)) % W: + r0, r1 = int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 4, int((ridge.TOP_DEG - Ly['lo'][c]) * ridge.PXDEG_V) - 4; line = np.where(Ly['dpx'][r0:r1, c] < 0.5)[0] + if len(line) > 1: g = np.diff(line); sp += list(g[g > 1]) + assert len(sp) > 20 and np.percentile(sp, 25) >= 8, ('contour lines too dense', np.percentile(sp, 25), len(sp)) + +def test_no_layer_paints_a_wall_down_the_frame(): + """Right answer: a layer's alpha is 0 further below its own crest than its foot allows (<= 210 px): its column boundary leaves no vertical edge through the floor (round 2 painted the body to the bottom of the + frame wherever the chain existed: hard walls below every chain end).""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 100, 140) & (dk >= 20000) & (dk < 24000), 900.0, 0.0), 120.0) + for Ly in L: below = np.arange(ridge.H)[:, None] - (ridge.TOP_DEG - Ly['ang'])[None, :] * ridge.PXDEG_V; assert Ly['a'][below > 215].max() == 0, ('layer painted below its foot', Ly['rank']) + S = max(r['slots'], key=lambda S: S['top'][col_of(120)]) + for Ly in L: + if Ly['dist'] != S['dist']: continue + end = [c for c in range(W) if 0 < S['wt'][c] < 0.12]; assert end, 'fixture has no taper end' + bad = [(c, int((Ly['a'][:, c] > 0.1).sum())) for c in end if (Ly['a'][:, c] > 0.1).sum() > 0.85 * max(Ly['ang'][c] - Ly['lo'][c], 0) * ridge.PXDEG_V + 4]; assert not bad, ('a chain end hangs a curtain thicker than the ridge is tall', bad[:4]) + +def test_slot_is_rotation_invariant_in_columns_where_no_chain_is_present(): + """Two plateaus in one distance slot (az 100-110 at 700 m, az 200-215 at 1100 m, both 20-24 km). Right answer: rotating the ring by 1600 columns changes nothing, in EVERY column of the slot including those where no chain is present + (round 3 first picked the first chain in list order there; list order depends on where column 0 is, and those values feed the blurs at every chain end: Half Dome's rotation test went from 0 to 97 px).""" + A, Hh = rays(terrain(block(100, 110, 20000, 24000, 700), block(200, 215, 20000, 24000, 1100))); r = ridge.sweep(D, A, Hh); R = 2800; r2 = ridge.sweep(D, np.roll(A, -R, axis=1), np.roll(Hh, -R, axis=1)) # 2800 columns carries the az 200-215 block through column 0: the chains swap places in list order + for S1 in r['slots']: + S2 = next(s for s in r2['slots'] if s['slot'] == S1['slot']) + for k in ('top', 'lo', 'wt', 'pd', 'ph', 'vh', 'slope'): assert np.abs(np.roll(S2[k], R) - S1[k]).max() < 1e-9, ('slot not rotation invariant', S1['slot'], k, np.abs(np.roll(S2[k], R) - S1[k]).max()) + for k in ('hd', 'hh'): assert np.abs(np.roll(S2[k], R, axis=1) - S1[k]).max() < 1e-6, ('slot history not rotation invariant', S1['slot'], k) + +def test_prominent_far_ridge_behind_a_basin_is_found(): + """Terrace (50 m, eye 100 m) ending at 10 km, a 0 m basin, a 60 m ridge at 30 km (az 80-100). Right answer: the ridge is a layer at 30 km: it stands 0.5 deg above its visible valley, which is 4 times the 25 m / 30 km bar of 0.048 deg. + (Round 3's first cut compared raw heights, ridge 60 m vs the valley's 0 m... and lost ridges whose valley sample is near and high.)""" + hf = lambda dk, az: np.where(dk < 10000, 50.0, np.where(in_arc(az, 80, 100) & (dk >= 30000) & (dk < 30500), 60.0, np.where(in_arc(az, 80, 100) & (dk >= 50000) & (dk < 55000), 300.0, 0.0))) # the 300 m wall at 50 km keeps the ridge from being committed as the ray's last peak + A, Hh = rays(hf); r = ridge.sweep(D, A, Hh); far = [l for l in r['keep'] if abs(l['dist'] - 30000) < 1500]; assert far and far[0]['span'] > 200, ('the 30 km ridge is missing', [(l['x0'], l['span'], round(l['dist'])) for l in r['keep']]) + +def test_lone_foreground_stub_is_kept_but_a_stub_inside_a_near_ridge_is_not(): + """(a) a 0.5 deg wide, 60 m block at 1.7 km with nothing else near: the nearest layer must cover it (a hole would show the far ridge's body). (b) the same stub in front of a long near ridge (az 100-160, 150 m, 1.5 km): + its columns are covered by that ridge, so it is dropped (round 2 kept every foreground stub: lone arches).""" + A, Hh = rays(terrain(block(90, 90.5, 1700, 1740, 110))); r = ridge.sweep(D, A, Hh); assert [l for l in r['keep'] if l['dist'] < 2500], 'lone foreground stub dropped: hole in the nearest layer' + A, Hh = rays(terrain(block(100, 160, 1500, 1600, 150), block(129, 129.5, 600, 640, 160))); r = ridge.sweep(D, A, Hh); assert not [l for l in r['keep'] if l['dist'] < 1000], ('a stub inside a near ridge became an arch', [(l['x0'], l['span'], round(l['dist'])) for l in r['keep']]) + +def test_tilted_plane_has_the_planes_front_slope_and_lateral_tilt(): + """Plane h = 50 + 0.3 (E - 20000) - 0.2 N over az 85-95, 20-24 km, then a drop. At az 90 the radial is +E and the tangent is -N, so n ~ (-0.3 r - la t, 1) with la = -(dh/dN) = +0.2. Right answer: front slope 0.3, lateral tilt 0.2, each within 0.04 + (a lateral scale of 2x, or no tilt, fails).""" + def plane(dk, az): + E = dk * np.sin(np.radians(az)); N = dk * np.cos(np.radians(az)); return np.where(in_arc(az, 85, 95) & (dk >= 20000) & (dk < 24000), 50.0 + 0.3 * (E - 20000.0) - 0.2 * N, 0.0) + r, L = _bake_view(plane, 90.0); S, Ly = _owner(r, L, col_of(90), theta(50.0 + 0.3 * 4000, 24000)); cols = (ridge.P['win0'] + np.arange(600, 680)) % W + rows = np.arange(int((ridge.TOP_DEG - Ly['ang'][col_of(90)]) * ridge.PXDEG_V) + 8, int((ridge.TOP_DEG - 1.0) * ridge.PXDEG_V)); sl = Ly['sl'][np.ix_(rows, cols)]; la = Ly['la'][np.ix_(rows, cols)] + assert len(rows) > 15 and abs(np.median(sl) - 0.3) < 0.04 and abs(np.median(la) - 0.2) < 0.04, ('plane slope / tilt wrong', np.median(sl), np.median(la)) + +def test_history_keeps_only_what_the_eye_sees(): + """Samples (angle, distance, height): (0, 100, 0) (2, 200, 10) (1, 300, 5) (1.5, 350, 8) (3, 400, 30). The third and fourth are hidden behind the second (the fourth RISES from the third, so only a running maximum drops it). Right answer: at elevation 2.5 the face is half way between the second and the fourth sample: distance 300, height 20 + (without the running maximum the non-monotone angles make the interpolation garbage).""" + d, h = ridge.strip_history([0.0, 2.0, 1.0, 1.5, 3.0], [100.0, 200.0, 300.0, 350.0, 400.0], [0.0, 10.0, 5.0, 8.0, 30.0], 0, 4); t = np.linspace(0, 3.0, ridge.NH); k = int(np.argmin(np.abs(t - 2.5))) + assert abs(d[k] - (200 + 200 * (t[k] - 2) / 1.0)) < 1e-6 and abs(h[k] - (10 + 20 * (t[k] - 2) / 1.0)) < 1e-6 and d[0] == 100 and d[-1] == 400, (d[k], h[k]) + +def test_no_lateral_tilt_across_an_occlusion_edge(): + """Block A (az 60-130, 15 km out, 700 m) and block B (az 110-180, 21 km out, 940 m): the same top angle, the same distance slot, so the slot owner switches where their tapers cross. Right answer: at every column where the owner's + distance jumps by more than 2 km the two sides are not one surface, so the lateral tilt there is 0 (it saturated at the 1.5 clamp over ~8 columns on Matterhorn).""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 60, 130) & (dk >= 15000) & (dk < 19000), 700.0, np.where(in_arc(az, 110, 180) & (dk >= 21000) & (dk < 25000), 940.0, 0.0)), 120.0) + S, Ly = _owner(r, L, col_of(80), theta(700, 15000)); assert S['dist'] == ridge.KNOTS[3] + sw = [x for x in range(W - 1) if S['wt'][x] > 0 and S['wt'][x + 1] > 0 and abs(S['pd'][x + 1] - S['pd'][x]) > 2000]; assert sw, 'fixture has no owner switch' + for x in sw: + rows = np.arange(max(int((ridge.TOP_DEG - Ly['ang'][x]) * ridge.PXDEG_V) + 4, 0), min(int((ridge.TOP_DEG - Ly['lo'][x]) * ridge.PXDEG_V) - 4, ridge.H)); la = Ly['la'][np.ix_(rows, [x - 1, x, x + 1, x + 2])] + assert np.abs(la).max() < 0.5, ('tilt across an occlusion edge at column', x, np.abs(la).max()) + +# ---------------------------------------------------------------------------------------- relief light (round 3): n.L uses an authored light, colour / haze / shadows keep the real sun +def _gully(dk, az): + """A ramp facing the viewer (0.35 slope, az 50-130, 20-24 km) cut by gullies that run down the slope: height +300 m sin(2 pi N / 3 km), so the lateral tilt swings between -0.63 and +0.63 across the face.""" + N = dk * np.cos(np.radians(az)); return np.where(in_arc(az, 50, 130) & (dk >= 20000) & (dk < 24000), 50.0 + 0.35 * (dk - 20000) + 300.0 * np.sin(2 * np.pi * N / 3000.0), 0.0) +def _relief_probe(az_s, el_s): + """Relight the gullied ramp seen from az 90 with spies on ndl_field (the L it shades with and the n.L it returns for the ramp's layer) and on cast_shadows (the sun it marches toward). Returns (image, Ls, n.L of the ramp layer, shadow suns, layer).""" + r, L = _bake_view(_gully, 90.0); pf = ridge.statics(); S = max(r['slots'], key=lambda S: S['top'][col_of(90)]); Ly = next(l for l in L if l['dist'] == S['dist']); real_nd, real_cs = ridge.ndl_field, ridge.cast_shadows; Ls, nds, suns = [], [], [] + def nd_spy(layer, Lv): out = real_nd(layer, Lv); Ls.append(np.array(Lv)); nds.append((layer is Ly, out[0])); return out + def cs_spy(layers, az, el): suns.append((az, el)); return [np.zeros((3, W)) for _ in layers] + ridge.ndl_field, ridge.cast_shadows = nd_spy, cs_spy + try: img = ridge.relight(L, az_s, el_s, *pf) + finally: ridge.ndl_field, ridge.cast_shadows = real_nd, real_cs + return img, Ls, next(n for own, n in nds if own), suns, Ly +def _face_std(nd, Ly): + """n.L std over the ramp's face pixels (6 px under the crest down to 1 deg elevation), columns 500-780 of the window""" + return float(np.concatenate([nd[int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 6:int((ridge.TOP_DEG - 1.0) * ridge.PXDEG_V), c] for c in (ridge.P['win0'] + np.arange(500, 780, 5)) % W]).std()) +def test_sun_behind_the_viewer_still_models_the_face(): + """Gullied ramp seen from az 90, sun directly behind the viewer (az 270, 20 deg up). Lit head-on, a gully's two flanks shade alike (n.L std over the face 0.034 with the real sun as the shading light); + the relief light 45 deg off the axis lights one flank and leaves the other dim (0.23). Right answer: std over the face pixels > 0.12.""" + img, Ls, nd, suns, Ly = _relief_probe(270.0, 20.0); b = _face_std(nd, Ly); assert b > 0.12, ('face is flat with the sun behind the viewer', b) +def test_relief_light_is_45_deg_off_the_view_axis_on_the_suns_side(): + """View centre az 90 (the viewer looks east). The relief light is the view centre +/- 45 deg on the side of the view axis the real sun is on. Sun at az 300 (north of the axis, the viewer's left) -> relief az 90-45 = 45; + sun at az 240 (south, the viewer's right) -> relief az 90+45 = 135. Elevation is 25..40 deg (an absolute range, not the constant) both times, whatever the sun's elevation.""" + for sun_az, want in ((300.0, 45.0), (240.0, 135.0)): + _, Ls, _, _, _ = _relief_probe(sun_az, 25.0); assert Ls, 'no shading call'; L = Ls[0]; az = math.degrees(math.atan2(L[0], L[1])) % 360.0; el = math.degrees(math.asin(L[2])) + assert abs(az - want) < 0.5 and 25.0 <= el <= 40.0, ('relief direction wrong', sun_az, az, el) +def test_sun_elevation_changes_colour_but_not_the_relief_direction(): + """Same sun azimuth, elevation 10 deg vs 40 deg: the relief direction is identical, the picture is not (sun colour / haze / strength change), and at -10 deg (night) the face is darker than at 40.""" + i1, L1, nd1, _, Ly = _relief_probe(300.0, 10.0); i2, L2, nd2, _, _ = _relief_probe(300.0, 40.0); i3, _, _, _, _ = _relief_probe(300.0, -10.0) + assert np.abs(L1[0] - L2[0]).max() < 1e-12 and np.abs(nd1 - nd2).max() < 1e-12, 'the relief direction follows the sun elevation' + c = (ridge.P['win0'] + 640) % W; rows = slice(int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 8, int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 40) + assert np.abs(i1[rows, 640] - i2[rows, 640]).mean() > 0.01, 'colour does not follow the real sun'; assert i3[rows, 640].mean() < 0.6 * i2[rows, 640].mean(), ('night is not dark', i3[rows, 640].mean(), i2[rows, 640].mean()) +def test_cast_shadows_march_toward_the_real_sun_not_the_relief_light(): + """relight must hand cast_shadows the real sun's azimuth and elevation, not the relief light's.""" + _, _, _, suns, _ = _relief_probe(300.0, 17.0); assert suns == [(300.0, 17.0)], suns + +# ---------------------------------------------------------------------------------------- Soul round-3 survivors +def test_floor_band_has_no_column_wise_luminance_step(): + """Plateau az 100-140 (20-24 km) seen from az 120. Right answer: in the floor band (the frame's bottom 80 rows) no column differs from its neighbour by more than the grain (baseline 0.009, a painted wall 0.25): the compositor must use the layer's + alpha (body dissolved at the foot), not its mask (body to the bottom of the frame, a wall at every chain end).""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 100, 140) & (dk >= 20000) & (dk < 24000), 900.0, 0.0), 120.0); img = ridge.relight(L, 200.0, 20.0, *ridge.statics(), shadows=False) + lum = img @ np.array([0.2126, 0.7152, 0.0722]); st = np.abs(np.diff(lum[ridge.H - 80:], axis=1)).mean(0); assert st.max() < 0.03, ('wall: column-wise luminance step in the floor band', st.max(), int(np.argmax(st))) +def test_foot_fade_starts_at_60_percent_of_the_foot_and_the_body_is_opaque_above_it(): + """A layer's alpha is 1 down to 60% of its foot length, then smoothsteps to 0 at the foot. Right answer on a plateau column: rows with alpha > 0.99 / rows with alpha > 0.001 = 0.6 (+-0.04), and it has the full 210 px foot at most + (a fade that starts early makes the face translucent, one that starts late leaves a wall).""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 100, 140) & (dk >= 20000) & (dk < 24000), 900.0, 0.0), 120.0); S, Ly = _owner(r, L, col_of(120), theta(900, 20000)); a = Ly['a'][:, col_of(120)] + full, nz = int((a > 0.99).sum()), int((a > 0.001).sum()); assert nz > 100, nz; assert abs(full / nz - 0.6) < 0.04, ('fade does not start at 60% of the foot', full, nz) +def test_lateral_tilt_is_smoothed_across_columns(): + """Two plateaus (700 / 1300 m) meeting at az 180: the raw lateral tilt is a spike at the step. Right answer: the baked tilt is blurred over a few columns: no column-to-column change above 0.5 (unblurred: 0.9), and the tilt is still > 0.2 at the step.""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 60, 180) & (dk >= 20000) & (dk < 24000), 700.0, np.where(in_arc(az, 180, 300) & (dk >= 20000) & (dk < 24000), 1300.0, 0.0)), 180.0) + S, Ly = _owner(r, L, col_of(120), theta(700, 20000)); rows = slice(int((ridge.TOP_DEG - theta(1300, 20000)) * ridge.PXDEG_V), int((ridge.TOP_DEG - 0.3) * ridge.PXDEG_V)); la = np.abs(Ly['la'][rows, :][:, (ridge.P['win0'] + np.arange(600, 680)) % W]).max(0) + assert la.max() > 0.2 and np.abs(np.diff(la)).max() < 0.5, ('tilt not smoothed', la.max(), np.abs(np.diff(la)).max()) +def test_contour_interval_is_chosen_from_full_weight_columns_only(): + """Ramp (slope 1.0, az 110-130, 20-22 km) whose tapering ends carry coarser metres-per-pixel. Right answer: the contour spacing in the core is 9-10 px (interval from the chain's own face), not 13-14 (the taper columns pulled the percentile up). median <= 12 and p25 >= 8.""" + r, L = _bake_view(lambda dk, az: np.where(in_arc(az, 110, 130) & (dk >= 20000) & (dk < 22000), 50.0 + 1.0 * (dk - 20000), 0.0), 120.0); S, Ly = _owner(r, L, col_of(120), theta(2050, 22000)); sp = [] + for c in range(col_of(120) - 60, col_of(120) + 61, 6): + r0, r1 = int((ridge.TOP_DEG - Ly['ang'][c]) * ridge.PXDEG_V) + 4, int((ridge.TOP_DEG - Ly['lo'][c]) * ridge.PXDEG_V) - 4; line = np.where(Ly['dpx'][r0:r1, c] < 0.5)[0] + if len(line) > 1: g = np.diff(line); sp += list(g[g > 1]) + assert len(sp) > 100 and np.percentile(sp, 25) >= 8 and np.median(sp) <= 12, ('contour spacing', len(sp), np.percentile(sp, 25), np.median(sp)) +def test_spec_highlight_follows_the_half_vector_of_light_and_viewer(): + """spec_field against an independent evaluation: half vector H = normalise(L + V), V the unit vector back to the viewer (-r) in every column, n = (-sl r - la t + z)/|.|, GGX alpha 0.3. Two different lights, random faces: the field must match to 1e-9 + (a half vector that ignores the light, or any change of the lobe, shows).""" + rng = np.random.default_rng(5); sl = rng.uniform(-0.3, 1.2, (7, W)); la = rng.uniform(-0.6, 0.6, (7, W)); nrm = np.sqrt(1 + sl * sl + la * la); az = ridge.azrad(); r = np.stack([np.sin(az), np.cos(az), 0 * az], 1); t = np.stack([np.cos(az), -np.sin(az), 0 * az], 1) + for laz, lel in ((45.0, 32.0), (200.0, 15.0)): + Lv = ridge.sun_vec(laz, lel); ndl = (Lv[2] - sl * (r @ Lv)[None] - la * (t @ Lv)[None]) / nrm; got = ridge.spec_field(Lv, sl, la, nrm, ndl) + H = Lv[None, :] - r; H /= np.linalg.norm(H, axis=1, keepdims=True); nh = np.clip((H[:, 2][None] - sl * (r * H).sum(1)[None] - la * (t * H).sum(1)[None]) / nrm, 0, 1) + want = 0.30 * 0.0081 / (1 + nh * nh * (0.09 - 1)) ** 2 * np.clip(ndl, 0, 1) + assert np.abs(got - want).max() < 1e-9, ('spec does not match the half-vector model', laz, np.abs(got - want).max()) +def test_fresnel_rim_is_strongest_on_faces_that_lie_away_from_the_viewer(): + """fresnel(sl, nrm) = (1 - n.V)^3 with n.V = sl / |n|: 1 for a flat or back-leaning face (sl <= 0), falling monotonically to ~0 for a face that stands up at the viewer (sl = 5: 0.00001).""" + s = np.array([-1.0, 0.0, 0.2, 0.5, 1.0, 2.0, 5.0]); f = ridge.fresnel(s, np.sqrt(1 + s * s)) + assert f[0] == 1.0 and f[1] == 1.0 and (np.diff(f[1:]) < 0).all() and f[-1] < 1e-3, ('fresnel shape', f) +def test_cache_keys_follow_every_input_of_the_cached_array(): + """mosaic-/rays- cache files are keyed by a digest of their inputs. Right answer: identical inputs -> identical key (the preset id does not enter), a changed preset field (eye height, range, position), tile list or baker constant (refraction, detail noise) -> a different key.""" + saved = ridge.P + try: + base = dict(id='k1', lat=47.0, lon=11.0, rmax_km=40, eye_m=2000.0); ridge.P = dict(base); k0 = (ridge.rays_key(False), ridge.rays_key(True), ridge.mosaic_key(ridge.P)) + ridge.P = dict(base, id='other'); assert (ridge.rays_key(False), ridge.rays_key(True), ridge.mosaic_key(ridge.P)) == k0, 'the preset id changed the key' + for fld, v in (('eye_m', 2010.0), ('rmax_km', 41), ('lon', 11.001), ('lat', 47.001)): + ridge.P = dict(base, **{fld: v}); assert ridge.rays_key(False) != k0[0], ('rays key ignores', fld) + ridge.P = dict(base, lat=47.0, lon=13.5); assert ridge.mosaic_key(ridge.P) != k0[2], 'mosaic key ignores the tile list' + ridge.P = dict(base); old = ridge.KREF; ridge.KREF = 0.2 + try: assert ridge.rays_key(False) != k0[0], 'rays key ignores the refraction constant' + finally: ridge.KREF = old + old = ridge.DETAIL; ridge.DETAIL = dict(old, amp_m=30.0) + try: assert ridge.rays_key(True) != k0[1] and ridge.rays_key(False) == k0[0], 'detail key ignores the noise settings (or the plain key follows them)' + finally: ridge.DETAIL = old + finally: ridge.P = saved +def test_paths_come_from_the_environment_with_no_default(): + """Importing the baker without RIDGE_WORK / RIDGE_TILES fails with a message naming the variable (no location is assumed).""" + import subprocess; env = {k: v for k, v in os.environ.items() if not k.startswith('RIDGE_')} + for var in ('RIDGE_WORK', 'RIDGE_TILES'): + e = dict(env); e.update({'RIDGE_WORK': '.', 'RIDGE_TILES': '.'}); del e[var] + r = subprocess.run([sys.executable, '-I', '-c', 'import sys; sys.path.insert(0, %r); import ridge' % SRC], env=e, capture_output=True, text=True); assert r.returncode and var in r.stderr and 'not set' in r.stderr, (var, r.stderr[-200:]) + +# ---------------------------------------------------------------------------------------- planes export (export.py, ridge.relight_planes) +_before = {k for k in globals() if k.startswith('test_')} # the tests below are the planes/export tests tests/mutate_export.py runs against each mutant +import export, tempfile, json, shutil +def _three_slot_layers(): + """three blocks at 6, 20 and 50 km in the same azimuth range, each standing above the one before it in angle: three slots""" + blocks = [block(100, 140, 6000, 9000, 300), block(100, 140, 20000, 23000, 900), block(100, 140, 50000, 53000, 2500)] + r, L = _bake_view(terrain(*blocks), 120.0); ridge.P['floor_agl_m'] = 2.0; return r, L # a low floor plane: the nearest rows are solid ground +def _flat_layers(n): + """n slots, plane-grouping only needs the list length: the real layers of the 3-slot fixture, truncated / repeated""" + r, L = _three_slot_layers(); return [L[i % len(L)] for i in range(n)] +def _statics_flat_grain(): paperf, grain, fmot = ridge.statics(); return paperf, np.ones_like(grain), fmot +def _over(planes, sky): + img = np.broadcast_to(np.array(sky), planes[export.PLANES[0]].shape[:2] + (3,)).copy() + for n in export.PLANES: a = planes[n]; img = img * (1 - a[..., 3:]) + a[..., :3] * a[..., 3:] + return img +def test_the_far_plane_over_a_flat_sky_equals_the_opaque_relight_of_its_group(): + """The affine haze split is exact for one group: the far plane (floor + slot 0) over one flat colour equals relight of slot 0 alone with that colour as sky and haze (grain off, no shadows) within 1/255 mean and 4/255 max. + The planes carry no sky: above the ridge their alpha is 0.""" + r, L = _three_slot_layers(); f = _statics_flat_grain(); sun = (200.0, 40.0); sky = export.SHEET_SKY + planes = ridge.relight_planes(L, *sun, *f, shadows=False, ref=sky); img = _over(dict(far=planes['far'], mid=0 * planes['mid'], near=0 * planes['near']), sky) + want = ridge.win(ridge.relight(L[:1], *sun, *f, shadows=False, flat=sky)); d = np.abs(img - want) * 255 + assert d.mean() < 1.0 and d.max() < 4.0, ('the far plane over a flat sky differs from its opaque relight', d.mean(), d.max()) + assert planes['far'][0, :, 3].max() < 0.01 and planes['near'][0, :, 3].max() < 0.01, 'the top row (sky) is not transparent' +_VIENNA = {} +def _vienna_noon(): + """Real Vienna bake at noon: (planes over a flat sky as an error map in 1/255 per pixel, planes), cached for the tests that read it.""" + if not _VIENNA: + saved = ridge.P; ridge.configure(ridge.load_preset('vienna')); d, A, Hh, _ = ridge.stage0(False); r = ridge.sweep(d, A, Hh); ridge.set_view(r['slots']); L = ridge.bake(r['slots']); f = _statics_flat_grain() + sun = export.sun_set(ridge.P, ridge.P['date'])['noon']; sky = export.SHEET_SKY; planes = ridge.relight_planes(L, sun['az'], sun['el'], *f, shadows=False, ref=sky) + _VIENNA['err'] = np.abs(_over(planes, sky) - ridge.win(ridge.relight(L, sun['az'], sun['el'], *f, shadows=False, flat=sky))).mean(-1) * 255; _VIENNA['planes'] = planes; ridge.P = saved + return _VIENNA['err'], _VIENNA['planes'] +def test_stacked_planes_stay_close_to_the_opaque_relight_on_vienna_noon(): + """Real Vienna bake at noon, three planes over a flat sky vs relight(flat=that sky): the stacking loss (a nearer group's haze veils the farther plane instead of the sky) measured 4.9/255 mean over the frame; the bound is 6, + so a split that loses colour or alpha shows. The spec's 2/255 pin was not pursued (reported as a deviation); the loss is concentrated where planes overlap, see the next test.""" + err, _ = _vienna_noon(); assert err.mean() < 6.0, ('stacked planes drift from the opaque relight', err.mean()) +def test_stacked_planes_error_over_the_overlap_region_is_the_measured_leak(): + """Where a nearer plane covers a farther one (two or more planes with alpha above 1/100) the farther ridge shows through the nearer plane's haze: measured 21.8/255 mean over 22.6% of the frame on Vienna noon, bound 23. + Outside the overlap the planes are exact (0.004/255). The honest figure; it is the price of independent haze-as-alpha planes.""" + err, planes = _vienna_noon(); ov = sum((planes[n][..., 3] > 0.01).astype(int) for n in export.PLANES) >= 2 + assert 0.15 < ov.mean() < 0.30, ('the overlap region is not the 20-ish percent the bound was measured on', ov.mean()) + assert err[ov].mean() < 23.0, ('overlap-region error', err[ov].mean()); assert err[~ov].mean() < 0.1, ('error outside the overlap', err[~ov].mean()) +def test_plane_grouping_far_mid_near_and_refuses_fewer_than_three_slots(): + """far = slot 0, near = the last slot, mid = every slot between (the union); a 3-slot place fills all three planes; fewer than 3 slots are refused.""" + assert ridge.group_slots(3) == dict(far=[0], mid=[1], near=[2]) and ridge.group_slots(6) == dict(far=[0], mid=[1, 2, 3, 4], near=[5]) + for n in (0, 1, 2): + try: ridge.group_slots(n) + except ValueError: continue + assert False, ('a place with %d slots was accepted' % n) + r, L = _three_slot_layers(); f = _statics_flat_grain(); pl = ridge.relight_planes(L[:3], 200.0, 40.0, *f, shadows=False) + assert all(pl[n][..., 3].max() > 0.5 for n in export.PLANES), {n: float(pl[n][..., 3].max()) for n in export.PLANES} + try: ridge.relight_planes(L[:2], 200.0, 40.0, *f, shadows=False) + except ValueError: pass + else: assert False, 'a 2-slot place was relit into planes' +def test_straight_alpha_planes_unpremultiply_the_composite(): + """Planes carry straight (un-premultiplied) colour: the mid plane (slot 1, 16 km) and the near plane (slot 2, 5 km) each alone over a flat sky equal the opaque relight of that one slot over the same sky, on the rows + above the horizon (the floor belongs to the far plane). Their bodies are translucent (the haze share is alpha's deficit), so premultiplied colour would be darker by alpha and fail by tens of 1/255. u8() keeps colour and alpha apart.""" + a = np.zeros((2, 2, 4), np.float32); a[0, 0] = (0.5, 0.25, 0.75, 0.5); b = export.u8(a); assert tuple(b[0, 0]) == (128, 64, 191, 128) and tuple(b[1, 1]) == (0, 0, 0, 0) + r, L = _three_slot_layers(); f = _statics_flat_grain(); sun = (200.0, 40.0); sky = export.SHEET_SKY; pl = ridge.relight_planes(L, *sun, *f, shadows=False, ref=sky); top = int((ridge.rowang >= 0).sum()) + for name, i in (('mid', 1), ('near', 2)): + got = _over({n: (pl[n] if n == name else 0 * pl[n]) for n in export.PLANES}, sky)[:top]; want = ridge.win(ridge.relight(L[i:i + 1], *sun, *f, shadows=False, flat=sky))[:top] + body = pl[name][:top, :, 3] > 0.3; assert body.sum() > 1000 and pl[name][:top, :, 3][body].mean() < 0.97, (name, 'the fixture has no translucent body to test') + d = np.abs(got - want) * 255; assert d.mean() < 0.5 and d.max() < 4.0, (name, 'plane over a flat sky differs from its slot relight: colour is premultiplied or the haze split is wrong', d.mean(), d.max()) +def _encode_all(planes): return {k: {n: export.encode(planes[k][n]) for n in export.PLANES} for k in export.KEYS} +def _fixture_bake(): + r, L = _three_slot_layers(); f = _statics_flat_grain(); suns = {k: dict(az=100.0 + 20 * i, el=-10.0 + 15 * i, hour_utc=float(i)) for i, k in enumerate(export.KEYS)} + planes = {k: ridge.relight_planes(L, suns[k]['az'], max(suns[k]['el'], 5.0) if k != 'night' else 5.0, *f, shadows=False) for k in export.KEYS} + place = dict(id='synthetic', name='Synthetic', lat=48.0, lon=16.0, altitude_km=0.1, tz_h=2, tz_name='CEST', date='2026-09-23') + view = dict(look_az_deg=120.0, plane_h=ridge.H, px_per_deg_h=ridge.HPX_DEG, px_per_deg_v=ridge.PXDEG_V, horizon_row=100.0, sky_row=24.0, near_row=396.0) + return place, view, suns, planes +def _sized(h, w, seed=0, noise=False): + """the same plane for every key and name, h rows by w columns: a soft mid-grey ramp, or white noise when noise (a plane that does not compress)""" + rng = np.random.default_rng(seed); a = rng.random((h, w, 4)).astype(np.float32) if noise else np.dstack([np.full((h, w), 0.5), np.linspace(0, 1, w)[None].repeat(h, 0), np.full((h, w), 0.3), np.full((h, w), 0.4)]).astype(np.float32) + return {k: {n: export.encode(a) for n in export.PLANES} for k in export.KEYS} +def _refuses(out, place, view, suns, webp, why): + try: export.write_bake(out, place, view, suns, webp) + except ValueError: assert not os.path.exists(out), ('a refused bake left files', why) + else: assert False, why +def test_manifest_validates_bake_id_is_deterministic_and_luma_is_recorded(): + """Two independent bakes (the relight and the encode each run twice, not one plane set encoded twice) give the same bytes and bake_id; the manifest validates against the schema, plane w/h are what the written files decode to, frame pairs fit the budget, luma min <= max in 0..1 per frame, + the index points at the dir, a rebake replaces the place's old dir, and nothing but the dir and index.json is left in the output.""" + d = tempfile.mkdtemp() + try: + place, view, suns, planes = _fixture_bake(); webp = _encode_all(planes); again = _encode_all(_fixture_bake()[3]); assert webp == again, 'two independent bakes (relight and encode run twice) gave different plane bytes' + a = export.write_bake(d + '/a', place, view, suns, webp); b = export.write_bake(d + '/b', place, view, suns, again) + assert a.name == b.name and a.name == 'synthetic-' + export.bake_id(webp), (a.name, b.name); assert sorted(os.listdir(d + '/a')) == sorted(['index.json', a.name]), os.listdir(d + '/a') + m = json.load(open(a / 'manifest.json')); export.validate(m, export.SCHEMA['$defs']['manifest']); assert m['bake_id'] == a.name.split('-')[1] and [f['key'] for f in m['frames']] == list(export.KEYS) + assert m['view']['plane_w'] <= export.PLANE_W_MAX and m['view']['window_deg'] == 72 and m['view']['plane_w'] == ridge.WIN and m['view']['plane_h'] == ridge.H + for f in m['frames']: + assert 0 <= f['luma']['min'] <= f['luma']['max'] <= 1, f['luma']; assert f['bytes'] == sum(p['bytes'] for p in f['planes'].values()) + for p in f['planes'].values(): + assert (a / p['file']).stat().st_size == p['bytes'] and export.decode((a / p['file']).read_bytes()).shape[:2] == (p['h'], p['w']) == (ridge.H, ridge.WIN), p + assert max(m['frames'][i]['bytes'] + m['frames'][i + 1]['bytes'] for i in range(5)) <= export.PAIR_BYTES_MAX + idx = json.load(open(d + '/a/index.json')); export.validate(idx, export.SCHEMA['$defs']['index']); assert idx == dict(schema=1, default='synthetic', places={'synthetic': a.name}) + webp2 = {k: dict(v) for k, v in webp.items()}; webp2['noon']['far'] = export.encode(np.full((ridge.H, ridge.WIN, 4), 0.5, np.float32) * np.array([1, 1, 1, 2], np.float32)); c = export.write_bake(d + '/a', place, view, suns, webp2) + assert c.name != a.name and not a.exists() and json.load(open(d + '/a/index.json'))['places']['synthetic'] == c.name, 'the old dir of the place survives a rebake'; assert sorted(os.listdir(d + '/a')) == sorted(['index.json', c.name]) + bad = json.loads(json.dumps(m)); bad['frames'][0]['extra'] = 1 + try: export.validate(bad, export.SCHEMA['$defs']['manifest']) + except ValueError: pass + else: assert False, 'an extra key passed the schema' + committed = json.load(open(os.path.join(SRC, 'ridge-bake.schema.json'))); assert committed == json.loads(json.dumps(export.SCHEMA)), 'ridge-bake.schema.json is stale (export.py --write-schema)' + finally: shutil.rmtree(d) +def test_index_default_keeps_the_first_place_and_follows_an_explicit_default(): + """A second place leaves the index default at the first; an explicit default names the default; a default naming no baked place falls back to the place just baked.""" + d = tempfile.mkdtemp() + try: + place, view, suns, planes = _fixture_bake(); webp = _encode_all(planes); other = dict(place, id='other') + export.write_bake(d, place, view, suns, webp); export.write_bake(d, other, view, suns, webp); idx = json.load(open(d + '/index.json')); assert idx['default'] == 'synthetic' and sorted(idx['places']) == ['other', 'synthetic'], idx + export.write_bake(d, other, view, suns, webp, default='other'); assert json.load(open(d + '/index.json'))['default'] == 'other' + idx = json.load(open(d + '/index.json')); idx['default'] = 'gone'; open(d + '/index.json', 'w').write(json.dumps(idx)); export.write_bake(d, other, view, suns, webp); assert json.load(open(d + '/index.json'))['default'] == 'other' + finally: shutil.rmtree(d) +def test_bake_id_follows_the_plane_bytes_in_order(): + """bake_id = first 12 hex of sha256 over the plane bytes in key order, then far, mid, near: one changed byte in any plane changes it, swapping two planes changes it, and the value equals an independent hash.""" + import hashlib + w = {k: {n: bytes([i, j]) * 5 for j, n in enumerate(export.PLANES)} for i, k in enumerate(export.KEYS)}; want = hashlib.sha256(b''.join(w[k][n] for k in export.KEYS for n in ('far', 'mid', 'near'))).hexdigest()[:12] + assert export.bake_id(w) == want + for k in export.KEYS: + v = {kk: dict(vv) for kk, vv in w.items()}; v[k]['near'] = v[k]['near'] + b'x'; assert export.bake_id(v) != want, k + v = {kk: dict(vv) for kk, vv in w.items()}; v[k]['far'], v[k]['mid'] = v[k]['mid'], v[k]['far']; assert export.bake_id(v) != want, k +def test_budget_refuses_a_pair_above_the_cap_and_a_plane_above_the_width(): + """Any two ADJACENT frames above PAIR_BYTES_MAX are refused (a heavy frame next to a light one at the cap passes), as is a plane wider than the cap, and nothing is written.""" + cap = export.PAIR_BYTES_MAX; ok = [cap // 2] * 6; export.check_budget(ok, export.PLANE_W, ridge.H) + for i in range(6): + bad = [1000] * 6; bad[i] = cap // 2 + 1; bad[(i + 1) % 6] = cap // 2 + 1 + try: export.check_budget(bad, export.PLANE_W, ridge.H) + except ValueError: pass + else: assert False, ('adjacent pair over the cap accepted', i) + try: export.check_budget([400_001, 1, 1, 1, 1, 400_000], export.PLANE_W, ridge.H) + except ValueError as e: assert 'night + dawn' in str(e), str(e) + else: assert False, 'night + dawn summing 800001 were accepted' + export.check_budget([400_000, 1, 1, 1, 1, 400_000], export.PLANE_W, ridge.H) + export.check_budget([cap - 1000, 1000, cap - 1000, 1000, cap - 1000, 1000], export.PLANE_W, ridge.H) # non-adjacent heavy frames are fine + export.check_budget(ok, export.PLANE_W_MAX, 100) # exactly the cap is fine + try: export.check_budget(ok, export.PLANE_W_MAX + 1, ridge.H) + except ValueError: pass + else: assert False, 'a plane wider than the cap was accepted' + d = tempfile.mkdtemp() + try: + place, view, suns, planes = _fixture_bake(); webp = _encode_all(planes); fat = {k: dict(v) for k, v in webp.items()} + fat['dusk']['mid'] = export.encode(np.random.default_rng(1).random((ridge.H, ridge.WIN, 4)).astype(np.float32)); assert len(fat['dusk']['mid']) > cap // 2, 'the noise plane does not weigh enough' + _refuses(d + '/o', place, view, suns, fat, 'an over-budget bake was written') + finally: shutil.rmtree(d) +def test_size_refusals_read_the_written_planes_not_constants(): + """write_bake measures the planes it was handed: a 5000 px plane is refused (cap 4096) and so are planes that disagree on size or with the view's plane_h; a frame pair decoding above 20 MB is refused (700 rows) and at 650 rows is written; + the manifest carries the measured w and h (1000 px planes say w=1000), never a constant.""" + d = tempfile.mkdtemp() + try: + place, view, suns, _ = _fixture_bake(); v = lambda h: dict(view, plane_h=h) + _refuses(d + '/wide', place, v(100), suns, _sized(100, 5000), 'planes 5000 px wide were accepted') + mixed = _sized(100, 1000); mixed['noon']['mid'] = _sized(100, 900)['noon']['mid']; _refuses(d + '/mixed', place, v(100), suns, mixed, 'planes of two widths were accepted') + _refuses(d + '/rows', place, v(101), suns, _sized(100, 1000), 'planes whose height is not the view plane_h were accepted') + _refuses(d + '/heavy', place, v(700), suns, _sized(700, 1280), 'a frame pair decoding to 21.5 MB was accepted') + a = export.write_bake(d + '/ok', place, v(650), suns, _sized(650, 1280)); m = json.load(open(a / 'manifest.json')); assert m['view']['plane_w'] == 1280 and m['view']['plane_h'] == 650 + b = export.write_bake(d + '/narrow', place, v(100), suns, _sized(100, 1000)); m = json.load(open(b / 'manifest.json')) + assert m['view']['plane_w'] == 1000 and all(p['w'] == 1000 and p['h'] == 100 for f in m['frames'] for p in f['planes'].values()), m['view'] + finally: shutil.rmtree(d) +def test_the_shipped_manifest_carries_the_attribution_verbatim(): + """The Copernicus DEM licence obliges the credit line to ship with the planes: write_bake of the fixture bake (the shipped planes path) writes a manifest whose attribution is exactly the four pinned strings, each its own field: + credit_line, licence, dem_source and url (a blanked, shortened or swapped field fails by name).""" + d = tempfile.mkdtemp() + try: + place, view, suns, planes = _fixture_bake(); dest = export.write_bake(d, place, view, suns, _encode_all(planes)); a = json.load(open(dest / 'manifest.json'))['attribution'] + want = dict(credit_line='Contains modified Copernicus data: DEM © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.', + licence='Copernicus DEM licence: free, full and open access, with the credit line shown', dem_source='Copernicus DEM GLO-30 (30 m)', + url='https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model') + assert sorted(a) == sorted(want), sorted(a) + for k in want: assert a[k] == want[k], (k, a[k]) + finally: shutil.rmtree(d) +def _srgb_y(c): c = np.asarray(c, float); lin = np.where(c <= 0.04045, c / 12.92, ((c + 0.055) / 1.055) ** 2.4); return float(lin @ np.array([0.2126, 0.7152, 0.0722])) +def test_luma_range_is_the_far_mid_near_composite_over_a_grey_sky_where_coverage_is_at_least_half(): + """Hand-built 1x5 planes, none opaque anywhere (haze-as-alpha): px0 far white alpha 200 then near black alpha 128 (order matters, coverage .89); px1 far grey 128 alpha 128 (coverage .50, measured); px2 far white alpha 120 + (coverage .47, NOT measured: it would be the brightest); px3 far and mid black alpha 100 each (coverage .63, measured); px4 nothing. min and max equal the arithmetic composite over the 0.5 grey sky to 1e-6.""" + z = lambda: np.zeros((1, 5, 4), np.uint8); far, mid, near = z(), z(), z() + far[0, 0] = (255, 255, 255, 200); near[0, 0] = (0, 0, 0, 128); far[0, 1] = (128, 128, 128, 128); far[0, 2] = (255, 255, 255, 120); far[0, 3] = (0, 0, 0, 100); mid[0, 3] = (0, 0, 0, 100) + sky = np.full(3, 0.5); A, a, b = 200 / 255, 128 / 255, 100 / 255; p0 = (sky * (1 - A) + A) * (1 - a); p1 = sky * (1 - a) + 128 / 255 * a; p3 = sky * (1 - b) ** 2 + want = sorted(_srgb_y(p) for p in (p0, p1, p3)); lo, hi = export.luma_range([far, mid, near]); assert abs(lo - want[0]) < 1e-6 and abs(hi - want[-1]) < 1e-6, ((lo, hi), want) + try: export.luma_range([z(), z(), z()]) + except ValueError as e: assert 'coverage' in str(e), ('the refusal does not name the coverage', str(e)) + else: assert False, 'a frame with no covered pixel was measured' + z2 = export.decode(export.encode(np.full((8, 8, 4), 1.0, np.float32))); assert z2.shape == (8, 8, 4) and (z2[..., 3] == 255).all(), 'an everywhere-opaque plane must read back as RGBA' +def _rt_error(planes, back): + sky = export.SHEET_SKY; return np.abs(_over({n: planes[n] for n in export.PLANES}, sky) - _over({n: back[n].astype(np.float32) / 255 for n in export.PLANES}, sky)) * 255 +def test_encode_round_trips_the_shipped_planes_with_real_grain_and_the_default_reference(): + """The planes as shipped (default reference haze, the real grain, WebP quality 80) decode to the float planes: composited over a flat sky the round trip costs under 1.7/255 mean and 32/255 max (measured 1.47 and 28.6 on this hard-edged fixture; quality 50 measures 1.64 and 34, quality 5 measures 2.16 and 73), straight + colour (not premultiplied), alpha kept, rows not flipped; the real grain multiplies the colour exactly (the ratio to a grain-free bake is win(grain)).""" + r, L = _three_slot_layers(); paperf, grain, fmot = ridge.statics(); sun = (200.0, 40.0) + shipped = ridge.relight_planes(L, *sun, paperf, grain, fmot, shadows=False); flat = ridge.relight_planes(L, *sun, paperf, np.ones_like(grain), fmot, shadows=False) + back = {n: export.decode(export.encode(shipped[n])) for n in export.PLANES}; assert all(back[n].shape == shipped[n].shape for n in export.PLANES), 'decode changed the plane shape' + e = _rt_error(shipped, back); assert e.mean() < 1.7 and e.max() < 32.0, ('encode/decode round trip', e.mean(), e.max()) + for n in export.PLANES: assert abs(back[n][..., 3].astype(float) / 255 - shipped[n][..., 3]).max() < 0.1, ('alpha lost in the round trip', n) + g = ridge.win(grain); ok = (flat['near'][..., 3] > 0.2) & (flat['near'][..., :3].max(-1) * 1.03 < 1) + assert ok.sum() > 1000 and np.abs(shipped['near'][..., :3][ok] / flat['near'][..., :3][ok] - np.broadcast_to(g, ok.shape)[ok][:, None]).max() < 1e-3, 'the grain does not multiply the plane colour' +def test_default_reference_is_the_frames_own_haze_colour_and_shadows_darken_the_planes(): + """With no reference given the far plane over the frame's own haze colour equals the opaque relight of its group over that colour (<1 mean, 4 max in 1/255), not over the sky's horizon colour or a grey; cast shadows reach the planes: + a forced shadow of 1 darkens the far-group colour, a forced 0 equals shadows off.""" + r, L = _three_slot_layers(); paperf, grain, fmot = ridge.statics(); f1 = (paperf, np.ones_like(grain), fmot); sun = (200.0, 40.0); st = ridge.sun_state(*sun); hz = ridge.haze_colour(ridge.sky_hz(st, paperf)[1]) + far = ridge.relight_planes(L, *sun, *f1, shadows=False)['far']; sky = ridge.win(hz[None].astype(np.float32))[0] + img = _over(dict(far=far, mid=0 * far, near=0 * far), sky); want = ridge.win(ridge.relight(L[:1], *sun, *f1, shadows=False, flat=hz)); d = np.abs(img - want) * 255 + assert d.mean() < 1.0 and d.max() < 4.0, ('the default reference is not the frame haze colour', d.mean(), d.max()) + real = ridge.cast_shadows + try: + ridge.cast_shadows = lambda layers, az, el: [np.ones((3, W)) for _ in layers]; dark = ridge.relight_planes(L, *sun, *f1) + ridge.cast_shadows = lambda layers, az, el: [np.zeros((3, W)) for _ in layers]; lit = ridge.relight_planes(L, *sun, *f1) + finally: ridge.cast_shadows = real + off = ridge.relight_planes(L, *sun, *f1, shadows=False); body = off['near'][..., 3] > 0.5 + assert body.sum() > 1000 and dark['near'][..., :3][body].mean() < off['near'][..., :3][body].mean() - 0.02, 'cast shadows do not reach the planes' + assert all(np.abs(lit[n] - off[n]).max() < 1e-4 for n in export.PLANES), 'a zero shadow differs from shadows off' +def test_sun_set_keys_sit_at_their_elevations_and_hours(): + """The six keys on Vienna's preset date: noon is the day's highest sun, golden at a geometric elevation of 6.0 deg after it, dusk -2.5 deg, night -12.0 deg (the schema's night frame), dawn just above the horizon a quarter hour after sunrise, morning at 9.5 h local; + hours increase dawn < morning < noon < golden < dusk < night. Elevations are re-read from sun.solar, not from the keys: the keys are geometric (solar()[2]) and the manifest's el is the apparent one (solar()[1], refraction added).""" + import sun; from datetime import datetime, timedelta, timezone + p = ridge.load_preset('vienna'); s = export.sun_set(p, p['date']); assert list(s) == list(export.KEYS) + day = datetime.fromisoformat(p['date']).replace(tzinfo=timezone.utc); el = lambda h: sun.solar(day + timedelta(hours=h), p['lat'], p['lon'])[1] + geo = lambda h: sun.solar(day + timedelta(hours=h), p['lat'], p['lon'])[2] + for k in s: assert abs(el(s[k]['hour_utc']) - s[k]['el']) < 1e-9, k + assert abs(geo(s['golden']['hour_utc']) - 6.0) < 0.01 and abs(geo(s['dusk']['hour_utc']) + 2.5) < 0.01 and abs(geo(s['night']['hour_utc']) + 12.0) < 0.01 and abs(s['night']['el'] + 12.0) < 0.01, {k: v['el'] for k, v in s.items()} + assert max(el(h / 100) for h in range(0, 2400, 5)) - s['noon']['el'] < 0.01 and abs(s['morning']['hour_utc'] - (9.5 - p['tz_h'])) < 1e-9 + assert -0.833 < s['dawn']['el'] < 3.0, s['dawn']; hs = [s[k]['hour_utc'] for k in export.KEYS]; assert hs == sorted(hs), hs +def test_bake_place_manifest_fields_on_vienna(): + """bake_place on the real Vienna preset: altitude is the ground (km) without the eye height, horizon_row is the row where the elevation angle is 0 (inside the frame, between sky_row and near_row), px_per_deg_h is the ring's; + write_bake of its encoded planes gives finite luma for every frame, index default 'vienna', the full Copernicus credit line, and no temp dir left behind.""" + saved = ridge.P + try: + place, view, suns, planes = export.bake_place('vienna', relight_keys=export.KEYS); P = ridge.P; rowang = ridge.rowang; pxv = ridge.PXDEG_V + finally: ridge.P = saved + assert abs(place['altitude_km'] * 1000 - P['ground_m']) < 1e-6 and P['eye_m'] > 0 and place['id'] == 'vienna' and place['date'] == P['date'] and place['lat'] == P['lat'] and place['lon'] == P['lon'] + assert abs(view['sky_row'] - 0.04 * ridge.H) < 1e-9 and abs(view['near_row'] - 0.66 * ridge.H) < 1e-9, 'sky_row / near_row are rows (set_view anchors 4% and 66% of the frame)' + assert 0 < view['sky_row'] < view['horizon_row'] < view['near_row'] < ridge.H and abs(rowang[int(view['horizon_row'])]) <= 1.0 / pxv, (view, rowang[int(view['horizon_row'])]) + assert view['look_az_deg'] == P['az_center'] and view['plane_h'] == ridge.H and view['px_per_deg_h'] == ridge.HPX_DEG and view['px_per_deg_v'] == pxv + d = tempfile.mkdtemp() + try: + dest = export.write_bake(d, place, view, suns, _encode_all(planes)); m = json.load(open(dest / 'manifest.json')) + assert all(math.isfinite(f['luma'][k]) and 0 <= f['luma']['min'] < f['luma']['max'] <= 1 for f in m['frames'] for k in ('min', 'max')), [f['luma'] for f in m['frames']] + assert json.load(open(d + '/index.json'))['default'] == 'vienna' and sorted(os.listdir(d)) == sorted(['index.json', dest.name]), os.listdir(d) + c = m['attribution']['credit_line']; assert c.startswith('Contains modified Copernicus data') and 'Airbus Defence and Space' in c and 'ESA' in c and m['attribution']['licence'] and m['attribution']['url'].startswith('https://'), m['attribution'] + finally: shutil.rmtree(d) + +PLANES_TESTS = [v for k, v in sorted(globals().items()) if k.startswith('test_') and k not in _before] +TESTS = [v for k, v in sorted(globals().items()) if k.startswith('test_')] +if __name__ == '__main__': + fails = 0 + for t in TESTS: + try: t(); print('PASS', t.__name__) + except Exception as e: fails += 1; print('FAIL', t.__name__, '|', repr(e)[:300]) + print('failures:', fails); sys.exit(1 if fails else 0) diff --git a/src/app/features/scene/README.md b/src/app/features/scene/README.md index 45fec5cd..73844795 100644 --- a/src/app/features/scene/README.md +++ b/src/app/features/scene/README.md @@ -4,37 +4,31 @@ config says `backgroundScene.style: 'raymarch'`; the tier flag still defaults to `off`, and null still means "keep the CSS ground". Everything below this section describes the opt-in ray-march scene. -- `ridge/Ridge.ts` `createRidgeScene({ canvas, tier, probe?, onProbe?, onBake?, sky? })` returns `{ login, dispose }` or - null (tier `off`, no 2D context). Each of four ridge layers is a function of world-x (`ridge/ridgeWorld.ts` `profile`: - ridged multifractal value noise, each octave folded at its crest and weighted by the previous one, domain-warped; one - function, a parameter row per layer; nothing repeats). World-x is baked in chunks (1.2 viewport widths, integer pixels) - onto plain 2D canvases over a baked sky gradient on the host canvas. Per layer a track holds three chunk canvases: two - the window can reach and one ahead. The first view bakes only the first chunk of each layer; the others are baked in - tasks of about 6 ms (`setTimeout`; a chunk is baked, put on a canvas with its in-scatter, and blurred in column bands, each sized from the last band's time). Per frame the only motion is the - compositor sliding the track with a CSS transform (a Web Animation of `translate3d`, one chunk long, `fill: forwards`, - 150-420 s per viewport width, farther is slower); when it finishes the chunks move one slot left and the track restarts - at 0 in the same task (no jump), and the canvas that left is baked with the next stretch of world. A second animation - sways the whole rig (up to 5% of the width sideways, 3% of the height down, 150 s loop): the slow yaw and pitch. - No script runs per frame. The host canvas and the layers' parent must be positioned and the canvas should fill the parent. -- `ridge/ridgeBake.ts` is the pixel function (pure, no DOM): per column the crest's slope gives a normal, lit against the - sun (`sunDirection`: x = 0.9 sin(2 pi \* `sunAzimuth`), so the sun is toward +x for azimuth 0 to 0.5, strongest at 0.25, toward -x for 0.5 to 1; with no `sunAzimuth` the face lighting falls back to 0.3 and the in-scatter is off); the face under it has a light-to-haze gradient, erosion - streaks (a folded noise at gully width, darker with steepness) and a lit rim on the crest. Contrast scales with - `transmittance`; the base colour, haze and blur are the aerial perspective below, not redone. -- Paused when the tab is hidden; under `prefers-reduced-motion` the layers are painted but never played. - `tier: 'still'` flattens sky and layers into the host canvas at once and leaves no extra elements. +- `ridge/Ridge.ts` `createRidgeScene({ canvas, tier, probe?, onProbe?, sky? })` returns `{ login, dispose }` or + null (tier `off`, no 2D context). It paints the sky (`ridge/physicalSky.ts`, from the `SkyColours` the host passes) on the host + canvas at the viewport's size in canvas pixels, then the stars baked into it, a twinkle overlay canvas for the swinging ones + (`ridge/stars.ts`), the baked ridge planes (below) and, when it rains, tiled rain streaks slid down on the compositor (`ridge/rain.ts`). + With no planes (the load failed) the scene shows sky, stars and weather only. No script runs per frame except the twinkle, at most every 50 ms. + The host canvas and its parent must be positioned and the canvas should fill the parent. A resize rebuilds it; so does a sky change + (`index.ts`). +- Paused when the tab is hidden; under `prefers-reduced-motion` the rain is paused and the stars stay at base brightness. + `tier: 'still'` paints the sky and stars and adds no overlay, no rain and no loop. - Cadence guard: for the first 2 s after start (after 5 warm-up frames) rAF intervals are sampled; if their p95 is over - 33 ms the scene flattens to a still image (`ridge/probe.ts`) and stops. `?probe=1` (or `probe: true`) keeps sampling + 33 ms the scene settles to a still image (`ridge/probe.ts`) and stops. `?probe=1` (or `probe: true`) keeps sampling and shows `n / median / p95` in a corner readout. -- `ridge/skyColour.ts` `skyColours()` is the one place sky colours come from: a fixed dusk placeholder until Void's - `src/sky/sun.js` `light()` lands (PR #20); replace its body, keep the signature. -- Aerial perspective (`ridge/ridgeWorld.ts` `AERIAL`, `transmittance`, `layerColour`, `edgeBlur`, `scatterAlpha`) is applied - once while the layers are baked, from the `SkyColours` the one seam returns (`sunAzimuth` optional: omit it for no - in-scatter). Layer distance d = 1 - depth; transmittance T = exp(-1.6 d) (0.24 / 0.37 / 0.58 / 1.00 far to near); colour is - `T * ground + (1 - T) * haze`, then chroma drops by `0.5 (1 - T)`; the edge is blurred up to 2 px (canvas pixels at DPR 1, - via the 2D `filter`, skipped where unsupported, e.g. Safari); a faint warm in-scatter (at most 0.16 alpha) peaks at the - sun's azimuth in world-x (two incommensurate cosines, so not periodic). Nothing runs per frame. The in-scatter lobe is - painted into each chunk, so it drifts with the layer rather than staying fixed under the sun; that is a known - approximation until the sun is a real, fixed light. +- `ridge/skyColour.ts` `skyColours()` is the fallback three-stop palette (top, mid, horizon) a scene gets with no `sky` option; the host + passes `ridgeSkyFor` (skyForState.ts) instead. +- Ridge planes: `ridge/manifest.ts` `loadManifest` reads `${BASE_URL}public/ridge/index.json` (config `backgroundScene.place` picks the entry, + unknown or absent: the index default), then the place's `manifest.json` (v1, written by `scripts/ridge-bake/export.py`; it is the one JSON + the backdrop reads). `ridge/frameChoice.ts` picks the two baked frames the sky's sun lies between and a blend weight; `ridge/Backdrop.ts` + decodes only those. `index.ts` `prepare()` loads manifest and planes with the scene chunk, so `createRidgeScene({ backdrop })` stays + synchronous, and a rebuild keeps the old scene up until the new one's planes have loaded, then swaps. The rig is one div of three plane groups (far, mid, near; DOM order is paint order; no z-index, no fixed position, nothing + outside the scene's parent), each drifting on `Element.animate` (transform only, 150 s loop, paused when the tab is hidden, motion is + reduced or the scene is still); a still draws the planes into the host canvas. Two frames are a true crossfade (`frameChoice.ts` + `crossfade`: a at 1 - w plus b at w, summed in an isolated group, `plus-lighter` in the rig and `lighter` in an offscreen for the still), because + the planes are haze as alpha and b laid over a would double the haze. A failure anywhere (404, bad manifest, an image that + will not decode) is the sky-only scene on `FALLBACK_VIEW`, told to the host by the live scene alone, through `onPlanesFail` when the live scene has no planes and `onPlanesOk` when a later one has them (never from a stale or disposed build); it is never `onCompileFail`. + `vite.config.js` copies `public/ridge` into `dist/public/`. - `harness/scene/bundle.cjs ridge` builds a standalone page (`?tier=`, `?probe=1`). - Not yet measured on a phone: see the PR description. @@ -78,13 +72,10 @@ holds a GL context gives no 2D one, so a GL failure after context creation (comp x `AMBIENT_GAIN` 0.25 x `NIGHT_LIFT` up to 4; now `ambient_linear` as baked, so midnight's fill is about 2.5 to 3.5 times darker than the lifted one). `HAZE_K` (0.0004 per metre) is unchanged. -## Ridge scene: Vienna, the real horizon and the weather +## Ridge scene: Vienna and the weather The ridge sky is the physical atmosphere (`ridge/earthAtmosphere.ts`) lit by the real sun over the viewpoint, 48.1929826 N, 16.3534237 E -(`ridge/vienna.ts`). Its farthest layer is the real horizon of that viewpoint, standing still under the sun: `ridge/viennaHorizon.json`, -baked by `scripts/bake-horizon.py` from Copernicus DEM GLO-30 (nine 1 degree tiles, about 380 MB, kept out of the repo). The file carries its -own `source` block with the dataset, tiles, licence and the attribution the licence requires. Its elevation range is 2.1 degrees, so the -layer draws the shape of the ring stretched to a fixed relief, not its scale. +(`ridge/vienna.ts`). The weather is one number (`ridge/weather.ts`), from the page URL's `?weather=`, else `weather.json` beside `config.json`, else clear. The browser never calls a weather service. `weather.json` is written by Eureka's refresher (gamecult-ops `docs/weather-feed.md`, a 5-minute timer; the only writer) from GeoSphere Austria's TAWES station 11035 (Wien Hohe Warte), credit @@ -92,7 +83,7 @@ The browser never calls a weather service. `weather.json` is written by Eureka's glow_wm2, sunshine_s_10min, attribution}`, null for a missing measurement. A file fetched more than 30 minutes ago, or holding an observation more than 40 minutes old, or from another station, is a clear sky. Rain is the gauge; cloud is an estimate from the global radiation against Haurwitz's clear-sky value, cross-checked by the sunshine duration, with the humidity as the fallback when the sun is low (`ridge/weatherFeed.ts`). The weather draws a cloud deck in the sky -(`ridge/clouds.ts`), thickens the layers' valley mist, and lays tiled rain streaks over everything (`ridge/rain.ts`, compositor-driven, none in a still). +(`ridge/clouds.ts`) and lays tiled rain streaks over the sky (`ridge/rain.ts`, compositor-driven, none in a still). ## Entry points diff --git a/src/app/features/scene/SkyStateControl.tsx b/src/app/features/scene/SkyStateControl.tsx index ee973822..82c442a8 100644 --- a/src/app/features/scene/SkyStateControl.tsx +++ b/src/app/features/scene/SkyStateControl.tsx @@ -1,4 +1,4 @@ -import React, { MouseEventHandler, useState } from 'react'; +import React, { MouseEventHandler, useEffect, useState } from 'react'; import { Box, config, @@ -15,8 +15,9 @@ import FocusTrap from 'focus-trap-react'; import { stopPropagation } from '../../utils/keyboard'; import { useSkyState } from '../../hooks/useSkyState'; import { SKY_STATES, setSkyState, type SkyState } from './skyState'; +import { loadManifest } from './ridge/manifest'; import { - HORIZON_CREDIT, + terrainCredit, WEATHER_CREDIT, WEATHER_CREDIT_URL, WEATHER_DATASET, @@ -51,6 +52,20 @@ export function SkyStateControl() { const sceneStyle: ServedSceneStyle = getSceneStyleOverride() ?? (configuredStyle === 'terrain' ? 'terrain' : 'ridge'); + const place = backgroundScene?.place; + const [credit, setCredit] = useState(); + const ridgeOn = !!backgroundScene && sceneStyle === 'ridge'; + useEffect(() => { + if (!ridgeOn) return undefined; + let live = true; + loadManifest(import.meta.env.BASE_URL, place).then( + (m) => live && setCredit(terrainCredit(m)), + () => live && setCredit(undefined) + ); + return () => { + live = false; + }; + }, [ridgeOn, place]); const open: MouseEventHandler = (evt) => { setCords(evt.currentTarget.getBoundingClientRect()); }; @@ -132,6 +147,11 @@ export function SkyStateControl() { Data + {credit && ( + + {credit} + + )} Datenquelle: GeoSphere Austria -{' '} @@ -139,9 +159,6 @@ export function SkyStateControl() { . {WEATHER_DATASET}. - - {HORIZON_CREDIT} - )} diff --git a/src/app/features/scene/index.test.ts b/src/app/features/scene/index.test.ts index c89fa3b0..f257d3a7 100644 --- a/src/app/features/scene/index.test.ts +++ b/src/app/features/scene/index.test.ts @@ -4,6 +4,13 @@ import type { Scene } from './Scene'; import { startBackgroundScene } from './index'; import { setSkyClock, setSkyState } from './skyState'; import { ridgeSkyFor } from './skyForState'; +import { forgetManifests } from './ridge/manifest'; +import { wireIndex, wireManifest } from './ridge/manifest.fixture'; +import { FALLBACK_VIEW } from './ridge/view'; +import { frameChoice } from './ridge/frameChoice'; +import { sunAt } from './ridge/sunAt'; +import { ridgeWeather } from './ridge/weather'; +import { parseWeatherFile, WEATHER_ATTRIBUTION, weatherFromFile } from './ridge/weatherFeed'; const { createRidgeScene, createScene } = vi.hoisted(() => ({ createRidgeScene: vi.fn(), @@ -20,9 +27,11 @@ vi.mock('./skyForState', async (importOriginal) => { return { ...actual, ridgeSkyFor: (...args: Parameters) => { - if (args.length !== 1) return actual.ridgeSkyFor(...args); - if (!baked.has(args[0])) baked.set(args[0], actual.ridgeSkyFor(args[0])); - return baked.get(args[0]) as ReturnType; + const [state, view] = args; + // One bake per state and place; the view is the one owner of the place, so it is part of what a sky is. + const key = `${state}@${JSON.stringify(view.place)}`; + if (!baked.has(key)) baked.set(key, actual.ridgeSkyFor(...args)); + return baked.get(key) as ReturnType; }, }; }); @@ -62,7 +71,7 @@ describe('startBackgroundScene follows the sky state', () => { createRidgeScene.mockReturnValue(fakeScene()); const scene = await startBackgroundScene(config, caps, { canvas }); expect(createRidgeScene).toHaveBeenCalledOnce(); - expect(hex(createRidgeScene.mock.calls[0][0].sky.top)).toBe(hex(ridgeSkyFor('night').top)); + expect(hex(createRidgeScene.mock.calls[0][0].sky.top)).toBe(hex(ridgeSkyFor('night', FALLBACK_VIEW).top)); scene?.dispose(); }); @@ -81,7 +90,7 @@ describe('startBackgroundScene follows the sky state', () => { setSkyState('night'); createRidgeScene.mockReturnValue(fakeScene()); const scene = await startBackgroundScene(config, caps, { canvas }); - expect(hex(createRidgeScene.mock.calls[0][0].sky.top)).toBe(hex(ridgeSkyFor('night').top)); + expect(hex(createRidgeScene.mock.calls[0][0].sky.top)).toBe(hex(ridgeSkyFor('night', FALLBACK_VIEW).top)); scene?.dispose(); }); @@ -93,7 +102,7 @@ describe('startBackgroundScene follows the sky state', () => { setSkyState('day'); await flush(); expect(first.dispose).toHaveBeenCalledOnce(); - expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('day').top)); + expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('day', FALLBACK_VIEW).top)); scene?.dispose(); expect(second.dispose).toHaveBeenCalledOnce(); }); @@ -106,7 +115,7 @@ describe('startBackgroundScene follows the sky state', () => { const scene = await started; await flush(); expect(createRidgeScene).toHaveBeenCalledTimes(2); - expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('day').top)); + expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('day', FALLBACK_VIEW).top)); expect(a.dispose).toHaveBeenCalledOnce(); scene?.dispose(); expect(b.dispose).toHaveBeenCalledOnce(); @@ -186,7 +195,7 @@ describe('startBackgroundScene follows the sky state', () => { // The sky last built is dusk's, and it is the live scene: a login reaches it and nothing else. const built = createRidgeScene.mock.calls.length; expect(hex(createRidgeScene.mock.calls[built - 1][0].sky.top)).toBe( - hex(ridgeSkyFor('dusk').top) + hex(ridgeSkyFor('dusk', FALLBACK_VIEW).top) ); const live = scenes[built - 1]; scene?.login(); @@ -209,12 +218,12 @@ describe('startBackgroundScene follows the sky state', () => { await flush(); // The initial build and one rebuild, for dusk; day's rebuild stood down before building anything. expect(createRidgeScene).toHaveBeenCalledTimes(2); - expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('dusk').top)); + expect(hex(createRidgeScene.mock.calls[1][0].sky.top)).toBe(hex(ridgeSkyFor('dusk', FALLBACK_VIEW).top)); scene?.dispose(); }); // A second sky change `ticks` microtasks after the first. True when it landed mid-build: the build for the first - // change finished, was found stale and dropped (never shown), and only the newest sky was announced. + // change finished loading, was found stale and was never made (so it never showed or spoke), and only the newest sky was announced. const changeAfter = async (ticks: number) => { createRidgeScene.mockReset(); setSkyState('auto'); @@ -229,7 +238,7 @@ describe('startBackgroundScene follows the sky state', () => { const at = `at ${ticks} microtasks`; const built = createRidgeScene.mock.calls.length; expect(hex(createRidgeScene.mock.calls[built - 1][0].sky.top), at).toBe( - hex(ridgeSkyFor('dusk').top) + hex(ridgeSkyFor('dusk', FALLBACK_VIEW).top) ); // The newest build is live, every earlier one disposed exactly once, and only the live one is shown. const live = [a, b, c][built - 1]; @@ -241,7 +250,7 @@ describe('startBackgroundScene follows the sky state', () => { }); scene?.dispose(); expect(live.dispose, at).toHaveBeenCalledOnce(); - return built === 3 && onActive.mock.calls.length === 1; + return built === 2 && onActive.mock.calls.length === 1; }; it('a sky change at any point of a build leaves only the newer build live; the stale one is disposed', async () => { @@ -255,7 +264,7 @@ describe('startBackgroundScene follows the sky state', () => { // This can fail after a correct refactor that changes the await count in create/skyKey and moves every offset // off the build. Then widen the range of offsets until some land again; do not weaken the assertion. expect(landed.length, 'at least one offset must land mid-build').toBeGreaterThan(0); - }); + }, 30000); it('leaves the ray-march scene alone: it has one fixed dusk', async () => { const inner = fakeScene() as unknown as Scene; @@ -282,3 +291,428 @@ describe('startBackgroundScene follows the sky state', () => { expect(onCompileFail).toHaveBeenCalledWith(boom); }); }); + +describe('the ridge planes', () => { + const served = (over: Record = {}) => { + const files: Record = { + '/public/ridge/index.json': wireIndex, + '/public/ridge/vienna-abc123abc123/manifest.json': wireManifest(), + '/public/ridge/graz-def456def456/manifest.json': wireManifest({ + place: { ...(wireManifest() as any).place, id: 'graz', name: 'Graz' }, + }), + ...over, + }; + vi.stubGlobal( + 'fetch', + vi.fn(async (url: string) => + url in files + ? { ok: true, status: 200, json: async () => files[url] } + : { ok: false, status: 404, json: async () => ({}) } + ) + ); + }; + const images = (reject = false) => { + const loaded: string[] = []; + vi.stubGlobal( + 'Image', + class { + src = ''; + decoding = ''; + cloneNode = () => this; + decode = async () => { + if (reject) throw new Error('bad image'); + loaded.push(this.src); + }; + } + ); + return loaded; + }; + beforeEach(() => forgetManifests()); + + it('hands the scene the planes of the frame the sky was baked for, over the manifest view', async () => { + served(); + const loaded = images(); + createRidgeScene.mockReturnValue(fakeScene()); + const scene = await startBackgroundScene(config, caps, { canvas }); + const opts = createRidgeScene.mock.calls[0][0]; + expect(opts.backdrop.manifest.view.place.id).toBe('vienna'); + expect(opts.sky.physical.view).toBe(opts.backdrop.manifest.view); + // Midnight in Vienna: the night frame, three planes. + expect(loaded.sort()).toEqual([ + '/public/ridge/vienna-abc123abc123/night-far.webp', + '/public/ridge/vienna-abc123abc123/night-mid.webp', + '/public/ridge/vienna-abc123abc123/night-near.webp', + ]); + scene?.dispose(); + }); + + it('config place picks the index entry; an unknown id falls back to the default', async () => { + served(); + images(); + createRidgeScene.mockReturnValue(fakeScene()); + (await startBackgroundScene({ ...config, place: 'graz' }, caps, { canvas }))?.dispose(); + expect(createRidgeScene.mock.calls[0][0].backdrop.manifest.view.place.id).toBe('graz'); + forgetManifests(); + (await startBackgroundScene({ ...config, place: 'nowhere' }, caps, { canvas }))?.dispose(); + expect(createRidgeScene.mock.calls[1][0].backdrop.manifest.view.place.id).toBe('vienna'); + }); + + const skyOnly = async (onPlanesFail = vi.fn(), onCompileFail = vi.fn()) => { + createRidgeScene.mockReturnValue(fakeScene()); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail, onCompileFail }); + const opts = createRidgeScene.mock.calls[0][0]; + expect(scene).not.toBeNull(); + expect(opts.backdrop).toBeUndefined(); + expect(opts.sky.physical.view).toBe(FALLBACK_VIEW); + expect(onPlanesFail).toHaveBeenCalledOnce(); + expect(onCompileFail).not.toHaveBeenCalled(); + scene?.dispose(); + }; + + it('a 404 manifest gives the sky-only scene with the fallback view, one onPlanesFail and no onCompileFail', async () => { + served({ '/public/ridge/index.json': undefined }); + vi.stubGlobal( + 'fetch', + vi.fn(async () => ({ ok: false, status: 404, json: async () => ({}) })) + ); + images(); + await skyOnly(); + }); +}); + +describe('the ridge planes failing', () => { + it('a rejecting image gives the same sky-only scene, and a rebuild does not report again', async () => { + vi.stubGlobal( + 'fetch', + vi.fn(async (url: string) => ({ + ok: true, + status: 200, + json: async () => (url.endsWith('index.json') ? wireIndex : wireManifest()), + })) + ); + vi.stubGlobal( + 'Image', + class { + decode = async () => { + throw new Error('bad image'); + }; + } + ); + forgetManifests(); + createRidgeScene.mockReturnValue(fakeScene()); + const onPlanesFail = vi.fn(); + const onCompileFail = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail, onCompileFail }); + expect(createRidgeScene.mock.calls[0][0].backdrop).toBeUndefined(); + setSkyState('day'); + await flush(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(onPlanesFail).toHaveBeenCalledOnce(); + expect(onCompileFail).not.toHaveBeenCalled(); + scene?.dispose(); + }); +}); + +describe('the ridge planes and the live scene', () => { + const serve = (manifest: Record = wireManifest()) => + vi.stubGlobal( + 'fetch', + vi.fn(async (url: string) => ({ + ok: true, + status: 200, + json: async () => (url.endsWith('index.json') ? wireIndex : manifest), + })) + ); + /** Image stub whose decode waits on `gate` (when given) and then resolves or rejects as `outcome` says now. */ + const decoder = () => { + const ctl = { + pending: [] as Array<() => void>, + hold: false, + fail: false, + urls: [] as string[], + }; + vi.stubGlobal( + 'Image', + class { + src = ''; + decoding = ''; + cloneNode = () => this; + decode = () => { + const fails = ctl.fail; // the outcome belongs to the request, whenever it settles + return new Promise((resolve, reject) => { + const settle = () => { + ctl.urls.push(this.src); + if (fails) reject(new Error('bad image')); + else resolve(); + }; + if (ctl.hold) ctl.pending.push(settle); + else settle(); + }); + }; + } + ); + return { + ctl, + release: async () => { + ctl.hold = false; + ctl.pending.splice(0).forEach((s) => s()); + await flush(); + }, + }; + }; + beforeEach(() => forgetManifests()); + + it('says nothing about planes when they load', async () => { + serve(); + decoder(); + createRidgeScene.mockReturnValue(fakeScene()); + const onPlanesFail = vi.fn(); + const onPlanesOk = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail, onPlanesOk }); + setSkyState('day'); + await flush(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(createRidgeScene.mock.calls.every((c) => c[0].backdrop)).toBe(true); + expect(onPlanesFail).not.toHaveBeenCalled(); + expect(onPlanesOk).not.toHaveBeenCalled(); + scene?.dispose(); + }); + + it('chooses frames by the sun over the manifest place, not the fallback place', async () => { + const w = wireManifest() as any; + // A day where it is night by the clock, in the south, has the noon sun high and to the north; at Vienna it is low in the south: a different frame. + serve({ ...w, place: { ...w.place, lat: -33, lon: -163.65, tz_h: -11 } }); + decoder(); + setSkyState('day'); + createRidgeScene.mockReturnValue(fakeScene()); + (await startBackgroundScene(config, caps, { canvas }))?.dispose(); + const opts = createRidgeScene.mock.calls[0][0]; + const { manifest } = opts.backdrop; + const own = frameChoice(manifest.frames, opts.sky.physical.sun); + const fallbackSun = ridgeSkyFor('day', FALLBACK_VIEW).physical!.sun; + const theirs = frameChoice(manifest.frames, fallbackSun); + expect(own.a.key).not.toBe(theirs.a.key); + expect(opts.backdrop.choice.a.key).toBe(own.a.key); + expect(opts.backdrop.choice.b?.key ?? null).toBe(own.b?.key ?? null); + }); + + it("keys a rebuild by the manifest's place: the same sky state over a rebaked place rebuilds", async () => { + serve(); + decoder(); + const [a, b] = [fakeScene(), fakeScene()]; + createRidgeScene.mockReturnValueOnce(a).mockReturnValueOnce(b); + const w = wireManifest() as any; + const scene = await startBackgroundScene(config, caps, { canvas }); + // 'auto' at midnight and 'night' are one sky: no rebuild, while the place is the one drawn. + setSkyState('night'); + await flush(); + expect(createRidgeScene).toHaveBeenCalledOnce(); + forgetManifests(); + serve({ ...w, place: { ...w.place, id: 'graz' } }); + setSkyState('auto'); + await flush(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(createRidgeScene.mock.calls[1][0].backdrop.manifest.view.place.id).toBe('graz'); + scene?.dispose(); + }); + + it("reads the weather against the manifest place's sun, not the fallback place's", async () => { + const w = wireManifest() as any; + const place = { ...w.place, id: 'weather-place', lat: -33, lon: -163.65, tz_h: -11 }; + const now = new Date('2026-11-11T10:50:00Z'); + const wx = { + fetched_at: '2026-11-11T10:45:00Z', + observed_at: '2026-11-11T10:40:00Z', + station: 11035, + precip_mm_10min: 0, + humidity_pct: 60, + sunshine_s_10min: null, + glow_wm2: 100, + attribution: WEATHER_ATTRIBUTION, + }; + vi.stubGlobal( + 'fetch', + vi.fn(async (url: string) => ({ + ok: true, + status: 200, + json: async () => + url.endsWith('weather.json') ? wx : url.endsWith('index.json') ? wireIndex : { ...w, place }, + })) + ); + decoder(); + setSkyClock(() => now); + createRidgeScene.mockReturnValue(fakeScene()); + (await startBackgroundScene(config, caps, { canvas }))?.dispose(); + const file = parseWeatherFile(wx)!; + const at = (p: { lat: number; lon: number }) => + weatherFromFile(file, sunAt({ id: 'x', altitudeKm: 0, ...p }, new Date(Date.parse(wx.observed_at) - 5 * 60_000)).elevation); + expect(at(FALLBACK_VIEW.place)).not.toBe(at(place)); + expect(ridgeWeather()).toBe(at(place)); + }); + + it('a failed load is the sky alone on the fallback view, never the manifest place', async () => { + serve(); + const { ctl } = decoder(); + ctl.fail = true; + createRidgeScene.mockReturnValue(fakeScene()); + const scene = await startBackgroundScene(config, caps, { canvas }); + const opts = createRidgeScene.mock.calls[0][0]; + expect(opts.backdrop).toBeUndefined(); + expect(opts.sky.physical.view).toBe(FALLBACK_VIEW); + scene?.dispose(); + }); + + it('a rebuild keeps the old scene until the new planes have loaded, then swaps', async () => { + serve(); + const d = decoder(); + const first = fakeScene(); + const second = fakeScene(); + createRidgeScene.mockReturnValueOnce(first).mockReturnValueOnce(second); + const onActive = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onActive }); + d.ctl.hold = true; + setSkyState('day'); + await flush(); + expect(d.ctl.pending.length).toBeGreaterThan(0); + expect(first.dispose).not.toHaveBeenCalled(); + expect(createRidgeScene).toHaveBeenCalledOnce(); + scene?.login(); + expect(first.login).toHaveBeenCalledOnce(); + await d.release(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(first.dispose).toHaveBeenCalledOnce(); + expect(second.dispose).not.toHaveBeenCalled(); + expect(onActive).toHaveBeenCalledOnce(); + expect(second.login).toHaveBeenCalledOnce(); // replayed onto the swapped-in scene + scene?.dispose(); + expect(second.dispose).toHaveBeenCalledOnce(); + }); + + it('a build that fails after the scene is disposed makes nothing and says nothing', async () => { + serve(); + const d = decoder(); + createRidgeScene.mockReturnValue(fakeScene()); + const onPlanesFail = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail }); + d.ctl.hold = true; + d.ctl.fail = true; + setSkyState('day'); + await flush(); + scene?.dispose(); + await d.release(); + expect(createRidgeScene).toHaveBeenCalledOnce(); + expect(onPlanesFail).not.toHaveBeenCalled(); + }); + + it('a superseded build that fails does not speak for the live scene, which has planes', async () => { + serve(); + const d = decoder(); + createRidgeScene.mockReturnValue(fakeScene()); + const onPlanesFail = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail }); + d.ctl.hold = true; + d.ctl.fail = true; + setSkyState('day'); // stale: its decodes will reject + await flush(); + d.ctl.fail = false; + setSkyState('dusk'); // the live one: its decodes will succeed + await flush(); + const stale = d.ctl.pending.splice(0, 6); + d.ctl.pending.length = 0; + d.ctl.hold = false; + stale.forEach((s) => s()); // the first six are day's, settled in order + await flush(); + expect(onPlanesFail).not.toHaveBeenCalled(); + scene?.dispose(); + }); + + it('a superseded build that finishes after the newer one touches nothing of the live scene', async () => { + serve(); + const d = decoder(); + const [first, second, third] = [fakeScene(), fakeScene(), fakeScene()]; + createRidgeScene.mockReturnValueOnce(first).mockReturnValueOnce(second).mockReturnValueOnce(third); + const onActive = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onActive }); + d.ctl.hold = true; + setSkyState('day'); // stale: its decodes are held until after the newer build is live + await flush(); + const dayDecodes = d.ctl.pending.splice(0); + setSkyState('dusk'); + await flush(); + const duskDecodes = d.ctl.pending.splice(0); + expect(dayDecodes.length).toBeGreaterThan(0); + expect(duskDecodes.length).toBeGreaterThan(0); + duskDecodes.forEach((s) => s()); + await flush(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(first.dispose).toHaveBeenCalledOnce(); + expect(onActive).toHaveBeenCalledOnce(); + dayDecodes.forEach((s) => s()); // the stale build finishes last + await flush(); + expect(createRidgeScene).toHaveBeenCalledTimes(2); + expect(second.dispose).not.toHaveBeenCalled(); // the live scene is not disposed by a build that lost + expect(onActive).toHaveBeenCalledOnce(); + scene?.login(); + expect(second.login).toHaveBeenCalledOnce(); + scene?.dispose(); + expect(second.dispose).toHaveBeenCalledOnce(); + expect(third.dispose).not.toHaveBeenCalled(); + }); + + it('a build that finishes after dispose makes nothing, shows nothing and disposes nothing twice', async () => { + serve(); + const d = decoder(); + const first = fakeScene(); + createRidgeScene.mockReturnValueOnce(first).mockReturnValueOnce(fakeScene()); + const onActive = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onActive }); + d.ctl.hold = true; + setSkyState('day'); + await flush(); + scene?.dispose(); + await d.release(); + expect(createRidgeScene).toHaveBeenCalledOnce(); + expect(first.dispose).toHaveBeenCalledOnce(); + expect(onActive).not.toHaveBeenCalled(); + }); + + it('a rebuild that makes no scene says nothing about planes and leaves the host inactive', async () => { + serve(); + const d = decoder(); + createRidgeScene.mockReturnValueOnce(fakeScene()).mockReturnValueOnce(null); + const onPlanesFail = vi.fn(); + const onInactive = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail, onInactive }); + d.ctl.fail = true; + setSkyState('day'); + await flush(); + expect(onInactive).toHaveBeenCalledOnce(); + expect(onPlanesFail).not.toHaveBeenCalled(); + scene?.dispose(); + }); + + it('tells the host when the live scene loses its planes and when it gets them back', async () => { + serve(); + const d = decoder(); + d.ctl.fail = true; + createRidgeScene.mockReturnValue(fakeScene()); + const onPlanesFail = vi.fn(); + const onPlanesOk = vi.fn(); + const scene = await startBackgroundScene(config, caps, { canvas, onPlanesFail, onPlanesOk }); + expect(onPlanesFail).toHaveBeenCalledOnce(); + setSkyState('day'); // still failing: the host is not told twice + await flush(); + expect(onPlanesFail).toHaveBeenCalledOnce(); + expect(onPlanesOk).not.toHaveBeenCalled(); + d.ctl.fail = false; + setSkyState('dusk'); + await flush(); + expect(onPlanesOk).toHaveBeenCalledOnce(); + expect(createRidgeScene.mock.calls[2][0].backdrop).toBeDefined(); + d.ctl.fail = true; + setSkyState('night'); + await flush(); + expect(onPlanesFail).toHaveBeenCalledTimes(2); + scene?.dispose(); + }); +}); diff --git a/src/app/features/scene/index.ts b/src/app/features/scene/index.ts index 36010b40..151148cc 100644 --- a/src/app/features/scene/index.ts +++ b/src/app/features/scene/index.ts @@ -3,6 +3,12 @@ import { BackgroundSceneConfig, Capabilities, SceneTier, resolveTier } from './t import { debugOverlaysAllowed } from './debugOverlays'; import { getSkyState, subscribe } from './skyState'; import type { SkyState } from './skyState'; +import type { SkyColours } from './ridge/skyColour'; +import type { Backdrop } from './ridge/Backdrop'; +import { loadManifest } from './ridge/manifest'; +import type { RidgeManifest } from './ridge/manifest'; +import { FALLBACK_VIEW } from './ridge/view'; +import { frameChoice } from './ridge/frameChoice'; export type { Scene, SceneStats } from './Scene'; export type { SceneStyle, SceneTier } from './tier'; @@ -14,35 +20,106 @@ export type StartOptions = Omit void; /** A rebuild made a scene again: the host lets it show. */ onActive?: () => void; + /** The live scene is the sky alone because the baked ridge planes did not load (no manifest, a missing image). The host may fill the ground. Told when the live scene changes to that state, never for a build that did not win. */ + onPlanesFail?: (e: Error) => void; + /** The live scene has its planes after `onPlanesFail` said it had none: the host lets go of the ground it filled. */ + onPlanesOk?: () => void; }; /** The observation file the ridge sky reads: the page's own, beside config.json. The browser calls no weather service. */ const weatherUrl = (): string => `${import.meta.env.BASE_URL.replace(/\/$/, '')}/weather.json`; -async function create( +/** + * The baked place's manifest, or why there is none. Its View is the one owner of the sun's place and the camera for the weather, the sky, + * the rebuild key and the planes; a scene with no manifest has FALLBACK_VIEW. + */ +async function manifestOf( + config: BackgroundSceneConfig | undefined +): Promise<{ manifest: RidgeManifest | null; fail: Error | null }> { + try { + return { manifest: await loadManifest(import.meta.env.BASE_URL, config?.place), fail: null }; + } catch (e) { + return { manifest: null, fail: e instanceof Error ? e : new Error(String(e)) }; + } +} + +/** A scene made ready: every await is done, so `make` is synchronous and a rebuild can keep the old scene until the instant it swaps. */ +interface Prepared { + make: () => Scene | null; + /** Why this scene is the sky alone, when the baked planes did not load; null when it has planes or none are asked for. */ + planesFail: Error | null; +} + +async function prepare( config: BackgroundSceneConfig | undefined, options: StartOptions & { tier: SceneTier; debug?: boolean }, state: SkyState -): Promise { +): Promise { + // Whatever throws in making the scene is a compile failure, as whatever throws in loading it. + const guarded = (make: () => Scene | null): Prepared => ({ + planesFail: null, + make: () => { + try { + return make(); + } catch (e) { + options.onCompileFail?.(e instanceof Error ? e : new Error(String(e))); + return null; + } + }, + }); try { // Loaded here, with the scenes, so the main chunk does not carry the terrain sky or the baked tables. const { loadWeather, ridgeSkyFor, terrainSkyFor } = await import('./skyForState'); - if (config?.style === 'raymarch') return (await import('./Scene')).createScene(options); + if (config?.style === 'raymarch') { + const { createScene } = await import('./Scene'); + return guarded(() => createScene(options)); + } if (config?.style === 'terrain') { const { createTerrainScene } = await import('./terrain/Terrain'); - const sky = terrainSkyFor(state); - const scene = createTerrainScene({ ...options, ...sky }); - // No WebGL2 (or no usable GL): the terrain's sky alone on the same canvas, not bare ground. - if (scene) return scene; const { createTerrainSkyScene } = await import('./terrain/TerrainSky2D'); - return createTerrainSkyScene({ ...options, ...sky }); + const sky = terrainSkyFor(state); + // No WebGL2 (or no usable GL): the terrain's sky alone on the same canvas, not bare ground. + return guarded( + () => + createTerrainScene({ ...options, ...sky }) ?? + createTerrainSkyScene({ ...options, ...sky }) + ); } const { createRidgeScene } = await import('./ridge/Ridge'); - await loadWeather(weatherUrl()); - return createRidgeScene({ ...options, sky: ridgeSkyFor(state) }); + const { manifest, fail } = await manifestOf(config); + await loadWeather(weatherUrl(), (manifest?.view ?? FALLBACK_VIEW).place); + // The planes load with the scene chunk and the weather: createRidgeScene stays synchronous. Any failure is the sky alone. + let backdrop: Backdrop | null = null; + let sky: SkyColours | undefined; + let planesFail: Error | null = fail; + if (manifest) { + try { + const manifestSky = ridgeSkyFor(state, manifest.view); + sky = manifestSky; + const choice = frameChoice( + manifest.frames, + (manifestSky.physical as NonNullable).sun + ); + const { loadBackdrop } = await import('./ridge/Backdrop'); + backdrop = await loadBackdrop(manifest, choice); + if (!backdrop) throw new Error('ridge planes did not load'); + } catch (e) { + backdrop = null; + sky = undefined; + planesFail = e instanceof Error ? e : new Error(String(e)); + } + } + const made = guarded(() => + createRidgeScene({ + ...options, + sky: sky ?? ridgeSkyFor(state, FALLBACK_VIEW), + backdrop: backdrop ?? undefined, + }) + ); + return { ...made, planesFail }; } catch (e) { options.onCompileFail?.(e instanceof Error ? e : new Error(String(e))); - return null; + return { make: () => null, planesFail: null }; } } @@ -58,8 +135,9 @@ async function skyKey( try { const { loadWeather, ridgeSkyKey, terrainSkyFor } = await import('./skyForState'); if (config?.style === 'terrain') return JSON.stringify(terrainSkyFor(state)); - await loadWeather(weatherUrl()); - return ridgeSkyKey(state); + const view = (await manifestOf(config)).manifest?.view ?? FALLBACK_VIEW; + await loadWeather(weatherUrl(), view.place); + return ridgeSkyKey(state, view); } catch { // The chunk failed to load: no key, so every change rebuilds (and `create` reports the failure). return null; @@ -87,11 +165,20 @@ export async function startBackgroundScene( const tier = resolveTier(config, capabilities); if (tier === 'off') return null; const debug = debugOverlaysAllowed(config); - const build = (state: SkyState) => create(config, { ...options, tier, debug }, state); + // What the host was last told of the planes: only the live scene speaks, and only when its state changes. + let planesFailed = false; + const announce = (planesFail: Error | null) => { + if (planesFail && !planesFailed) options.onPlanesFail?.(planesFail); + if (!planesFail && planesFailed) options.onPlanesOk?.(); + planesFailed = planesFail !== null; + }; + const prepared = (state: SkyState) => prepare(config, { ...options, tier, debug }, state); const state = getSkyState(); const key0 = config?.style === 'raymarch' ? null : await skyKey(config, state); - const first = await build(state); + const firstReady = await prepared(state); + const first = firstReady.make(); if (!first || config?.style === 'raymarch') return first; + announce(firstReady.planesFail); let inner: Scene | null = first; let built = key0; @@ -108,14 +195,14 @@ export async function startBackgroundScene( generation += 1; const mine = generation; built = key; + // The old scene stays up while the next one loads; a build that is stale or after dispose is never made, so it never speaks. + const ready = await prepared(next); + if (disposed || mine !== generation) return; inner?.dispose(); inner = null; - const scene = await build(next); - if (disposed || mine !== generation) { - scene?.dispose(); - return; - } + const scene = ready.make(); inner = scene; + if (scene) announce(ready.planesFail); if (!scene) options.onInactive?.(); else { options.onActive?.(); diff --git a/src/app/features/scene/ridge/Backdrop.test.ts b/src/app/features/scene/ridge/Backdrop.test.ts new file mode 100644 index 00000000..8c88d46f --- /dev/null +++ b/src/app/features/scene/ridge/Backdrop.test.ts @@ -0,0 +1,44 @@ +import { describe, expect, it, vi } from 'vitest'; +import { loadBackdrop } from './Backdrop'; +import { frameChoice } from './frameChoice'; +import { parseManifest } from './manifest'; +import { wireManifest } from './manifest.fixture'; + +const manifest = parseManifest(wireManifest(), '/d/'); +const img = (src: string) => ({ src } as unknown as HTMLImageElement); + +describe('loadBackdrop', () => { + it('loads the planes of the needed frames only, by manifest directory', async () => { + const load = vi.fn(async (u: string) => img(u)); + const one = await loadBackdrop( + manifest, + frameChoice(manifest.frames, { elevation: 60, azimuth: 180 }), + load + ); + expect(load.mock.calls.map((c) => c[0]).sort()).toEqual([ + '/d/noon-far.webp', + '/d/noon-mid.webp', + '/d/noon-near.webp', + ]); + expect(one?.b).toBeNull(); + load.mockClear(); + const two = await loadBackdrop( + manifest, + frameChoice(manifest.frames, { elevation: 10, azimuth: 130 }), + load + ); + expect(load).toHaveBeenCalledTimes(6); + expect(two?.b?.far.src).toBe('/d/morning-far.webp'); + expect(two?.a.near.src).toBe('/d/dawn-near.webp'); + }); + + it('is null, and does not throw, when any image rejects', async () => { + const load = vi.fn(async (u: string) => { + if (u.includes('mid')) throw new Error('decode'); + return img(u); + }); + await expect( + loadBackdrop(manifest, frameChoice(manifest.frames, { elevation: 60, azimuth: 180 }), load) + ).resolves.toBeNull(); + }); +}); diff --git a/src/app/features/scene/ridge/Backdrop.ts b/src/app/features/scene/ridge/Backdrop.ts new file mode 100644 index 00000000..f1360980 --- /dev/null +++ b/src/app/features/scene/ridge/Backdrop.ts @@ -0,0 +1,44 @@ +// The decoded planes the scene composes: only the frames the choice needs. Failure is a value (null), never a throw. +import type { FrameChoice } from './frameChoice'; +import type { Frame, PlaneName, RidgeManifest } from './manifest'; +import { PLANE_NAMES } from './manifest'; + +export type Planes = Record; + +export interface Backdrop { + manifest: RidgeManifest; + choice: FrameChoice; + /** Decoded planes of frame a, and of frame b when the choice has one. */ + a: Planes; + b: Planes | null; +} + +export type ImageLoader = (url: string) => Promise; + +/** The browser's decoder: an that has decoded, so the first paint does not wait on it. */ +export const loadImage: ImageLoader = async (url) => { + const img = new Image(); + img.decoding = 'async'; + img.src = url; + await img.decode(); + return img; +}; + +export async function loadBackdrop( + manifest: RidgeManifest, + choice: FrameChoice, + load: ImageLoader = loadImage +): Promise { + const planes = async (f: Frame): Promise => { + const [far, mid, near] = await Promise.all( + PLANE_NAMES.map((n) => load(`${manifest.dir}${f.planes[n]}`)) + ); + return { far, mid, near }; + }; + try { + const [a, b] = await Promise.all([planes(choice.a), choice.b ? planes(choice.b) : null]); + return { manifest, choice, a, b }; + } catch { + return null; + } +} diff --git a/src/app/features/scene/ridge/Ridge.test.ts b/src/app/features/scene/ridge/Ridge.test.ts index cb24f04b..b916f59e 100644 --- a/src/app/features/scene/ridge/Ridge.test.ts +++ b/src/app/features/scene/ridge/Ridge.test.ts @@ -1,24 +1,16 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { createRidgeScene } from './Ridge'; -import { bakeSlice, BakeParams, layerPaint } from './ridgeBake'; import { valueNoise, hash2 } from './noise'; import { FrameSampler, frameStats, SLOW_P95_MS, WARMUP_FRAMES, WINDOW_MS } from './probe'; -import { - AERIAL, - LAYERS, - edgeBlur, - hazeColour, - layerColour, - layerSize, - profile, - ridgeY, - scatterAlpha, - transmittance, -} from './ridgeWorld'; -import { skyColours, SkyColours } from './skyColour'; +import type { SkyColours } from './skyColour'; import { makeStars } from './stars'; -import { makePhysicalSky } from './physicalSky'; +import { makePhysicalSky, paintSky as paintPhysicalSky } from './physicalSky'; import { startBackgroundScene } from '../index'; +import { frameChoice } from './frameChoice'; +import { parseManifest } from './manifest'; +import { ELSEWHERE_VIEW, wireManifest } from './manifest.fixture'; +import type { Backdrop } from './Backdrop'; +import { FALLBACK_VIEW, windowFor } from './view'; describe('noise', () => { it('is deterministic and in [0, 1)', () => { @@ -36,111 +28,6 @@ describe('noise', () => { }); }); -describe('ridge profile', () => { - it('stays in [0, 1] for any world-x, negative and far included, and layers differ', () => { - for (const spec of LAYERS) { - for (let i = -300; i < 300; i += 7) { - for (const off of [0, 1234.5, 98765.25]) { - const p = profile(spec, i / 50 + off); - expect(p).toBeGreaterThanOrEqual(0); - expect(p).toBeLessThanOrEqual(1); - } - } - } - expect(profile(LAYERS[0], 0.3)).not.toBeCloseTo(profile(LAYERS[1], 0.3), 3); - }); - - it('ridge tops lie inside the layer band', () => { - const size = layerSize(400, 800, 1); - for (const spec of LAYERS) { - for (let x = -500; x < 5 * size.period; x += 17) { - const y = ridgeY(spec, x / size.period, size.height, 800); - expect(y).toBeGreaterThanOrEqual(0); - expect(y).toBeLessThanOrEqual(size.height); - } - } - }); - - it('layers get darker and slower toward the viewer, and their sizes are integers', () => { - const sky = skyColours(); - const lum = (c: readonly number[]) => c[0] + c[1] + c[2]; - for (let i = 1; i < LAYERS.length; i += 1) { - expect(lum(layerColour(LAYERS[i], sky))).toBeLessThan(lum(layerColour(LAYERS[i - 1], sky))); - expect(LAYERS[i].seconds).toBeLessThan(LAYERS[i - 1].seconds); - } - for (const [w, h, s] of [ - [393, 851, 2], - [1280, 720, 1], - [412.5, 915.3, 2], - ] as const) { - const z = layerSize(w, h, s); - expect( - Number.isInteger(z.period) && Number.isInteger(z.chunk) && Number.isInteger(z.height) - ).toBe(true); - expect(z.chunk).toBeGreaterThan(z.period); - } - }); -}); - -describe('aerial perspective', () => { - const sky = skyColours(); - const lum = (c: readonly number[]) => 0.2126 * c[0] + 0.7152 * c[1] + 0.0722 * c[2]; - const chroma = (c: readonly number[]) => Math.max(...c) - Math.min(...c); - const far = LAYERS[0]; - const near = LAYERS[LAYERS.length - 1]; - - it('transmittance is Beer-Lambert in distance: 1 at the viewer, exp(-k d) behind, strictly falling', () => { - expect(transmittance(near)).toBe(1); - for (const l of LAYERS) - expect(transmittance(l)).toBeCloseTo(Math.exp(-AERIAL.extinction * (1 - l.depth)), 12); - for (let i = 1; i < LAYERS.length; i += 1) - expect(transmittance(LAYERS[i])).toBeGreaterThan(transmittance(LAYERS[i - 1])); - // two layers' optical depths add: T(a)*T(b) = T(a+b) - const t = (d: number) => Math.exp(-AERIAL.extinction * d); - expect(t(0.3) * t(0.4)).toBeCloseTo(t(0.7), 12); - }); - - it('the nearest layer is exactly the ground colour; the farthest tends to the haze', () => { - expect(layerColour(near, sky)).toEqual([...sky.ground]); - const h = hazeColour(sky); - const f = layerColour(far, sky); - const dist = (a: readonly number[], b: readonly number[]) => - Math.hypot(a[0] - b[0], a[1] - b[1], a[2] - b[2]); - expect(dist(f, h)).toBeLessThan(dist(sky.ground, h) * (transmittance(far) + 0.2)); - }); - - it('colour moves toward the haze and loses chroma with distance, beyond what the mix alone does', () => { - const h = hazeColour(sky); - for (const l of LAYERS.slice(0, -1)) { - const t = transmittance(l); - const c = layerColour(l, sky); - const mixed = [0, 1, 2].map((i) => sky.ground[i] * t + h[i] * (1 - t)); - expect(chroma(c)).toBeLessThan(chroma(mixed)); - expect(Math.abs(lum(c) - lum(mixed))).toBeLessThan(1.5); // desaturation keeps luma - } - }); - - it('edge softening grows with distance and is zero at the viewer', () => { - expect(edgeBlur(near)).toBe(0); - for (let i = 1; i < LAYERS.length; i += 1) - expect(edgeBlur(LAYERS[i])).toBeLessThan(edgeBlur(LAYERS[i - 1])); - expect(edgeBlur(far)).toBeLessThanOrEqual(AERIAL.blurPx); - }); - - it('in-scatter is faint, grows with distance, is off without a sun, and never repeats', () => { - const az = 0.3; - const s = { ...sky, sunAzimuth: az }; - const lobe = (t: number) => scatterAlpha(far, s, t); - expect(lobe(az * 1.9)).toBeGreaterThan(lobe(az * 1.9 + 0.95)); - for (const period of [1, 1.9, 3.8, 5.7, 19]) - expect(Math.abs(lobe(0.7 + period) - lobe(0.7))).toBeGreaterThan(1e-4); - expect(lobe(az * 1.9)).toBeLessThanOrEqual(AERIAL.scatter); - expect(scatterAlpha(near, s, az)).toBe(0); - expect(scatterAlpha(LAYERS[1], s, az * 1.9)).toBeLessThan(scatterAlpha(far, s, az * 1.9)); - expect(scatterAlpha(far, { ...sky, sunAzimuth: undefined }, az)).toBe(0); - }); -}); - describe('frame sampler', () => { const feed = (s: FrameSampler, dt: number, frames: number, from = 0) => { let t = from; @@ -242,26 +129,22 @@ function fakeEl(tag = 'div') { }; return el; } -// A day sky has no stars, so the scene tests below see only the ridge loop; the dusk default +// A day sky has no stars, so the scene tests above see only the sky; the dusk default // carries stars and a twinkle overlay, tested in 'the starfield in the scene'. const DAY: SkyColours = { top: [96, 150, 220], mid: [150, 190, 235], horizon: [240, 215, 190], - ground: [7, 17, 26], - sunAzimuth: 0.3, }; const draws: string[] = []; -/** Every ImageData put on any canvas, in order. */ -const puts: any[] = []; -/** For every drawImage: the source canvas's width as it was at the moment of the draw. */ -const drawnWidths: number[] = []; -function ctx(withFilter = false) { +const images: unknown[][] = []; +/** Every RGBA grid the host canvas was painted from (the small canvas's putImageData). */ +const painted: Uint8ClampedArray[] = []; +function ctx() { const c: any = { - globalCompositeOperation: 'source-over', createLinearGradient: () => ({ addColorStop: vi.fn() }), fillRect() { - draws.push(c.globalCompositeOperation === 'source-atop' ? 'scatter' : 'sky'); + draws.push('sky'); }, save() {}, restore() {}, @@ -272,7 +155,9 @@ function ctx(withFilter = false) { width: w, height: h, }), - putImageData: (img: any) => puts.push(img), + putImageData(img: { data: Uint8ClampedArray }) { + painted.push(img.data); + }, beginPath() {}, moveTo() {}, stroke() {}, @@ -292,13 +177,13 @@ function ctx(withFilter = false) { if (c.arcing) c.arcing = false; else draws.push('fill'); }, - drawImage: (src: any) => { - drawnWidths.push(src.width); - draws.push('flatten'); + drawImage(...a: unknown[]) { + images.push(Object.assign(a, { alpha: c.globalAlpha, op: c.globalCompositeOperation })); }, + globalAlpha: 1, + globalCompositeOperation: 'source-over', set fillStyle(_v: unknown) {}, }; - if (withFilter) c.filter = 'none'; return c; } @@ -310,8 +195,8 @@ let search: string; beforeEach(() => { rafQueue = []; draws.length = 0; - puts.length = 0; - drawnWidths.length = 0; + images.length = 0; + painted.length = 0; search = ''; motion = { matches: false, addEventListener: vi.fn(), removeEventListener: vi.fn() }; doc = Object.assign(new EventTarget(), { @@ -347,11 +232,6 @@ function host() { parent.appendChild(canvas); return { parent, canvas }; } -/** The rig holds one track per layer, farthest first; each track holds three chunk canvases. */ -const rigOf = (parent: any) => parent.children.find((c: any) => c.tag === 'div'); -const tracksOf = (parent: any): any[] => rigOf(parent).children; -const animsOf = (parent: any): any[] => - [rigOf(parent), ...tracksOf(parent)].flatMap((e: any) => e.anims); const runFrames = (dt: number, n: number, from = 0) => { let t = from; for (let i = 0; i < n && rafQueue.length; i += 1) { @@ -375,29 +255,27 @@ describe('createRidgeScene', () => { expect(createRidgeScene({ canvas, tier: 'full', sky: DAY })).toBeNull(); }); - it('bakes the sky once, and per layer only the first chunk before the first frame, at integer sizes, farthest first', () => { + it('paints the sky once at the viewport in canvas pixels and adds nothing to the page in a clear day', () => { const { parent, canvas } = host(); - const baked: any[] = []; - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, onBake: (b) => baked.push(b) })!; + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; expect(s).not.toBeNull(); - const tracks = tracksOf(parent); - expect(tracks).toHaveLength(LAYERS.length); - tracks.forEach((t: any, i: number) => { - expect(t.children).toHaveLength(3); - expect(t.animate).toHaveBeenCalledTimes(Number.isFinite(LAYERS[i].seconds) ? 1 : 0); - t.children.forEach((c: any) => { - expect(Number.isInteger(c.width) && Number.isInteger(c.height)).toBe(true); - expect(c.width).toBe(layerSize(400, 800, 2).chunk); - }); - }); - expect(baked.map((b) => [b.layer, b.chunk, b.first])).toEqual( - LAYERS.map((l) => [l.index, 0, true]) - ); + expect([canvas.width, canvas.height]).toEqual([800, 1600]); expect(draws.filter((d) => d === 'sky')).toHaveLength(1); + expect(parent.children).toEqual([canvas]); s.dispose(); }); - it('after the layers are painted, a smooth run draws nothing more and ends its rAF loop', () => { + it("paints the sky through the camera of the physical sky's own View, not a default one", () => { + const { canvas } = host(); + const physical = makePhysicalSky('day', new Date('2026-06-21T10:40:00Z'), 0, ELSEWHERE_VIEW); + const s = createRidgeScene({ canvas, tier: 'full', sky: { ...DAY, physical } })!; + const want = paintPhysicalSky(physical, 400, 800, windowFor(ELSEWHERE_VIEW, 400, 800).camera); + expect(painted).toHaveLength(1); + expect(Array.from(painted[0])).toEqual(Array.from(want.data)); + s.dispose(); + }); + + it('a smooth run draws nothing more and ends its rAF loop', () => { const { canvas } = host(); const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; const before = draws.length; @@ -407,53 +285,23 @@ describe('createRidgeScene', () => { s.dispose(); }); - it('p95 over 33 ms across 2 s flattens to a still image and removes the layers', () => { - const { parent, canvas } = host(); + it('p95 over 33 ms across 2 s settles to a still and reports it', () => { + const { canvas } = host(); const onProbe = vi.fn(); const s = createRidgeScene({ canvas, tier: 'full', onProbe, sky: DAY })!; runFrames(100, 100); - expect(draws.filter((d) => d === 'flatten')).toHaveLength(LAYERS.length); - expect(parent.children).toEqual([canvas]); expect(onProbe).toHaveBeenLastCalledWith(expect.objectContaining({ still: true })); expect(rafQueue).toHaveLength(0); s.dispose(); }); - it("'still' tier flattens immediately and never starts a loop", () => { + it("'still' tier never starts a loop", () => { const { parent, canvas } = host(); createRidgeScene({ canvas, tier: 'still' }); expect(parent.children).toEqual([canvas]); - expect(draws.filter((d) => d === 'flatten')).toHaveLength(LAYERS.length); expect(rafQueue).toHaveLength(0); }); - it('prefers-reduced-motion: layers are built but never played, and nothing is sampled', () => { - motion.matches = true; - const { canvas } = host(); - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - const anims = animsOf(canvas.parentElement); - expect(anims.length).toBe(LAYERS.filter((l) => Number.isFinite(l.seconds)).length + 1); // one drift per drifting layer (the horizon does not) and the sway - expect(anims.every((a: any) => a.pause.mock.calls.length > 0)).toBe(true); - anims.forEach((a: any) => expect(a.play).not.toHaveBeenCalled()); - expect(rafQueue).toHaveLength(0); - s.dispose(); - }); - - it('pauses the drift when the tab is hidden and resumes when it is visible', () => { - const { parent, canvas } = host(); - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - const anims = animsOf(parent); - anims.forEach((a: any) => a.pause.mockClear()); - doc.visibilityState = 'hidden'; - doc.dispatchEvent(new Event('visibilitychange')); - anims.forEach((a: any) => expect(a.pause).toHaveBeenCalled()); - anims.forEach((a: any) => a.play.mockClear()); - doc.visibilityState = 'visible'; - doc.dispatchEvent(new Event('visibilitychange')); - anims.forEach((a: any) => expect(a.play).toHaveBeenCalled()); - s.dispose(); - }); - it('?probe=1 keeps the rAF loop alive and shows median and p95', () => { search = '?probe=1'; const { parent, canvas } = host(); @@ -469,9 +317,8 @@ describe('createRidgeScene', () => { it('?probe=1 does nothing where the overlays are not allowed: no readout, the loop ends', () => { search = '?probe=1'; const { parent, canvas } = host(); - const before = parent.children.length; const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - expect(parent.children.length).toBe(before + 1); // the rig + expect(parent.children).toEqual([canvas]); runFrames(16.7, 300); expect(rafQueue.length).toBe(0); s.dispose(); @@ -485,31 +332,19 @@ describe('createRidgeScene', () => { (window as any).innerHeight = 0; const s = createRidgeScene({ canvas, tier: 'full', sky: DAY }); expect(s).not.toBeNull(); - expect(parent.children).toEqual([canvas]); expect(draws).toHaveLength(0); // Still zero: a resize does not paint either. window.dispatchEvent(new Event('resize')); await new Promise((r) => setTimeout(r, 300)); - expect(parent.children).toEqual([canvas]); + expect(draws).toHaveLength(0); (window as any).innerWidth = 400; (window as any).innerHeight = 800; window.dispatchEvent(new Event('resize')); await new Promise((r) => setTimeout(r, 300)); - expect(tracksOf(parent)).toHaveLength(LAYERS.length); expect(draws.filter((d) => d === 'sky')).toHaveLength(1); s!.dispose(); expect(parent.children).toEqual([canvas]); }); - - it('dispose cancels the loop, the animations and the layers', () => { - const { parent, canvas } = host(); - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - const anims = animsOf(parent); - s.dispose(); - anims.forEach((a: any) => expect(a.cancel).toHaveBeenCalled()); - expect(parent.children).toEqual([canvas]); - expect(rafQueue).toHaveLength(0); - }); }); describe('the door', () => { @@ -530,65 +365,6 @@ describe('the door', () => { }); }); -describe('aerial perspective in the scene', () => { - it('is baked once: one scatter fill per hazy layer, none per frame, the nearest layer has none', () => { - const { canvas } = host(); - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - expect(draws.filter((d) => d === 'scatter')).toHaveLength(LAYERS.length - 1); - const before = draws.length; - runFrames(16.7, 400); - expect(draws.length).toBe(before); - s.dispose(); - }); - - it('a sky without a sun bakes no scatter', () => { - const { canvas } = host(); - const s = createRidgeScene({ - canvas, - tier: 'full', - sky: { ...DAY, sunAzimuth: undefined }, - })!; - expect(draws.filter((d) => d === 'scatter')).toHaveLength(0); - s.dispose(); - }); - - it('softens with the canvas filter where it exists, blur scaled by DPR, from pixels baked past the chunk edges', () => { - const { parent, canvas } = host(); - const filters: string[] = []; - const orig = (document as any).createElement; - (document as any).createElement = (t: string) => { - const el = orig(t); - el.getContext = vi.fn(() => { - const c = ctx(true); - let f = 'none'; - Object.defineProperty(c, 'filter', { - get: () => f, - set: (v: string) => { - f = v; - filters.push(v); - }, - }); - return c; - }); - return el; - }; - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; - const blurs = filters.filter((f) => f !== 'none'); - expect(blurs).toHaveLength(LAYERS.length - 1); // nearest is sharp - expect(blurs[0]).toBe(`blur(${edgeBlur(LAYERS[0]) * 2}px)`); // DPR 2 - expect(parent.children).toHaveLength(2); // sky canvas and the rig - s.dispose(); - }); - - it("'still' tier keeps the sky and flattens the aerial layers without extra elements", () => { - const { parent, canvas } = host(); - createRidgeScene({ canvas, tier: 'still' }); - expect(parent.children).toEqual([canvas]); - expect(draws.filter((d) => d === 'sky')).toHaveLength(1); - expect(draws.filter((d) => d === 'flatten')).toHaveLength(LAYERS.length); - }); -}); - describe('the starfield in the scene', () => { const count = (kind: string) => draws.filter((d) => d === kind).length; const night = { @@ -602,7 +378,7 @@ describe('the starfield in the scene', () => { const calls = motion.addEventListener.mock.calls.filter((c: any[]) => c[0] === name); return calls[calls.length - 1][1] as () => void; }; - // Everything but the overlay's own marks: the bake and the ridges. + // Everything but the overlay's own marks: the sky and its stars. const baked = () => draws.filter((d) => d !== 'twinkle' && d !== 'clear').length; it('bakes every star once into the sky; per frame only the overlay is touched', () => { @@ -610,8 +386,8 @@ describe('the starfield in the scene', () => { const s = createRidgeScene({ canvas, tier: 'full', sky: night })!; expect(count('star')).toBe(N); expect(count('sky')).toBe(1); - expect(parent.children[1].anims).toHaveLength(0); // the overlay: above the sky, under the ridges - expect(parent.children).toHaveLength(3); + expect(parent.children[1].anims).toHaveLength(0); // the overlay, above the sky + expect(parent.children).toHaveLength(2); const before = baked(); runFrames(16.7, 300); // 5 s at 60 fps; the overlay repaints at 20 fps expect(baked()).toBe(before); @@ -627,7 +403,7 @@ describe('the starfield in the scene', () => { const { parent, canvas } = host(); const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; expect(count('star')).toBe(0); - expect(parent.children).toHaveLength(2); + expect(parent.children).toHaveLength(1); runFrames(16.7, 60); expect(count('clear')).toBe(0); s.dispose(); @@ -687,13 +463,12 @@ describe('the starfield in the scene', () => { s.dispose(); }); - it('flattening to a still (slow frames) drops the overlay and leaves every star baked under the ridges', () => { + it('flattening to a still (slow frames) drops the overlay and leaves every star baked into the sky', () => { const { parent, canvas } = host(); const s = createRidgeScene({ canvas, tier: 'full', sky: night })!; runFrames(100, 100); expect(parent.children).toEqual([canvas]); expect(count('star')).toBe(N); - expect(draws.indexOf('flatten')).toBeGreaterThan(draws.lastIndexOf('star')); expect(rafQueue).toHaveLength(0); s.dispose(); }); @@ -707,125 +482,14 @@ describe('the starfield in the scene', () => { }); }); -describe('endless drift: chunks baked on demand and recycled', () => { - const size = layerSize(400, 800, 2); // the fake host: 400 x 800 CSS px at DPR 2 - const until = async (cond: () => boolean) => { - const t0 = Date.now(); - while (!cond()) { - if (Date.now() - t0 > 10000) throw new Error('timed out waiting for the background bakes'); - await new Promise((r) => setTimeout(r, 5)); - } - }; - /** The pixels chunk `m` of layer `li` must hold: the pure bake of its world columns, no blur. */ - const expected = (li: number, m: number) => { - const p: BakeParams = { - spec: LAYERS[li], - sky: DAY, - period: size.period, - scale: 2, - viewH: 1600, - rows: size.height, - bandH: size.height, - px0: m * size.chunk, - cols: size.chunk, - }; - const out = new Uint8ClampedArray(p.cols * p.rows * 4); - bakeSlice(out, p, layerPaint(p.spec, DAY), 0, p.cols); - return Buffer.from(out.buffer); - }; - /** Each distinct ImageData put, in order of first appearance: one per baked chunk. */ - const baked = () => [...new Set(puts)].map((img) => Buffer.from(img.data.buffer)); - const start = () => { - const { parent, canvas } = host(); - const records: any[] = []; - const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, onBake: (b) => records.push(b) })!; - return { parent, s, records }; - }; - - it('bakes every chunk from its own world columns: no offset, the next chunk continues the last', async () => { - const { s, records } = start(); - await until(() => records.length === 3 * LAYERS.length); - // First view: chunk 0 of each layer; then, per layer in queue order, chunks 1 and 2. - const order = [ - ...LAYERS.map((l) => [l.index, 0]), - ...LAYERS.flatMap((l) => [ - [l.index, 1], - [l.index, 2], - ]), - ]; - expect(records.map((r) => [r.layer, r.chunk])).toEqual(order); - const imgs = baked(); - expect(imgs).toHaveLength(order.length); - order.forEach(([li, m], i) => expect(imgs[i].equals(expected(li, m))).toBe(true)); - s.dispose(); - }); - - it('when the drift animation ends, the chunks move one slot left and the track restarts', async () => { - const { parent, s, records } = start(); - await until(() => records.length === 3 * LAYERS.length); - const track = tracksOf(parent)[1]; // the first layer that drifts: the horizon, [0], stands still - const [e0, e1, e2] = track.children; - const first = track.anims[0]; - // One chunk of drift, not one viewport: the track slides by the width of a chunk. - expect(first.keyframes[1].transform).toContain(`${-size.chunk / 2}px`); - expect(track.animate).toHaveBeenCalledTimes(1); - first.finish(); - expect(first.cancel).toHaveBeenCalled(); - expect(track.animate).toHaveBeenCalledTimes(2); - const w = size.chunk / 2; - expect([e1.style.left, e2.style.left, e0.style.left]).toEqual(['0px', `${w}px`, `${2 * w}px`]); - expect(track.anims[1].keyframes[1].transform).toContain(`${-w}px`); - s.dispose(); - }); - - it('the canvas that left is baked with the next stretch of world, and each rotation after it, without end', async () => { - const { parent, s, records } = start(); - await until(() => records.length === 3 * LAYERS.length); - const track = tracksOf(parent)[1]; - const done = () => records.filter((r) => r.layer === 1).map((r) => r.chunk); - for (let m = 3; m <= 5; m += 1) { - track.anims[track.anims.length - 1].finish(); - await until(() => done().includes(m)); - } - expect(done()).toEqual([0, 1, 2, 3, 4, 5]); - // The pixels of chunks 3 to 5 are the world's, not a repeat of an earlier one. - const imgs = baked(); - const layer1 = imgs.filter((_, i) => records[i].layer === 1); - [3, 4, 5].forEach((m, k) => expect(layer1[3 + k].equals(expected(1, m))).toBe(true)); - expect(layer1[3].equals(layer1[0])).toBe(false); - s.dispose(); - }); - - it('with the blur, each chunk is blurred from a scratch canvas of its own width: seams stay opaque and exact', async () => { - const orig = (document as any).createElement; - (document as any).createElement = (tag: string) => { - const el = orig(tag); - el.getContext = vi.fn(() => ctx(true)); - return el; - }; - const { s, records } = start(); - await until(() => records.length === 3 * LAYERS.length); - const want = new Set( - LAYERS.filter((l) => edgeBlur(l) > 0).map( - (l) => size.chunk + 2 * Math.ceil(3 * edgeBlur(l) * 2) - ) - ); - expect(want.size).toBeGreaterThan(1); // the layers' pads differ, which is what a shared canvas gets wrong - // Every blur reads a source exactly as wide as that chunk's padded bake, at the moment of the draw. - expect(new Set(drawnWidths)).toEqual(want); - s.dispose(); - }); -}); - describe('rain in the scene', () => { const rainy = (w: number): SkyColours => ({ ...DAY, - physical: makePhysicalSky('day', new Date('2026-06-21T10:40:00Z'), w), + physical: makePhysicalSky('day', new Date('2026-06-21T10:40:00Z'), w, FALLBACK_VIEW), }); - const rainEls = (parent: any) => - parent.children.filter((c: any) => c.tag === 'div' && c !== rigOf(parent)); + const rainEls = (parent: any) => parent.children.filter((c: any) => c.tag === 'div'); - it('lays one falling tile per rain layer over the ridges when it rains, each slid by its own height on the compositor', () => { + it('lays one falling tile per rain layer over the sky when it rains, each slid by its own height on the compositor', () => { const { parent, canvas } = host(); const s = createRidgeScene({ canvas, tier: 'full', sky: rainy(1) })!; const els = rainEls(parent); @@ -860,3 +524,226 @@ describe('rain in the scene', () => { s.dispose(); }); }); + +describe('the ridge planes in the scene', () => { + const manifest = parseManifest(wireManifest(), '/d/'); + const fakeImg = (src: string) => { + const el = fakeEl('img'); + el.src = src; + el.cloneNode = () => fakeImg(src); + return el as unknown as HTMLImageElement; + }; + const planes = (k: string) => ({ + far: fakeImg(`${k}-far`), + mid: fakeImg(`${k}-mid`), + near: fakeImg(`${k}-near`), + }); + const backdropAt = (elevation: number, azimuth: number): Backdrop => { + const choice = frameChoice(manifest.frames, { elevation, azimuth }); + return { manifest, choice, a: planes(choice.a.key), b: choice.b ? planes(choice.b.key) : null }; + }; + const NOON = backdropAt(60, 180); + const BLEND = backdropAt(10, 130); + const night: SkyColours = { + ...DAY, + top: [10, 14, 40], + mid: [30, 34, 80], + horizon: [60, 50, 90], + physical: makePhysicalSky('night', new Date('2026-06-21T22:40:00Z'), 1, FALLBACK_VIEW), + }; + const rigOf = (parent: any) => + parent.children.find((c: any) => c.children.some((g: any) => g.anims.length)); + + it('stacks the rig after the twinkle canvas and before the rain, with no z-index and no fixed position', () => { + const { parent, canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: night, backdrop: NOON })!; + const kinds = parent.children.map((c: any) => c.tag); + expect(kinds).toEqual(['canvas', 'canvas', 'div', 'div', 'div']); + expect(parent.children[2].children).toHaveLength(3); + parent.children.forEach((c: any) => { + expect(c.style.zIndex).toBeUndefined(); + expect(c.style.position).not.toBe('fixed'); + }); + s.dispose(); + expect(parent.children).toEqual([canvas]); + }); + + it('is three groups, far to near, each placed by windowFor and drifting by its depth of driftPx', () => { + const { parent, canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: NOON })!; + const rig = rigOf(parent); + const win = windowFor(manifest.view, 400, 800); + expect(rig.children).toHaveLength(3); + rig.children.forEach((g: any, k: number) => { + expect(g.style.width).toBe(`${win.plane.w}px`); + expect(g.style.height).toBe(`${win.plane.h}px`); + expect(g.style.bottom).toBe('0px'); + expect(g.style.left).toBe(`${(400 - win.plane.w) / 2}px`); + expect(g.children.map((i: any) => i.src)).toEqual([`noon-${['far', 'mid', 'near'][k]}`]); + const { keyframes, options } = g.anims[0]; + const reach = win.driftPx * [0.35, 0.7, 1][k]; + expect(keyframes).toEqual([ + { transform: `translate3d(${-reach}px,0,0)` }, + { transform: `translate3d(${reach}px,0,0)` }, + ]); + expect(options).toMatchObject({ + duration: 75000, + iterations: Infinity, + direction: 'alternate', + easing: 'ease-in-out', + }); + }); + s.dispose(); + }); + + it('crossfades a into b: a at 1 - w, b added at w, in a group of its own', () => { + const { parent, canvas } = host(); + const BLEND3 = backdropAt(4, 130); // w = 0.2, not the symmetric half + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: BLEND3 })!; + const { w } = BLEND3.choice; + expect(w).toBeCloseTo(0.2, 6); + const g = rigOf(parent).children[1]; + expect(g.style.isolation).toBe('isolate'); + expect( + g.children.map((i: any) => [i.src, i.style.opacity, i.style.mixBlendMode ?? null]) + ).toEqual([ + ['dawn-mid', String(1 - w), null], + ['morning-mid', String(w), 'plus-lighter'], + ]); + s.dispose(); + }); + + it('a lone frame is drawn at full opacity with no blend mode', () => { + const { parent, canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: NOON })!; + const g = rigOf(parent).children[1]; + expect( + g.children.map((i: any) => [i.src, i.style.opacity, i.style.mixBlendMode ?? null]) + ).toEqual([['noon-mid', '1', null]]); + s.dispose(); + }); + + it('adds no rAF or timer callback of its own: the drift is Element.animate, the stars alone loop', () => { + const { canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: NOON })!; + expect(rafQueue).toHaveLength(1); // the frame sampler, as without planes + s.dispose(); + const bare = host(); + const b = createRidgeScene({ canvas: bare.canvas, tier: 'full', sky: DAY })!; + expect(rafQueue).toHaveLength(1); + b.dispose(); + }); + + it('pauses the drift under reduced motion, in a hidden tab, and plays it again', () => { + const { parent, canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: NOON })!; + const anims = rigOf(parent).children.map((g: any) => g.anims[0]); + anims.forEach((a: any) => expect(a.play).toHaveBeenCalled()); + anims.forEach((a: any) => a.pause.mockClear()); + motion.matches = true; + motion.addEventListener.mock.calls + .filter((c: any[]) => c[0] === 'change') + .forEach((c: any[]) => c[1]()); + anims.forEach((a: any) => expect(a.pause).toHaveBeenCalled()); + motion.matches = false; + anims.forEach((a: any) => a.pause.mockClear()); + doc.visibilityState = 'hidden'; + doc.dispatchEvent(new Event('visibilitychange')); + anims.forEach((a: any) => expect(a.pause).toHaveBeenCalled()); + s.dispose(); + anims.forEach((a: any) => expect(a.cancel).toHaveBeenCalled()); + }); + + it("a still sums each blended plane in an offscreen (a at 1 - w, then b lighter at w) and draws it at windowFor's placement", () => { + const { parent, canvas } = host(); + const BLEND3 = backdropAt(4, 130); + createRidgeScene({ canvas, tier: 'still', sky: DAY, backdrop: BLEND3 }); + const { w } = BLEND3.choice; + const win = windowFor(manifest.view, 400, 800); + const planesDrawn = images.filter((a) => (a[0] as any).src) as any[]; + expect(planesDrawn.map((a) => [a[0].src, a.alpha, a.op])).toEqual( + ['far', 'mid', 'near'].flatMap((n) => [ + [`dawn-${n}`, 1 - w, 'source-over'], + [`morning-${n}`, w, 'lighter'], + ]) + ); + // Each sum then meets the host canvas once, plainly, at the plane's placement. + const summed = images.filter((a) => !(a[0] as any).src && (a[0] as any).width) as any[]; + expect(summed).toHaveLength(3); + summed.forEach((a) => { + expect([a[1], a[2], a[3], a[4]]).toEqual([ + (800 - win.plane.w * 2) / 2, + 1600 - win.plane.h * 2, + win.plane.w * 2, + win.plane.h * 2, + ]); + expect([a.alpha, a.op]).toEqual([1, 'source-over']); + expect([a[0].width, a[0].height]).toEqual([win.plane.w * 2, win.plane.h * 2]); + }); + expect(parent.children).toEqual([canvas]); + }); + + it('a lone frame in a still goes straight to the host canvas at full alpha', () => { + const { canvas } = host(); + createRidgeScene({ canvas, tier: 'still', sky: DAY, backdrop: NOON }); + const win = windowFor(manifest.view, 400, 800); + const planesDrawn = images.filter((a) => (a[0] as any).src) as any[]; + expect(planesDrawn.map((a) => [a[0].src, a.alpha, a.op])).toEqual( + ['far', 'mid', 'near'].map((n) => [`noon-${n}`, 1, 'source-over']) + ); + const [, x, y, dw, dh] = planesDrawn[0]; + expect([x, y, dw, dh]).toEqual([ + (800 - win.plane.w * 2) / 2, + 1600 - win.plane.h * 2, + win.plane.w * 2, + win.plane.h * 2, + ]); + }); + + it('settles to a still with the planes painted when the frame rate is poor', () => { + const { parent, canvas } = host(); + createRidgeScene({ canvas, tier: 'full', sky: DAY, backdrop: NOON }); + runFrames(100, 400); + expect(images.filter((a) => (a[0] as any).src)).toHaveLength(3); + expect(parent.children).toEqual([canvas]); + }); + + it('with no backdrop it is the sky alone', () => { + const { parent, canvas } = host(); + createRidgeScene({ canvas, tier: 'full', sky: DAY }); + expect(parent.children).toEqual([canvas]); + expect(images.filter((a) => (a[0] as any).src)).toHaveLength(0); + }); +}); + +describe('the scene wiring', () => { + it('sizes from the window when the canvas has no client size', () => { + const { canvas } = host(); + canvas.clientWidth = 0; + canvas.clientHeight = 0; + (window as any).innerWidth = 300; + (window as any).innerHeight = 500; + createRidgeScene({ canvas, tier: 'full', sky: DAY })!.dispose(); + expect([canvas.width, canvas.height]).toEqual([600, 1000]); + }); + + it('a burst of resizes rebuilds once, after 250 ms, and not after dispose', async () => { + vi.useFakeTimers(); + (window as any).setTimeout = setTimeout; + const { canvas } = host(); + const s = createRidgeScene({ canvas, tier: 'full', sky: DAY })!; + const skies = () => draws.filter((d) => d === 'sky').length; + window.dispatchEvent(new Event('resize')); + vi.advanceTimersByTime(200); + window.dispatchEvent(new Event('resize')); + vi.advanceTimersByTime(200); + expect(skies()).toBe(1); + vi.advanceTimersByTime(60); + expect(skies()).toBe(2); + s.dispose(); + window.dispatchEvent(new Event('resize')); + vi.advanceTimersByTime(1000); + expect(skies()).toBe(2); + vi.useRealTimers(); + }); +}); diff --git a/src/app/features/scene/ridge/Ridge.ts b/src/app/features/scene/ridge/Ridge.ts index b0320b1b..89eb4442 100644 --- a/src/app/features/scene/ridge/Ridge.ts +++ b/src/app/features/scene/ridge/Ridge.ts @@ -1,32 +1,14 @@ -/* eslint-disable no-param-reassign -- the bake writes into the canvases and layer records it is handed */ import type { Scene, SceneOptions } from '../Scene'; import { overlayRequested } from '../debugOverlays'; import { FrameSampler, FrameStats } from './probe'; import { skyColours, SkyColours, Srgb } from './skyColour'; import { paintSky as paintPhysicalSky } from './physicalSky'; +import { windowFor } from './view'; +import { crossfade } from './frameChoice'; import { activeAt, drawStars, drawTwinkle as paintTwinkle, makeStars, Star } from './stars'; -import { bakeSlice, BakeParams, layerPaint } from './ridgeBake'; -import { - LAYERS, - LayerSpec, - edgeBlur, - HORIZON_TRACK_SHIFT, - layerSize, - scatterAlpha, - transmittance, -} from './ridgeWorld'; -import { hfovDeg } from './horizon'; -import { viewFor, VFOV_DEG } from './skyDome'; import { drawRainTile, RAIN_TILES } from './rain'; - -/** One chunk's bake: `ms` is the summed task time, `maxTaskMs` the longest single task; `first` marks the bake of the first view. */ -export interface BakeRecord { - layer: number; - chunk: number; - ms: number; - maxTaskMs: number; - first: boolean; -} +import type { Backdrop, Planes } from './Backdrop'; +import { PLANE_NAMES } from './manifest'; export type RidgeOptions = Pick & { /** Show the rAF median/p95 readout. Default: the page URL has `?probe=1`, where `debug` allows it. */ @@ -37,8 +19,8 @@ export type RidgeOptions = Pick & { onProbe?: (s: FrameStats & { still: boolean }) => void; /** The sky's colours; default `skyColours()`, the one function to replace with Void's sun.js. */ sky?: SkyColours; - /** Called after each chunk is baked (a chunk is one layer's stretch of world-x): the cost record. */ - onBake?: (b: BakeRecord) => void; + /** The baked ridge planes, already decoded; none is the sky-only scene (`view.ts` FALLBACK_VIEW). */ + backdrop?: Backdrop; }; const css = (c: Srgb): string => `rgb(${c[0]},${c[1]},${c[2]})`; @@ -79,7 +61,12 @@ function paintSky( const ctx = context2d(canvas); if (!ctx) return false; if (sky.physical) { - const px = paintPhysicalSky(sky.physical, cssW, cssH); + const px = paintPhysicalSky( + sky.physical, + cssW, + cssH, + windowFor(sky.physical.view, cssW, cssH).camera + ); const small = makeCanvas(); small.width = px.w; small.height = px.h; @@ -107,217 +94,26 @@ function paintSky( const clock = (): number => (typeof performance !== 'undefined' ? performance.now() : Date.now()); -type Size = ReturnType; - -const SCATTER_STOPS = 16; - -/** Warm in-scatter over the silhouette only (source-atop): a horizontal gradient over the chunk's world-x. */ -function scatter( - ctx: CanvasRenderingContext2D, - spec: LayerSpec, - sky: SkyColours, - widthPx: number, - heightPx: number, - t0: number, - tPerPx: number, - bandX = 0, - bandW = widthPx -) { - if (sky.sunAzimuth === undefined || transmittance(spec) >= 1) return; // the nearest layer takes none - const g = ctx.createLinearGradient(0, 0, widthPx, 0); - const [r, gr, b] = sky.horizon; - for (let k = 0; k <= SCATTER_STOPS; k += 1) { - const a = scatterAlpha(spec, sky, t0 + (tPerPx * widthPx * k) / SCATTER_STOPS); - g.addColorStop(k / SCATTER_STOPS, `rgba(${r},${gr},${b},${a})`); - } - ctx.globalCompositeOperation = 'source-atop'; - ctx.fillStyle = g; - ctx.fillRect(bandX, 0, bandW, heightPx); - ctx.globalCompositeOperation = 'source-over'; -} - -/** A chunk's bake in slices: `step(budgetMs)` returns true once the chunk is on its canvas. */ -interface Job { - step(budgetMs: number): boolean; -} - -/** - * One layer's stretch of world-x `[m * chunk, (m + 1) * chunk)` painted onto `el`, in three phases of - * column bands, each band sized to the task budget by measuring the last one: bake the pixels - * (`bakeSlice`), put them on a canvas with the in-scatter, and (where the 2D `filter` exists) blur them - * into `el`. The blur needs neighbours, so the pixels are baked `pad` columns past both ends and - * the bottom into a scratch canvas this job owns, and each blurred band reads `pad` columns either side of - * itself: seams show no fade. The scratch is made when the job first runs and dropped when it ends. - */ -function chunkJob( - el: HTMLCanvasElement, - makeCanvas: () => HTMLCanvasElement, - spec: LayerSpec, - sky: SkyColours, - size: Size, - viewH: number, - scale: number, - m: number, - record: (ms: number, maxTaskMs: number) => void -): Job | null { - const ctx = context2d(el); - if (!ctx) return null; - const blur = edgeBlur(spec) * scale; - const pad = blur > 0 && 'filter' in ctx ? Math.ceil(3 * blur) : 0; - const cols = size.chunk + 2 * pad; - const rows = size.height + pad; - const params: BakeParams = { - spec, - sky, - horizonView: - spec.horizon && sky.physical - ? { - azimuthDeg: viewFor(sky.physical.sun, size.period / viewH).azimuthDeg, - hfovDeg: hfovDeg(size.period / viewH, VFOV_DEG), - } - : undefined, - period: size.period, - scale, - viewH, - rows, - bandH: size.height, - px0: m * size.chunk - pad, - cols, - }; - const paint = layerPaint(spec, sky); - const t0World = params.px0 / size.period; - let scratch: HTMLCanvasElement | undefined; - let sctx: CanvasRenderingContext2D | null = ctx; - let img: ImageData | undefined; - /** 0 bake, 1 put and in-scatter, 2 blur into el; a chunk with no blur ends after 1. */ - let phase = 0; - let pos = 0; - let sliceCols = 32; - let total = 0; - let longest = 0; - const last = pad > 0 ? 2 : 1; - const start = (): boolean => { - if (pad > 0) { - scratch = makeCanvas(); - scratch.width = cols; - scratch.height = rows; - sctx = context2d(scratch); - } else { - el.width = size.chunk; - el.height = size.height; - } - if (!sctx) return false; - img = sctx.createImageData(cols, rows); - return true; - }; - const work = (x: number, n: number) => { - if (!img || !sctx) return; - if (phase === 0) bakeSlice(img.data, params, paint, x, x + n); - else if (phase === 1) { - sctx.putImageData(img, 0, 0, x, 0, n, rows); - scatter(sctx, spec, sky, cols, rows, t0World, 1 / size.period, x, n); - } else { - // One draw: a blurred draw cut into bands costs more in the margins than it saves in task length. - ctx.drawImage(scratch as HTMLCanvasElement, -pad, 0); - } - }; - return { - step(budgetMs) { - const t0 = clock(); - // Allocating the canvases and the pixel buffer is a task of its own. - if (!img) { - if (!start()) return true; - if (Number.isFinite(budgetMs)) { - total += clock() - t0; - longest = Math.max(longest, clock() - t0); - return false; - } - } - while (phase <= last && clock() - t0 < budgetMs) { - const end = phase === 2 ? size.chunk : cols; - if (pos === 0 && phase === 2) { - el.width = size.chunk; - el.height = size.height; - ctx.filter = `blur(${blur}px)`; - } - const n = phase === 2 ? end : Math.min(end - pos, sliceCols); - const s0 = clock(); - work(pos, n); - pos += n; - const dt = Math.max(clock() - s0, 0.02); - sliceCols = Number.isFinite(budgetMs) - ? Math.max(8, Math.min(512, Math.round((n * budgetMs * 0.4) / dt))) - : cols; - if (pos >= end) { - if (phase === 2) ctx.filter = 'none'; - phase += 1; - pos = 0; - if (phase === 1 || phase === 2) sliceCols = Number.isFinite(budgetMs) ? 64 : cols; - } - } - const dt = clock() - t0; - total += dt; - longest = Math.max(longest, dt); - const done = phase > last; - if (done) { - img = undefined; - if (scratch) { - scratch.width = 0; - scratch.height = 0; - } - scratch = undefined; - record(total, longest); - } - return done; - }, - }; -} - -interface Chunk { - el: HTMLCanvasElement; - /** World chunk index it holds or is being baked to hold. */ - id: number; - job?: Job; - ready: boolean; -} - -/** One layer: a track that drifts by one chunk per animation, holding three chunk canvases. */ -interface LayerState { - spec: LayerSpec; - track: HTMLElement; - /** Slot 0 and 1 are what the window can see; slot 2 is the one ahead, baked in the background. */ - slots: Chunk[]; - anim?: Animation; -} - interface Built { - rig: HTMLElement; - layers: LayerState[]; - sway?: Animation; - size: Size; - /** CSS px to canvas px, and the viewport's height in canvas px, as baked. */ - scale: number; - viewH: number; - /** Makes a canvas, bound to the document the scene was built in. */ - makeCanvas: () => HTMLCanvasElement; - /** The twinkling stars' own canvas, between the sky and the ridges; absent in a day sky and in 'still'. */ + /** The twinkling stars' own canvas, over the sky; absent in a day sky and in 'still'. */ twinkle?: HTMLCanvasElement; + /** The ridge planes' rig, over the twinkle canvas and under the rain; absent in 'still' (the planes are drawn into the host canvas). */ + rig?: { el: HTMLElement; anims: (Animation | undefined)[] }; /** The rain's tiles and their falling, present only when the weather rains (`rain.ts`). */ rain?: { els: HTMLElement[]; anims: (Animation | undefined)[] }; } -/** Yaw and pitch: the camera's slow sway, a loop of this many seconds over the whole rig. */ -const SWAY_SECONDS = 150; -const SLICE_BUDGET_MS = 6; - /** The twinkle overlay redraws at most this often: the swings are 2 to 7 s, no need for 60 fps. */ const TWINKLE_FRAME_MS = 50; +/** Far, mid and near slide this share of the drift room (`windowFor` driftPx); one leg of the back-and-forth takes DRIFT_LEG_S, so the loop is 150 s. Authored, tunable by eye. */ +const DRIFT_DEPTH = [0.35, 0.7, 1] as const; +const DRIFT_LEG_S = 75; + /** * The ridge scene: same contract as `createScene` ({ login, dispose }, null for "keep the CSS - * ground"), no WebGL. The layers are painted once on the CPU; per frame the only work is the - * browser compositor sliding each layer with a CSS transform (a Web Animation, no script). The host - * canvas holds the baked sky; it and the layers' parent must be positioned, and the canvas should fill it. + * ground"), no WebGL. It draws the sky, the stars, the baked ridge planes when given a `backdrop` (none: the sky alone) and the rain. The host canvas holds the baked sky; it and + * its parent must be positioned, and the canvas should fill the parent. */ export function createRidgeScene(opts: RidgeOptions): Scene | null { const tier = opts.tier ?? 'full'; @@ -334,9 +130,6 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { let twRaf = 0; let twLast = 0; let still = tier === 'still'; - let jobTimer: ReturnType | undefined; - let queue: Chunk[] = []; - let generation = 0; let disposed = false; let raf = 0; let readout: HTMLElement | undefined; @@ -349,15 +142,10 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { return { w, h, scale: (window.devicePixelRatio || 1) >= 2 ? 2 : 1 }; }; - const teardownLayers = () => { - generation += 1; - clearTimeout(jobTimer); - jobTimer = undefined; - queue = []; - built?.sway?.cancel(); - built?.layers.forEach((l) => l.anim?.cancel()); - built?.rig.remove(); + const teardown = () => { built?.twinkle?.remove(); + built?.rig?.anims.forEach((a) => a?.cancel()); + built?.rig?.el.remove(); built?.rain?.anims.forEach((a) => a?.cancel()); built?.rain?.els.forEach((e) => e.remove()); cancelAnimationFrame(twRaf); @@ -368,111 +156,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { /** True while there is nothing to paint on: the canvas has no client size and the window itself is 0 x 0 (`viewSize` falls back to the window). */ const hasNoArea = () => { const { w, h, scale } = viewSize(); - const size = layerSize(w, h, scale); - return size.period < 1 || size.height < 1 || Math.round(h * scale) < 1; - }; - - /** - * Start baking chunk `c` of layer `l`. `first` runs it to the end in this task (the first view); - * otherwise it joins the queue, which `pump` works through in short tasks. False when the canvas has no 2D context. - */ - const bake = (l: LayerState, c: Chunk, first: boolean): boolean => { - if (!built) return false; - const { scale, viewH, makeCanvas } = built; - const job = chunkJob( - c.el, - makeCanvas, - l.spec, - sky, - built.size, - viewH, - scale, - c.id, - (ms, maxTaskMs) => { - c.ready = true; - c.job = undefined; - opts.onBake?.({ layer: l.spec.index, chunk: c.id, ms, maxTaskMs, first }); - } - ); - if (!job) return false; - c.ready = false; - c.job = job; - if (first) job.step(Infinity); - else queue.push(c); - return true; - }; - - const pump = () => { - if (jobTimer !== undefined || !queue.length) return; - const gen = generation; - jobTimer = setTimeout(() => { - jobTimer = undefined; - if (gen !== generation) return; - const c = queue[0]; - if (!c.job || c.job.step(SLICE_BUDGET_MS)) queue.shift(); - pump(); - }, 0); - }; - - /** Bake a still-queued chunk to the end now: only when the drift has caught up with the background work. */ - const flush = (c: Chunk) => { - while (c.job && !c.job.step(Infinity)); - queue = queue.filter((q) => q !== c); - }; - - const chunkSeconds = (spec: LayerSpec, size: Size) => (spec.seconds * size.chunk) / size.period; - - /** One chunk of drift as one animation, holding its end until `rotate` hands the track the next chunk. */ - const startDrift = (l: LayerState, onEnd: (l: LayerState) => void) => { - if (!built || !Number.isFinite(l.spec.seconds)) return; // the horizon layer does not drift - const { size, scale } = built; - l.anim = l.track.animate?.( - [ - { transform: 'translate3d(0,0,0)' }, - { transform: `translate3d(${-size.chunk / scale}px,0,0)` }, - ], - { duration: chunkSeconds(l.spec, size) * 1000, easing: 'linear', fill: 'forwards' } - ); - if (l.anim) l.anim.onfinish = () => onEnd(l); - }; - - /** - * The window has drifted one chunk. Slot 1 is now slot 0 and slot 2 slot 1, at the same screen place - * (the track restarts at 0 and the chunks move one slot left in the same task, so nothing jumps); the - * canvas that left becomes slot 2 and is baked with the world one chunk further on, off the critical path. - */ - const rotate = (l: LayerState) => { - if (!built || !built.layers.includes(l)) return; - const [s0, s1, s2] = l.slots; - flush(s1); - flush(s2); - l.slots = [s1, s2, s0]; - s0.id = s2.id + 1; - const { size, scale } = built; - l.slots.forEach((c, i) => { - c.el.style.left = `${(i * size.chunk) / scale}px`; - }); - l.anim?.cancel(); - startDrift(l, rotate); - bake(l, s0, false); - pump(); - syncPlayState(); - }; - - /** The camera's slow yaw and pitch: the rig eases sideways (up to 5% of the width) and down (up to 3% of the height) and back, in a loop. */ - const startSway = (rig: HTMLElement, w: number, h: number) => { - const x = 0.05 * w; - const y = 0.03 * h; - const at = (fx: number, fy: number) => `translate3d(${-x * fx}px,${y * fy}px,0)`; - return rig.animate?.( - [ - { transform: at(0, 0), offset: 0 }, - { transform: at(0.55, 1), offset: 0.35 }, - { transform: at(1, 0.3), offset: 0.7 }, - { transform: at(0, 0), offset: 1 }, - ], - { duration: SWAY_SECONDS * 1000, iterations: Infinity, easing: 'ease-in-out' } - ); + return Math.round(w * scale) < 1 || Math.round(h * scale) < 1; }; /** @@ -525,14 +209,115 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { return { els, anims }; }; - /** Bake the sky, then the layers. Returns false when a 2D context is missing or there is no area yet. */ + /** + * The ridge over the sky: one div holding a group per plane (far, mid, near: DOM order is paint order, stacking is by order alone), each the frame's + * image and, when the choice blends two frames, the second over it at the blend weight. A group slides sideways on the compositor by + * `driftPx` times its depth; the baker's pixels are never touched. + */ + const startRig = (bd: Backdrop, w: number, h: number): NonNullable => { + const win = windowFor(bd.manifest.view, w, h); + const el = document.createElement('div'); + el.setAttribute('aria-hidden', 'true'); + Object.assign(el.style, { + position: 'absolute', + left: '0', + top: '0', + width: '100%', + height: '100%', + overflow: 'hidden', + pointerEvents: 'none', + }); + const anims: (Animation | undefined)[] = []; + PLANE_NAMES.forEach((name, k) => { + const group = document.createElement('div'); + Object.assign(group.style, { + position: 'absolute', + left: `${(w - win.plane.w) / 2}px`, + bottom: `${win.plane.bottom}px`, + width: `${win.plane.w}px`, + height: `${win.plane.h}px`, + willChange: 'transform', + }); + const layer = (planes: Planes, opacity: number, blend?: string) => { + const img = planes[name].cloneNode() as HTMLImageElement; + Object.assign(img.style, { + position: 'absolute', + left: '0', + top: '0', + width: '100%', + height: '100%', + opacity: String(opacity), + }); + if (blend) img.style.mixBlendMode = blend; + group.appendChild(img); + }; + // One rule (`crossfade`): a at 1 - w, b added to it at w; the group is its own isolated backdrop, so the sum meets the sky once. + const fade = crossfade(bd.choice); + group.style.isolation = 'isolate'; + layer(bd.a, fade.a); + if (bd.b) layer(bd.b, fade.b, 'plus-lighter'); + el.appendChild(group); + const reach = win.driftPx * DRIFT_DEPTH[k]; + anims.push( + group.animate?.( + [ + { transform: `translate3d(${-reach}px,0,0)` }, + { transform: `translate3d(${reach}px,0,0)` }, + ], + { + duration: DRIFT_LEG_S * 1000, + iterations: Infinity, + direction: 'alternate', + easing: 'ease-in-out', + } + ) + ); + }); + parent.appendChild(el); + return { el, anims }; + }; + + /** Paint the ridge planes into the host canvas, a and b crossfaded, far to near: the still scene's one image. */ + const paintPlanes = (bd: Backdrop) => { + const ctx = context2d(canvas); + if (!ctx) return; + const { w, h, scale } = viewSize(); + const win = windowFor(bd.manifest.view, w, h); + const dw = win.plane.w * scale; + const dh = win.plane.h * scale; + const x = (canvas.width - dw) / 2; + const y = canvas.height - dh - win.plane.bottom * scale; + const fade = crossfade(bd.choice); + // A blend is summed in an offscreen of its own, as the rig sums it in an isolated group: 'lighter' on the host canvas would add to the sky. + const sum = bd.b ? document.createElement('canvas') : null; + if (sum) { + sum.width = dw; + sum.height = dh; + } + const sctx = sum ? context2d(sum) : null; + PLANE_NAMES.forEach((name) => { + if (!bd.b || !sum || !sctx) { + ctx.drawImage(bd.a[name], x, y, dw, dh); + return; + } + sctx.clearRect(0, 0, dw, dh); + sctx.globalCompositeOperation = 'source-over'; + sctx.globalAlpha = fade.a; + sctx.drawImage(bd.a[name], 0, 0, dw, dh); + sctx.globalCompositeOperation = 'lighter'; + sctx.globalAlpha = fade.b; + sctx.drawImage(bd.b[name], 0, 0, dw, dh); + ctx.drawImage(sum, x, y, dw, dh); + }); + }; + + /** Paint the sky, the stars and the rain. Returns false when a 2D context is missing or there is no area yet. */ const build = (): boolean => { - teardownLayers(); + teardown(); // A zero-size canvas throws on drawImage; wait for the first resize that gives the host an area. if (hasNoArea()) return false; const { w, h, scale } = viewSize(); - const size = layerSize(w, h, scale); - canvas.width = size.period; + canvas.width = Math.round(w * scale); canvas.height = Math.round(h * scale); if (!paintSky(canvas, sky, w, h, () => document.createElement('canvas'))) return false; // Every star is baked into the sky; the twinkling ones get their own canvas, which a per-frame @@ -557,75 +342,10 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { parent.appendChild(twinkle); } field = stars; - // The rig carries the camera's sway; each layer's track carries its drift; chunks sit on the track. - const rig = document.createElement('div'); - rig.setAttribute('aria-hidden', 'true'); - Object.assign(rig.style, { - position: 'absolute', - left: '0', - bottom: '0', - width: '100%', - height: '100%', - pointerEvents: 'none', - willChange: 'transform', - }); - const layers: LayerState[] = LAYERS.map((spec) => { - const track = document.createElement('div'); - Object.assign(track.style, { - position: 'absolute', - left: spec.horizon ? `${(-HORIZON_TRACK_SHIFT * size.period) / scale}px` : '0', - bottom: '0', - width: `${size.period / scale}px`, - height: `${size.height / scale}px`, - willChange: 'transform', - }); - const slots: Chunk[] = [0, 1, 2].map((i) => { - const el = document.createElement('canvas'); - el.width = size.chunk; - el.height = size.height; - Object.assign(el.style, { - position: 'absolute', - bottom: '0', - width: `${size.chunk / scale}px`, - height: `${size.height / scale}px`, - }); - return { el, id: i, ready: false }; - }); - return { spec, track, slots }; - }); - const doc = document; - built = { - rig, - layers, - size, - scale, - viewH: canvas.height, - makeCanvas: () => doc.createElement('canvas'), - twinkle, - }; - // First view: only slot 0 of each layer, in this task. The window sees nothing else for the first - // fifth of a chunk's drift; slots 1 and 2 are baked in short tasks behind it. - if (!layers.every((l) => bake(l, l.slots[0], true))) { - teardownLayers(); - return false; - } - layers.forEach((l) => { - l.slots.forEach((c, i) => { - c.el.setAttribute('aria-hidden', 'true'); - c.el.style.left = `${(i * size.chunk) / scale}px`; - l.track.appendChild(c.el); - }); - rig.appendChild(l.track); - bake(l, l.slots[1], false); - bake(l, l.slots[2], false); - }); - // DOM order is paint order: farthest first, so the nearest ridge ends up on top. - parent.appendChild(rig); - layers.forEach((l) => startDrift(l, rotate)); - built.sway = startSway(rig, w, h); + built = { twinkle }; + if (opts.backdrop && !still) built.rig = startRig(opts.backdrop, w, h); if (tier !== 'still' && sky.physical && sky.physical.weather.rain > 0) built.rain = startRain(sky.physical.weather.rain, sky.horizon, w, h, scale); - pump(); syncPlayState(); return true; }; @@ -658,9 +378,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { }; function syncPlayState() { - const anims = built - ? [built.sway, ...built.layers.map((l) => l.anim), ...(built.rain?.anims ?? [])] - : []; + const anims = [...(built?.rig?.anims ?? []), ...(built?.rain?.anims ?? [])]; anims.forEach((a) => (moving() ? a?.play() : a?.pause())); if (!built?.twinkle) return; if (moving()) { @@ -672,26 +390,14 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { } } - /** Flatten the sky and layers into the host canvas and drop the layers: a still image, no compositor layers left. */ + /** Drop the twinkle and the rain, leaving the painted sky as a still image. */ const settleToStill = () => { if (still && !built) return; still = true; - const ctx = context2d(canvas); - if (ctx && built) { - const { size } = built; - built.layers.forEach((l) => { - // Freeze where the drift is, so the swap to a still does not jump; whatever is baked and in view. - const dur = chunkSeconds(l.spec, size) * 1000; - const p = Math.min(1, Math.max(0, Number(l.anim?.currentTime ?? 0) / dur)); - const x = -Math.round(p * size.chunk); - l.slots.slice(0, 2).forEach((c, i) => { - if (c.ready) ctx.drawImage(c.el, x + i * size.chunk, canvas.height - size.height); - }); - }); - } - teardownLayers(); + teardown(); cancelAnimationFrame(raf); raf = 0; + if (opts.backdrop) paintPlanes(opts.backdrop); report(true); }; @@ -773,7 +479,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { return { login() { - // No camera to pull back; the ridges are the same before and after. + // No camera to pull back; the sky is the same before and after. }, dispose() { if (disposed) return; @@ -783,7 +489,7 @@ export function createRidgeScene(opts: RidgeOptions): Scene | null { document.removeEventListener('visibilitychange', onVisibility); window.removeEventListener('resize', onResize); reducedMotion?.removeEventListener?.('change', syncPlayState); - teardownLayers(); + teardown(); readout?.remove(); }, }; diff --git a/src/app/features/scene/ridge/credits.test.ts b/src/app/features/scene/ridge/credits.test.ts index 887cc2d4..c03be043 100644 --- a/src/app/features/scene/ridge/credits.test.ts +++ b/src/app/features/scene/ridge/credits.test.ts @@ -1,11 +1,13 @@ +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; import { describe, expect, it } from 'vitest'; -import { HORIZON_CREDIT, WEATHER_CREDIT, WEATHER_CREDIT_URL, WEATHER_DATASET } from './credits'; -import { HORIZON_ATTRIBUTION } from './horizon'; +import { WEATHER_CREDIT, WEATHER_CREDIT_URL, WEATHER_DATASET, terrainCredit } from './credits'; +import { parseIndex, parseManifest } from './manifest'; +import { wireManifest } from './manifest.fixture'; import { WEATHER_ATTRIBUTION } from './weatherFeed'; describe('the credits the Sky menu shows', () => { it("are the sources' own", () => { - expect(HORIZON_CREDIT).toBe(HORIZON_ATTRIBUTION); expect(WEATHER_CREDIT).toBe(WEATHER_ATTRIBUTION); }); it('credit GeoSphere with its requested line, and state a licence only with the dataset named', () => { @@ -14,3 +16,26 @@ describe('the credits the Sky menu shows', () => { expect(WEATHER_DATASET).toMatch(/TAWES.*10-minute.*CC BY 4\.0/); }); }); + +describe('the terrain credit', () => { + const shipped = (): { attribution: { credit_line: string; licence: string } } | undefined => { + const root = join(process.cwd(), 'public', 'ridge'); + const index = parseIndex(JSON.parse(readFileSync(join(root, 'index.json'), 'utf8'))); + return JSON.parse( + readFileSync(join(root, index.places[index.default], 'manifest.json'), 'utf8') + ); + }; + + it("is the shipped manifest's attribution, credit line then licence", () => { + const wire = shipped(); + const manifest = parseManifest(wireManifest({ attribution: wire?.attribution }), '/d/'); + expect(terrainCredit(manifest)).toBe( + `${wire?.attribution.credit_line} ${wire?.attribution.licence}` + ); + expect(terrainCredit(manifest)).toMatch(/Copernicus/); + }); + + it('is absent without a manifest', () => { + expect(terrainCredit(undefined)).toBeUndefined(); + }); +}); diff --git a/src/app/features/scene/ridge/credits.ts b/src/app/features/scene/ridge/credits.ts index 1a0327ea..bfe16a72 100644 --- a/src/app/features/scene/ridge/credits.ts +++ b/src/app/features/scene/ridge/credits.ts @@ -1,11 +1,16 @@ // What the Ridge background owes its data sources, shown in the Sky menu (SkyStateControl). Plain strings in their own module so the -// main chunk carries these and not the baked horizon table or the weather parser; credits.test.ts holds them equal to the sources'. +// main chunk carries these and not the weather parser; credits.test.ts holds them equal to the sources'. The terrain credit is the loaded +// manifest's own `attribution` (terrainCredit): the baker writes it, so no constant here can drift from the bake. +import type { RidgeManifest } from './manifest'; /** GeoSphere's own requested credit line. It names no licence: that is the dataset's (below). */ export const WEATHER_CREDIT = 'Datenquelle: GeoSphere Austria - https://data.hub.geosphere.at'; export const WEATHER_CREDIT_URL = 'https://data.hub.geosphere.at'; /** The dataset the weather is read from, and its licence as the dataset page names it (data.hub.geosphere.at, tawes-v1-10min). */ export const WEATHER_DATASET = 'TAWES weather stations, 10-minute data (station 11035), CC BY 4.0'; -/** The terrain silhouette's credit, as the Copernicus DEM licence asks (equal to `HORIZON_ATTRIBUTION`). */ -export const HORIZON_CREDIT = - 'Contains modified Copernicus data: DEM © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.'; + +/** The terrain's credit line and licence as the loaded bake states them; undefined until a manifest has loaded (no manifest, no line). */ +export const terrainCredit = ( + manifest: Pick | undefined +): string | undefined => + manifest ? `${manifest.attribution.creditLine} ${manifest.attribution.licence}` : undefined; diff --git a/src/app/features/scene/ridge/frameChoice.test.ts b/src/app/features/scene/ridge/frameChoice.test.ts new file mode 100644 index 00000000..82b9f1a9 --- /dev/null +++ b/src/app/features/scene/ridge/frameChoice.test.ts @@ -0,0 +1,117 @@ +import { describe, expect, it } from 'vitest'; +import { BLEND_EDGE, crossfade, frameChoice } from './frameChoice'; +import { parseManifest } from './manifest'; +import { wireManifest } from './manifest.fixture'; + +const { frames } = parseManifest(wireManifest(), '/d/'); +const at = (elevation: number, azimuth: number) => frameChoice(frames, { elevation, azimuth }); +const keys = (c: ReturnType) => [c.a.key, c.b?.key ?? null]; + +describe('frameChoice', () => { + it('blends continuously with elevation inside a half', () => { + const ws = [3, 6, 9, 12, 15, 18].map((el) => at(el, 130).w); + ws.forEach((w, i) => i && expect(w).toBeGreaterThan(ws[i - 1])); + }); + + it('weights by the elevation between the bracketing keys, a at the lower', () => { + // Morning half: night -12, dawn 0, morning 20, noon 60. Sun 10 deg is half way from dawn to morning. + const c = at(10, 130); + expect(keys(c)).toEqual(['dawn', 'morning']); + expect(c.w).toBeCloseTo(0.5, 6); + }); + + it('uses the afternoon keys after the noon azimuth and the morning keys before', () => { + expect(keys(at(10, 130))).toEqual(['dawn', 'morning']); + expect(keys(at(-1, 250))).toEqual(['dusk', 'golden']); + expect(at(-1, 250).w).toBeCloseTo(1.5 / 8.5, 6); + }); + + it('noon is the same single frame from both halves', () => { + expect(keys(at(60, 170))).toEqual(['noon', null]); + expect(keys(at(60, 190))).toEqual(['noon', null]); + expect(keys(at(75, 190))).toEqual(['noon', null]); + }); + + it('is the night key alone at or below its elevation, in either half', () => { + expect(keys(at(-12, 10))).toEqual(['night', null]); + expect(keys(at(-40, 300))).toEqual(['night', null]); + }); + + it('blends night into dawn before sunrise and dusk into night after sunset', () => { + expect(keys(at(-6, 90))).toEqual(['night', 'dawn']); + expect(keys(at(-6, 270))).toEqual(['night', 'dusk']); + }); + + it('collapses a blend within 2% of either end to one frame, and w stays in 0..1', () => { + expect(keys(at(0.2, 130))).toEqual(['dawn', null]); // w = 0.01 + expect(keys(at(19.8, 130))).toEqual(['morning', null]); // w = 0.99 + const els = Array.from({ length: 325 }, (_, i) => -30 + i * 0.37); + els.forEach((el) => + [0, 100, 179, 181, 270].forEach((az) => { + const c = at(el, az); + expect(c.w).toBeGreaterThanOrEqual(0); + expect(c.w).toBeLessThanOrEqual(1); + expect(c.b === null).toBe(c.w === 0); + }) + ); + }); + + it("splits the halves at the noon frame's azimuth, wherever the bake put it", () => { + const w = wireManifest() as any; + const shifted = parseManifest( + { + ...w, + frames: w.frames.map((f: any) => + f.key === 'noon' ? { ...f, sun: { ...f.sun, az: 170 } } : f + ), + }, + '/d/' + ); + const pick = (az: number) => frameChoice(shifted.frames, { elevation: 10, azimuth: az }); + expect([pick(169).a.key, pick(169).b?.key]).toEqual(['dawn', 'morning']); + expect([pick(171).a.key, pick(171).b?.key]).toEqual(['golden', 'noon']); + }); + + it('collapses exactly at BLEND_EDGE and no further: a blend of 3% still has two frames', () => { + expect(BLEND_EDGE).toBe(0.02); + // Morning half dawn 0 .. morning 20: w = el / 20. + expect(keys(at(0.6, 130))).toEqual(['dawn', 'morning']); // w = 0.03 + expect(keys(at(19.4, 130))).toEqual(['dawn', 'morning']); // w = 0.97 + expect(keys(at(0.2, 130))).toEqual(['dawn', null]); // w = 0.01 + expect(keys(at(19.8, 130))).toEqual(['morning', null]); // w = 0.99 + }); +}); + +describe('crossfade: the one rule of a blend', () => { + // A baked plane is haze as alpha: no pixel opaque, the same alpha in every frame. Frames as (premultiplied) colour and alpha. + const planeA = { c: 0.2, alpha: 0.6 }; + const planeB = { c: 0.5, alpha: 0.6 }; + const sum = (c: ReturnType) => { + const f = crossfade(c); + const b = c.b ? planeB : { c: 0, alpha: 0 }; + return { c: planeA.c * f.a + b.c * f.b, alpha: planeA.alpha * f.a + b.alpha * f.b }; + }; + + it('is a lerp of the two frames: colour and haze alike, never denser than either', () => { + [0.03, 0.2, 0.5, 0.8, 0.97].forEach((w) => { + const c = { a: frames[0], b: frames[1], w }; + const got = sum(c); + expect(got.c).toBeCloseTo(planeA.c * (1 - w) + planeB.c * w, 12); + expect(got.alpha).toBeCloseTo(0.6, 12); // equal alphas stay equal: the haze is not doubled + expect(got.alpha).toBeLessThanOrEqual(Math.max(planeA.alpha, planeB.alpha) + 1e-12); + }); + }); + + it('has no jump where the choice collapses: the blend either side of an edge is within the edge of the lone frame', () => { + const gap = Math.abs(planeA.c - planeB.c); + const high = sum({ a: frames[0], b: frames[1], w: 1 - BLEND_EDGE }); + const low = sum({ a: frames[0], b: frames[1], w: BLEND_EDGE }); + expect(Math.abs(high.c - planeB.c)).toBeLessThanOrEqual(BLEND_EDGE * gap + 1e-12); // collapse shows b alone + expect(Math.abs(low.c - planeA.c)).toBeLessThanOrEqual(BLEND_EDGE * gap + 1e-12); // collapse shows a alone + expect(high.alpha).toBeCloseTo(planeB.alpha, 12); + }); + + it('a lone frame is full weight alone', () => { + expect(crossfade({ a: frames[0], b: null, w: 0 })).toEqual({ a: 1, b: 0 }); + }); +}); diff --git a/src/app/features/scene/ridge/frameChoice.ts b/src/app/features/scene/ridge/frameChoice.ts new file mode 100644 index 00000000..1bede129 --- /dev/null +++ b/src/app/features/scene/ridge/frameChoice.ts @@ -0,0 +1,55 @@ +// Which baked frames the live sun lies between, and how far. Pure. The frames are ordered by the sun elevation they were baked for, a +// morning half rising from the night key through dawn and morning to noon, an afternoon half falling from noon through golden and dusk +// to night; the two halves share noon and the night key. The half is the live sun's side of the noon frame's azimuth. +import type { Frame, FrameKey } from './manifest'; + +export interface FrameChoice { + /** The frame shown alone when b is null, else weighted 1 - w. */ + a: Frame; + /** The frame crossfaded in at `w`, or null when one frame stands alone. */ + b: Frame | null; + /** Weight of b in 0..1; 0 when b is null. */ + w: number; +} + +/** Blends this close to either frame are not worth a second image. */ +export const BLEND_EDGE = 0.02; + +/** + * The one rule of a blend, for the rig and the still alike: a true crossfade, a at 1 - w plus b at w, summed (premultiplied) in a group of + * their own. The baked planes carry haze as alpha (no pixel is opaque), so b laid over a at opacity w would double the haze mid-blend + * and jump when the choice collapses to b alone; the sum is a lerp of the two frames and never denser than either. + */ +export function crossfade(choice: FrameChoice): { a: number; b: number } { + return choice.b ? { a: 1 - choice.w, b: choice.w } : { a: 1, b: 0 }; +} + +const MORNING: readonly FrameKey[] = ['night', 'dawn', 'morning', 'noon']; +const AFTERNOON: readonly FrameKey[] = ['night', 'dusk', 'golden', 'noon']; + +export function frameChoice( + frames: readonly Frame[], + sun: { elevation: number; azimuth: number } +): FrameChoice { + const by = (k: FrameKey): Frame => { + const f = frames.find((x) => x.key === k); + if (!f) throw new Error(`frameChoice: no ${k} frame`); + return f; + }; + const noon = by('noon'); + const half = (sun.azimuth < noon.sun.az ? MORNING : AFTERNOON).map(by); + // Ascending in elevation along the half, whatever the bake's numbers: sort so a hand-made manifest cannot invert the order. + half.sort((p, q) => p.sun.el - q.sun.el); + const lowest = half[0]; + const highest = half[half.length - 1]; + if (sun.elevation <= lowest.sun.el) return { a: lowest, b: null, w: 0 }; + if (sun.elevation >= highest.sun.el) return { a: highest, b: null, w: 0 }; + let i = 0; + while (half[i + 1].sun.el < sun.elevation) i += 1; + const lo = half[i]; + const hi = half[i + 1]; + const w = (sun.elevation - lo.sun.el) / (hi.sun.el - lo.sun.el); + if (w < BLEND_EDGE) return { a: lo, b: null, w: 0 }; + if (w > 1 - BLEND_EDGE) return { a: hi, b: null, w: 0 }; + return { a: lo, b: hi, w }; +} diff --git a/src/app/features/scene/ridge/frameLuma.test.ts b/src/app/features/scene/ridge/frameLuma.test.ts new file mode 100644 index 00000000..271c55c8 --- /dev/null +++ b/src/app/features/scene/ridge/frameLuma.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it } from 'vitest'; +import { inkContrast, themeInk } from './frameLuma'; +import { luminance } from '../../../../sky/skyTokens.js'; + +describe('inkContrast', () => { + it('reads the ink from the themes: dark Noonday ink by day and dusk, light Midnight ink at night', () => { + expect(themeInk('day')).toBe('#342d25'); + expect(themeInk('dusk')).toBe('#342d25'); + expect(themeInk('night')).toBe('#aeccff'); + }); + + it('gives the known ratios on a white and on a black ridge', () => { + const dark = luminance('#342d25'); + const light = luminance('#aeccff'); + const day = inkContrast({ min: 1, max: 1 }, 'day'); + expect(day.atMax).toBeCloseTo(1.05 / (dark + 0.05), 10); + expect(day.atMax).toBeCloseTo(13.6, 0); + const night = inkContrast({ min: 0, max: 0 }, 'night'); + expect(night.atMin).toBeCloseTo((light + 0.05) / 0.05, 10); + expect(night.atMin).toBeCloseTo(12.9, 0); + }); + + it('the worst contrast is where the range comes closest to the ink', () => { + const ink = luminance('#342d25'); + const across = inkContrast({ min: 0, max: 1 }, 'day'); + expect(across.worst).toBe(1); + expect(inkContrast({ min: ink + 0.2, max: 0.9 }, 'day').worst).toBeCloseTo( + (ink + 0.2 + 0.05) / (ink + 0.05), + 10 + ); + }); +}); diff --git a/src/app/features/scene/ridge/frameLuma.ts b/src/app/features/scene/ridge/frameLuma.ts new file mode 100644 index 00000000..e2bd1e0d --- /dev/null +++ b/src/app/features/scene/ridge/frameLuma.ts @@ -0,0 +1,33 @@ +// What a baked frame's recorded luma (manifest `frames[].luma`, WCAG linear relative luminance of the composited planes where they are +// solid enough, export.py) means for the text over it: the contrast of the state's theme ink against the ridge's own extremes, no scrim. +// Data for ridge-ad-legibility, which sizes the scrim from it and owns the 4.5:1 pass/fail; nothing here gates. +import { baked } from '../../../../sky/baked'; +import { luminance } from '../../../../sky/skyTokens.js'; +import type { FixedSkyState } from '../skyBand'; + +export interface FrameLuma { + min: number; + max: number; +} + +/** The theme text ink skyBand.ts's header derives: Noonday Sky's for day and dusk, Midnight Sky's for night. */ +export const themeInk = (state: FixedSkyState): string => + (state === 'night' ? baked.midnight : baked.noonday).tokens.Surface.OnContainer; + +const ratio = (a: number, b: number): number => (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05); + +/** + * WCAG contrast of the state's ink over a plain backdrop of the ridge's darkest and of its lightest luminance, and `worst`: the lowest + * contrast over every luminance between them (the ink's own luminance clamped into the range, where the two are closest). + */ +export function inkContrast( + luma: FrameLuma, + state: FixedSkyState +): { atMin: number; atMax: number; worst: number } { + const ink = luminance(themeInk(state)); + return { + atMin: ratio(ink, luma.min), + atMax: ratio(ink, luma.max), + worst: ratio(ink, Math.min(luma.max, Math.max(luma.min, ink))), + }; +} diff --git a/src/app/features/scene/ridge/horizon.test.ts b/src/app/features/scene/ridge/horizon.test.ts deleted file mode 100644 index 0061bab1..00000000 --- a/src/app/features/scene/ridge/horizon.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import bake from './viennaHorizon.json'; -import { VIENNA } from './vienna'; -import { horizonDistanceKm, horizonElevation, horizonNormal } from './horizon'; - -describe('the baked horizon', () => { - it('was baked from the viewpoint the sun is computed for', () => { - expect(bake.viewpoint.lat).toBe(VIENNA.lat); - expect(bake.viewpoint.lon).toBe(VIENNA.lon); - expect(bake.viewpoint.groundM / 1000).toBeCloseTo(VIENNA.altitudeKm, 2); - }); - it('carries its source and licence beside the data', () => { - expect(bake.source.licence).toMatch(/attribution required/); - expect(bake.source.attribution).toMatch(/COPERNICUS/); - }); - it('is a closed ring of plausible angles: the Wienerwald NW, open Marchfeld E', () => { - expect(bake.elevationDeg).toHaveLength(720); - expect(horizonElevation(0)).toBeCloseTo(horizonElevation(360), 6); - expect(horizonElevation(305)).toBeGreaterThan(horizonElevation(70)); - expect(Math.max(...bake.elevationDeg)).toBeLessThan(5); - expect(horizonDistanceKm(305)).toBeGreaterThan(1); - }); - it('interpolates between samples and returns unit normals', () => { - expect(horizonElevation(100.25)).toBeCloseTo( - (bake.elevationDeg[200] + bake.elevationDeg[201]) / 2, - 6 - ); - expect(Math.hypot(...horizonNormal(250))).toBeCloseTo(1, 6); - }); -}); diff --git a/src/app/features/scene/ridge/horizon.ts b/src/app/features/scene/ridge/horizon.ts deleted file mode 100644 index 89d896bc..00000000 --- a/src/app/features/scene/ridge/horizon.ts +++ /dev/null @@ -1,54 +0,0 @@ -// The terrain horizon seen from the viewpoint, baked from open DEM by `scripts/bake-horizon.py` (source, licence and attribution are -// in the file's `source` block and in `HORIZON_ATTRIBUTION`). -import bake from './viennaHorizon.json'; - -export const HORIZON_ATTRIBUTION = bake.source.attribution; - -const N = bake.elevationDeg.length; - -/** Index pair and weight of an azimuth (degrees clockwise from north) on the baked ring. */ -function at(azimuth: number): [number, number, number] { - const f = (((azimuth / bake.stepDeg) % N) + N) % N; - const i = Math.floor(f); - return [i, (i + 1) % N, f - i]; -} - -const lerp = (arr: readonly number[], az: number): number => { - const [a, b, t] = at(az); - return arr[a] * (1 - t) + arr[b] * t; -}; - -/** Elevation of the horizon, degrees above the astronomical horizon, at an azimuth. */ -export const horizonElevation = (azimuth: number): number => lerp(bake.elevationDeg, azimuth); - -/** Distance of the terrain that sets the horizon, km. */ -export const horizonDistanceKm = (azimuth: number): number => lerp(bake.distanceKm, azimuth); - -/** Unit surface normal of the terrain at the horizon point: x east, y up, z north. */ -export function horizonNormal(azimuth: number): [number, number, number] { - const e = lerp(bake.slopeEast, azimuth); - const n = lerp(bake.slopeNorth, azimuth); - const l = Math.hypot(e, 1, n); - return [-e / l, 1 / l, -n / l]; -} - -/** The elevations blurred over +-SMOOTH_DEG (a box, around the ring): at 30 m a city's roofs are the horizon's teeth, and a silhouette of them reads as a fence. */ -const SMOOTH_DEG = 1.5; -const SMOOTH = Array.from({ length: N }, (_, i) => { - const k = Math.round(SMOOTH_DEG / bake.stepDeg); - let sum = 0; - for (let d = -k; d <= k; d += 1) sum += bake.elevationDeg[(i + d + N) % N]; - return sum / (2 * k + 1); -}); -const MIN_E = Math.min(...SMOOTH); -const RANGE_E = Math.max(...SMOOTH) - MIN_E; - -/** The horizon at an azimuth as 0..1 of the ring's own range (the lowest point of the horizon 0, the highest 1): the silhouette's shape, not its scale. */ -export const horizonShape = (azimuth: number): number => (lerp(SMOOTH, azimuth) - MIN_E) / RANGE_E; - -/** Real range of the smoothed horizon, degrees: what `horizonShape` stretches to the layer's relief. */ -export const HORIZON_RANGE_DEG = RANGE_E; - -/** Horizontal field of view, degrees, of a camera with the sky's vertical field (`skyDome.ts` VFOV_DEG) at an aspect ratio. */ -export const hfovDeg = (aspect: number, vfovDeg: number): number => - (2 * Math.atan(aspect * Math.tan((vfovDeg * Math.PI) / 360)) * 180) / Math.PI; diff --git a/src/app/features/scene/ridge/horizonLayer.test.ts b/src/app/features/scene/ridge/horizonLayer.test.ts deleted file mode 100644 index b034d03c..00000000 --- a/src/app/features/scene/ridge/horizonLayer.test.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { hfovDeg, horizonShape } from './horizon'; -import { HORIZON_TRACK_SHIFT, LAYERS, layerProfile, profile } from './ridgeWorld'; -import { layerPaint } from './ridgeBake'; -import { weatherOf } from './weather'; -import { skyColours } from './skyColour'; -import { makePhysicalSky } from './physicalSky'; -import { VFOV_DEG } from './skyDome'; - -describe('the horizon layer', () => { - const far = LAYERS[0]; - const view = { azimuthDeg: 200, hfovDeg: hfovDeg(16 / 9, VFOV_DEG) }; - - it('is the farthest layer, real and standing still', () => { - expect(far.horizon).toBe(true); - expect(Number.isFinite(far.seconds)).toBe(false); - expect(LAYERS.slice(1).every((l) => !l.horizon && Number.isFinite(l.seconds))).toBe(true); - }); - - it('reads world-x as azimuth across the viewport: the left edge is half the field to the left of the view, the right edge half to the right', () => { - const left = layerProfile(far, HORIZON_TRACK_SHIFT, view); - const right = layerProfile(far, HORIZON_TRACK_SHIFT + 1, view); - expect(left).toBeCloseTo(horizonShape(200 - view.hfovDeg / 2), 9); - expect(right).toBeCloseTo(horizonShape(200 + view.hfovDeg / 2), 9); - }); - - it('stays in 0..1 and covers a real range of shape, not a line', () => { - const v = Array.from({ length: 200 }, (_, i) => - layerProfile(far, -0.06 + (i / 200) * 1.2, { azimuthDeg: 305, hfovDeg: view.hfovDeg }) - ); - expect(Math.min(...v)).toBeGreaterThanOrEqual(0); - expect(Math.max(...v)).toBeLessThanOrEqual(1); - expect(Math.max(...v) - Math.min(...v)).toBeGreaterThan(0.2); - }); - - it('is the noise profile for the other layers, and for the horizon layer when no view is known', () => { - expect(layerProfile(LAYERS[2], 0.4, view)).toBe(profile(LAYERS[2], 0.4)); - expect(layerProfile(far, 0.4)).toBe(profile(far, 0.4)); - }); - - it('the horizontal field of a 1:1 view is the vertical one, and grows with the aspect', () => { - expect(hfovDeg(1, VFOV_DEG)).toBeCloseTo(VFOV_DEG, 9); - expect(hfovDeg(16 / 9, VFOV_DEG)).toBeGreaterThan(VFOV_DEG); - }); -}); - -describe('weather in the layers', () => { - it("mist multiplies the layers' own, and clear air leaves it alone", () => { - const base = skyColours(); - const day = new Date('2026-06-21T10:40:00Z'); - const clear = layerPaint(LAYERS[1], { ...base, physical: makePhysicalSky('day', day, 0) }); - const misty = layerPaint(LAYERS[1], { ...base, physical: makePhysicalSky('day', day, 0.8) }); - expect(clear.mistK).toBe(1); - expect(misty.mistK).toBeGreaterThan(2); - expect(layerPaint(LAYERS[1], base).mistK).toBe(1); - }); -}); - -describe('the weather number', () => { - it('a number that is not finite is a clear sky, not an error', () => { - expect(weatherOf(Number.NaN).value).toBe(0); - expect(weatherOf(Infinity).value).toBe(0); - expect(weatherOf(0.5).value).toBe(0.5); - }); -}); diff --git a/src/app/features/scene/ridge/manifest.fixture.ts b/src/app/features/scene/ridge/manifest.fixture.ts new file mode 100644 index 00000000..bdfebebb --- /dev/null +++ b/src/app/features/scene/ridge/manifest.fixture.ts @@ -0,0 +1,76 @@ +// A hand-written manifest v1 and index v1 (wire form, as export.py writes them): the runtime's tests need no real bake and no decoder. +import { FRAME_KEYS } from './manifest'; +import type { View } from './view'; + +const SUN: Record = { + dawn: [100, 0], + morning: [130, 20], + noon: [180, 60], + golden: [240, 6], + dusk: [262, -2.5], + night: [0, -12], +}; + +export const wireManifest = (over: Record = {}): Record => ({ + schema: 1, + baker_version: 1, + bake_id: 'abc123abc123', + place: { + id: 'vienna', + name: 'Vienna', + lat: 48.19, + lon: 16.35, + altitude_km: 0.183, + tz_h: 1, + tz_name: 'CET', + date: '2026-06-21', + }, + view: { + look_az_deg: 214, + window_deg: 72, + plane_w: 1280, + plane_h: 600, + px_per_deg_h: 1280 / 72, + px_per_deg_v: 17.7, + horizon_row: 314.5, + sky_row: 0, + near_row: 599, + }, + frames: FRAME_KEYS.map((key) => ({ + key, + sun: { az: SUN[key][0], el: SUN[key][1] }, + hour_utc: 0, + planes: Object.fromEntries( + ['far', 'mid', 'near'].map((n) => [ + n, + { file: `${key}-${n}.webp`, bytes: 1, w: 1280, h: 600 }, + ]) + ), + bytes: 3, + luma: { min: 0.1, max: 0.5 }, + })), + attribution: { + credit_line: 'credit', + licence: 'licence', + dem_source: 'dem', + url: 'https://example.test', + }, + ...over, +}); + +export const wireIndex = { + schema: 1, + default: 'vienna', + places: { vienna: 'vienna-abc123abc123', graz: 'graz-def456def456' }, +}; + +/** A View that differs from FALLBACK_VIEW in every field the sky reads (place, altitude, look azimuth, window, horizon row), so a test can tell the two apart. */ +export const ELSEWHERE_VIEW: View = { + place: { id: 'elsewhere', lat: -33.9, lon: 151.2, altitudeKm: 1.5 }, + lookAzDeg: 20, + windowDeg: 90, + planeW: 1600, + planeH: 700, + pxPerDegH: 1600 / 90, + horizonRow: 250, +}; diff --git a/src/app/features/scene/ridge/manifest.test.ts b/src/app/features/scene/ridge/manifest.test.ts new file mode 100644 index 00000000..21444abc --- /dev/null +++ b/src/app/features/scene/ridge/manifest.test.ts @@ -0,0 +1,108 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { forgetManifests, loadManifest, parseManifest } from './manifest'; +import { wireIndex, wireManifest } from './manifest.fixture'; + +describe('parseManifest', () => { + it('reads a v1 manifest into the View the sky and planes share', () => { + const m = parseManifest(wireManifest(), '/public/ridge/v/'); + expect(m.dir).toBe('/public/ridge/v/'); + expect(m.view).toMatchObject({ + lookAzDeg: 214, + windowDeg: 72, + planeW: 1280, + planeH: 600, + pxPerDegH: 1280 / 72, // not px_per_deg_v (17.7): a real bake's two differ 10x + horizonRow: 314.5, + }); + expect(m.view.place).toEqual({ id: 'vienna', lat: 48.19, lon: 16.35, altitudeKm: 0.183 }); + expect(m.frames.map((f) => f.key)).toEqual([ + 'dawn', + 'morning', + 'noon', + 'golden', + 'dusk', + 'night', + ]); + expect(m.frames[2]).toMatchObject({ + sun: { az: 180, el: 60 }, + planes: { far: 'noon-far.webp', near: 'noon-near.webp' }, + }); + expect(m.attribution.creditLine).toBe('credit'); + }); + + it('rejects a missing field, a wrong schema, a plane wider than 4096 and fewer than 6 frames', () => { + const w = wireManifest() as any; + expect(() => parseManifest({ ...w, bake_id: undefined }, '/')).toThrow(/bake_id/); + expect(() => parseManifest({ ...w, schema: 2 }, '/')).toThrow(/schema/); + expect(() => parseManifest({ ...w, view: { ...w.view, plane_w: 4097 } }, '/')).toThrow(/4096/); + expect(() => parseManifest({ ...w, frames: w.frames.slice(1) }, '/')).toThrow(/frames/); + expect(() => parseManifest({ ...w, view: { ...w.view, horizon_row: 'x' } }, '/')).toThrow( + /horizon_row/ + ); + expect(() => parseManifest(null, '/')).toThrow(); + }); +}); + +const serve = (files: Record) => { + const f = vi.fn(async (url: string) => + url in files + ? { ok: true, status: 200, json: async () => files[url] } + : { ok: false, status: 404, json: async () => ({}) } + ); + vi.stubGlobal('fetch', f); + return f; +}; +const files = () => ({ + '/b/public/ridge/index.json': wireIndex, + '/b/public/ridge/vienna-abc123abc123/manifest.json': wireManifest(), + '/b/public/ridge/graz-def456def456/manifest.json': wireManifest({ + place: { ...(wireManifest() as any).place, id: 'graz', name: 'Graz' }, + }), +}); + +describe('loadManifest', () => { + afterEach(() => { + forgetManifests(); + vi.unstubAllGlobals(); + }); + + it('reads the index then the default place, with its directory', async () => { + const f = serve(files()); + const m = await loadManifest('/b/'); + expect(m.view.place.id).toBe('vienna'); + expect(m.dir).toBe('/b/public/ridge/vienna-abc123abc123/'); + expect(f.mock.calls.map((c) => c[0])).toEqual([ + '/b/public/ridge/index.json', + '/b/public/ridge/vienna-abc123abc123/manifest.json', + ]); + }); + + it('revalidates the index, the one mutable pointer, and leaves the content-addressed manifest to the cache', async () => { + const f = serve(files()); + await loadManifest('/b/'); + expect(f.mock.calls).toEqual([ + ['/b/public/ridge/index.json', { cache: 'no-cache' }], + ['/b/public/ridge/vienna-abc123abc123/manifest.json', undefined], + ]); + }); + + it('place picks the index entry; an unknown id falls back to the default', async () => { + serve(files()); + expect((await loadManifest('/b/', 'graz')).view.place.id).toBe('graz'); + expect((await loadManifest('/b/', 'nowhere')).view.place.id).toBe('vienna'); + }); + + it('is memoised per URL and place', async () => { + const f = serve(files()); + await loadManifest('/b/'); + await loadManifest('/b/'); + expect(f).toHaveBeenCalledTimes(2); + }); + + it('rejects on a 404 and does not remember the failure', async () => { + serve({}); + await expect(loadManifest('/b/')).rejects.toThrow(/404/); + serve(files()); + await expect(loadManifest('/b/')).resolves.toBeTruthy(); + }); +}); diff --git a/src/app/features/scene/ridge/manifest.ts b/src/app/features/scene/ridge/manifest.ts new file mode 100644 index 00000000..a3d0e33e --- /dev/null +++ b/src/app/features/scene/ridge/manifest.ts @@ -0,0 +1,150 @@ +// The ridge backdrop's one JSON boundary: a static asset between the offline Python baker (scripts/ridge-bake/export.py, whose SCHEMA is the +// contract) and the page; no daemon state. Main-chunk safe: types, a parser and fetch only. Wire names are snake_case; the parsed manifest is +// camelCase and its `view` is the View (`view.ts`) the sky and the planes share. +import type { View } from './view'; + +export const FRAME_KEYS = ['dawn', 'morning', 'noon', 'golden', 'dusk', 'night'] as const; +export type FrameKey = typeof FRAME_KEYS[number]; +export const PLANE_NAMES = ['far', 'mid', 'near'] as const; +export type PlaneName = typeof PLANE_NAMES[number]; +export const PLANE_W_MAX = 4096; + +export interface Frame { + key: FrameKey; + /** The sun this frame was lit by: degrees. */ + sun: { az: number; el: number }; + /** File names inside the manifest's directory. */ + planes: Record; +} + +export interface RidgeManifest { + bakeId: string; + /** Absolute-or-rooted URL of the bake's directory, with a trailing slash. */ + dir: string; + /** Display name of the place. */ + name: string; + view: View; + /** In `FRAME_KEYS` order. */ + frames: Frame[]; + attribution: { creditLine: string; licence: string; demSource: string; url: string }; +} + +export interface RidgeIndex { + default: string; + places: Record; +} + +type Rec = Record; +const fail = (path: string, why: string): never => { + throw new Error(`ridge manifest ${path}: ${why}`); +}; +const rec = (x: unknown, path: string): Rec => + typeof x === 'object' && x !== null && !Array.isArray(x) + ? (x as Rec) + : fail(path, 'not an object'); +const num = (x: unknown, path: string): number => + typeof x === 'number' && Number.isFinite(x) ? x : fail(path, 'not a number'); +const str = (x: unknown, path: string): string => + typeof x === 'string' ? x : fail(path, 'not a string'); + +export function parseIndex(raw: unknown): RidgeIndex { + const r = rec(raw, 'index'); + if (r.schema !== 1) fail('index.schema', 'must be 1'); + const places = rec(r.places, 'index.places'); + const out = Object.fromEntries( + Object.entries(places).map(([k, v]) => [k, str(v, `index.places.${k}`)]) + ); + return { default: str(r.default, 'index.default'), places: out }; +} + +/** `dir` is the URL of the directory the manifest was read from; the planes are read relative to it. */ +export function parseManifest(raw: unknown, dir: string): RidgeManifest { + const r = rec(raw, 'manifest'); + if (r.schema !== 1) fail('schema', 'must be 1'); + const p = rec(r.place, 'place'); + const v = rec(r.view, 'view'); + const planeW = num(v.plane_w, 'view.plane_w'); + if (planeW > PLANE_W_MAX) fail('view.plane_w', `above ${PLANE_W_MAX}`); + if (!Array.isArray(r.frames) || r.frames.length < FRAME_KEYS.length) + fail('frames', `fewer than ${FRAME_KEYS.length}`); + const frames = FRAME_KEYS.map((key) => { + const f = (r.frames as unknown[]) + .map((x, i) => rec(x, `frames[${i}]`)) + .find((x) => x.key === key); + if (!f) return fail('frames', `no ${key} frame`); + const sun = rec(f.sun, `frames.${key}.sun`); + const planes = rec(f.planes, `frames.${key}.planes`); + const file = (n: PlaneName) => + str(rec(planes[n], `frames.${key}.planes.${n}`).file, `frames.${key}.planes.${n}.file`); + return { + key, + sun: { az: num(sun.az, `frames.${key}.sun.az`), el: num(sun.el, `frames.${key}.sun.el`) }, + planes: { far: file('far'), mid: file('mid'), near: file('near') }, + }; + }); + const a = rec(r.attribution, 'attribution'); + const id = str(p.id, 'place.id'); + return { + bakeId: str(r.bake_id, 'bake_id'), + dir, + name: str(p.name, 'place.name'), + view: { + place: { + id, + lat: num(p.lat, 'place.lat'), + lon: num(p.lon, 'place.lon'), + altitudeKm: num(p.altitude_km, 'place.altitude_km'), + }, + lookAzDeg: num(v.look_az_deg, 'view.look_az_deg'), + windowDeg: num(v.window_deg, 'view.window_deg'), + planeW, + planeH: num(v.plane_h, 'view.plane_h'), + pxPerDegH: num(v.px_per_deg_h, 'view.px_per_deg_h'), + horizonRow: num(v.horizon_row, 'view.horizon_row'), + }, + frames, + attribution: { + creditLine: str(a.credit_line, 'attribution.credit_line'), + licence: str(a.licence, 'attribution.licence'), + demSource: str(a.dem_source, 'attribution.dem_source'), + url: str(a.url, 'attribution.url'), + }, + }; +} + +async function getJson(url: string, init?: RequestInit): Promise { + const res = await fetch(url, init); + if (!res.ok) throw new Error(`ridge: ${url} answered ${res.status}`); + return res.json(); +} + +const memo = new Map>(); + +/** + * The manifest of a baked place: `${baseUrl}public/ridge/index.json` names each place's directory, then `/manifest.json` is read. + * `placeId` picks the entry (unknown or absent: the index's default). Memoised per index URL and place; a failure is not remembered. + * Rejects on any failure: the caller degrades to the sky-only scene. + */ +export function loadManifest(baseUrl: string, placeId?: string): Promise { + const root = `${baseUrl}public/ridge/`; + const key = `${root}|${placeId ?? ''}`; + const hit = memo.get(key); + if (hit) return hit; + const p = (async () => { + const index = parseIndex( + // The index is the one mutable pointer (a rebake deletes the old directory it named); the manifest and planes are content-addressed. + await getJson(`${root}index.json`, { cache: 'no-cache' }) + ); + const id = placeId !== undefined && placeId in index.places ? placeId : index.default; + const name = index.places[id]; + if (name === undefined) throw new Error(`ridge: index has no place ${id}`); + const dir = `${root}${name}/`; + return parseManifest(await getJson(`${dir}manifest.json`), dir); + })(); + memo.set(key, p); + p.catch(() => memo.delete(key)); + return p; +} + +/** For tests: forget every memoised manifest. */ +export const forgetManifests = (): void => memo.clear(); diff --git a/src/app/features/scene/ridge/physicalSky.test.ts b/src/app/features/scene/ridge/physicalSky.test.ts index be12945e..b0426924 100644 --- a/src/app/features/scene/ridge/physicalSky.test.ts +++ b/src/app/features/scene/ridge/physicalSky.test.ts @@ -1,7 +1,12 @@ import { describe, expect, it } from 'vitest'; +import { FALLBACK_VIEW } from './view'; +import { ELSEWHERE_VIEW } from './manifest.fixture'; +import { sunForState } from './sunAt'; import { makePhysicalSky, paintSky } from './physicalSky'; import { skyBackdrop } from '../skyState'; import type { FixedSkyState } from '../skyBand'; +import { windowFor } from './view'; +import type { PhysicalSky } from './physicalSky'; // The Aqua method on tonemapped pixels: paint the sky the way the host canvas does and measure the WCAG luminance of every 8-bit // texel, against the bounds the page text was checked against (`skyBackdrop`, 4.5:1). Over the weather, the day of the year, and @@ -13,6 +18,13 @@ const lin = (v: number): number => { const luma = (d: Uint8ClampedArray, i: number): number => 0.2126 * lin(d[i]) + 0.7152 * lin(d[i + 1]) + 0.0722 * lin(d[i + 2]); +const camera = (sky: PhysicalSky, w: number, h: number) => windowFor(sky.view, w, h).camera; +/** The camera of the viewport turned to face the sun, so the disc's colour and floor are measured wherever the sun is. */ +const facingSun = (sky: PhysicalSky, w: number, h: number) => ({ + ...camera(sky, w, h), + azimuthDeg: sky.sun.azimuth, +}); + const DAYS = ['2026-03-20', '2026-06-21', '2026-09-23', '2026-12-21']; const WEATHER = [0, 0.3, 0.55, 0.75, 1]; const VIEWPORTS: [number, number][] = [ @@ -31,9 +43,9 @@ describe.each(['day', 'dusk', 'night'] as FixedSkyState[])( let hi = -1; for (const day of DAYS) { for (const w of WEATHER) { - const sky = makePhysicalSky(state, new Date(`${day}T10:40:00Z`), w); + const sky = makePhysicalSky(state, new Date(`${day}T10:40:00Z`), w, FALLBACK_VIEW); for (const [vw, vh] of VIEWPORTS) { - const px = paintSky(sky, vw, vh); + const px = paintSky(sky, vw, vh, camera(sky, vw, vh)); for (let i = 0; i < px.w * px.h * 4; i += 4) { const l = luma(px.data, i); lo = Math.min(lo, l); @@ -51,8 +63,12 @@ describe.each(['day', 'dusk', 'night'] as FixedSkyState[])( describe('weather in the sky', () => { it('overcast is cloud: less blue and less contrast than clear air at the same sun', () => { const at = new Date('2026-06-21T10:40:00Z'); - const clear = paintSky(makePhysicalSky('day', at, 0), 640, 360); - const grey = paintSky(makePhysicalSky('day', at, 0.7), 640, 360); + const paint = (w: number) => { + const sky = makePhysicalSky('day', at, w, FALLBACK_VIEW); + return paintSky(sky, 640, 360, camera(sky, 640, 360)); + }; + const clear = paint(0); + const grey = paint(0.7); const spread = (p: typeof clear) => { let lo = 2; let hi = -1; @@ -79,11 +95,8 @@ describe('the sun disc', () => { let drawn = 0; for (const state of ['day', 'dusk'] as FixedSkyState[]) { for (let m = 0; m < 24 * 60; m += 10) { - const d = paintSky( - makePhysicalSky(state, new Date(Date.UTC(2026, 10, 11, 0, m)), 0), - 1280, - 720 - ).sunDisc; + const sky = makePhysicalSky(state, new Date(Date.UTC(2026, 10, 11, 0, m)), 0, FALLBACK_VIEW); + const d = paintSky(sky, 1280, 720, facingSun(sky, 1280, 720)).sunDisc; if (!d) continue; drawn += 1; expect( @@ -93,24 +106,46 @@ describe('the sun disc', () => { } expect(drawn).toBeGreaterThan(0); }); - const noon = new Date('2026-11-11T10:40:00Z'); // 21 degrees: in June the noon sun is above the top of the image + const disc = (sky: PhysicalSky) => paintSky(sky, 1280, 720, facingSun(sky, 1280, 720)); + const noon = new Date('2026-12-21T11:00:00Z'); // about 18 degrees: higher suns are above the top of the window it('is drawn by the host, in a clear sky by day, white with the sun high', () => { - const d = paintSky(makePhysicalSky('day', noon, 0), 1280, 720).sunDisc; + const sky = makePhysicalSky('day', noon, 0, FALLBACK_VIEW); + const d = disc(sky).sunDisc; expect(d).toBeDefined(); expect(d!.x).toBeGreaterThan(0); expect(d!.x).toBeLessThan(1); expect(d!.y).toBeGreaterThan(0); - expect(d!.y).toBeLessThan(0.78); // above the horizon line + expect(d!.y).toBeLessThan(camera(sky, 1280, 720).horizonAt); // above the horizon line expect(d!.alpha).toBe(1); expect(Math.min(...d!.rgb)).toBeGreaterThan(150); // a warm white at 21 degrees }); it('is hidden by overcast and absent at night', () => { - expect(paintSky(makePhysicalSky('day', noon, 0.7), 1280, 720).sunDisc).toBeUndefined(); - expect(paintSky(makePhysicalSky('night', noon, 0), 1280, 720).sunDisc).toBeUndefined(); + expect(disc(makePhysicalSky('day', noon, 0.7, FALLBACK_VIEW)).sunDisc).toBeUndefined(); + expect(disc(makePhysicalSky('night', noon, 0, FALLBACK_VIEW)).sunDisc).toBeUndefined(); }); it('is orange-tinted low in the sky', () => { - const d = paintSky(makePhysicalSky('dusk', noon, 0), 1280, 720).sunDisc; + const d = disc(makePhysicalSky('dusk', noon, 0, FALLBACK_VIEW)).sunDisc; expect(d).toBeDefined(); expect(d!.rgb[0]).toBeGreaterThan(d!.rgb[2]); }); }); + +describe('the sky is made from the View it is given', () => { + const NOW = new Date('2026-06-21T10:40:00Z'); + const sameSpotOtherCamera = { ...FALLBACK_VIEW, lookAzDeg: 30, windowDeg: 100, horizonRow: 200 }; + + it("lights the sky from the sun over the View's place, at its altitude", () => { + const sky = makePhysicalSky('day', NOW, 0, ELSEWHERE_VIEW); + expect(sky.view).toBe(ELSEWHERE_VIEW); + expect(sky.sun).toEqual(sunForState(ELSEWHERE_VIEW.place, 'day', NOW)); + expect(sky.sun).not.toEqual(sunForState(FALLBACK_VIEW.place, 'day', NOW)); + expect(sky.atm.observerKm).toBe(ELSEWHERE_VIEW.place.altitudeKm); + }); + + it("fits and samples the stops through the View's camera: the same place and sun with another look is another gradient", () => { + const a = makePhysicalSky('day', NOW, 0, FALLBACK_VIEW); + const b = makePhysicalSky('day', NOW, 0, sameSpotOtherCamera); + expect(b.sun).toEqual(a.sun); + expect(b.stops).not.toEqual(a.stops); + }); +}); diff --git a/src/app/features/scene/ridge/physicalSky.ts b/src/app/features/scene/ridge/physicalSky.ts index 0e034416..2136a9e5 100644 --- a/src/app/features/scene/ridge/physicalSky.ts +++ b/src/app/features/scene/ridge/physicalSky.ts @@ -1,29 +1,25 @@ -// The ridge scene's sky: Vienna's sun on the real clock, the atmosphere baked from it, a camera, and the display that makes it +// The ridge scene's sky: the View's place's sun on the real clock, the atmosphere baked from it, a camera, and the display that makes it // pixels. `makePhysicalSky` does the one expensive thing (the LUT bake, tens of ms) and fits the display from a fixed 16:9 // grid, so resizing the window repaints the same sky. `paintSky` is per-texel lookups only. import type { FixedSkyState } from '../skyBand'; import { bakeAtmosphere } from './earthAtmosphere'; import type { Atmosphere } from './earthAtmosphere'; -import { - domeSize, - HORIZON_AT, - renderDome, - SUN_RADIUS, - sunOnScreen, - viewFor, - VFOV_DEG, -} from './skyDome'; -import type { Dome, DomeView } from './skyDome'; +import { domeSize, renderDome, SUN_RADIUS, sunOnScreen } from './skyDome'; +import type { Dome } from './skyDome'; import type { Srgb } from './skyColour'; import { display8, fitDisplay, holdBudget, MARGIN } from './toneMap'; import type { Display, Fit } from './toneMap'; -import { sunForState, VIENNA } from './vienna'; -import type { SunSample } from './vienna'; +import { sunForState } from './sunAt'; +import type { SunSample } from './sunAt'; +import { windowFor } from './view'; +import type { Camera, View } from './view'; import { weatherOf } from './weather'; import type { Weather } from './weather'; export interface PhysicalSky { state: FixedSkyState; + /** Where the observer stands and where the planes look: the camera of any viewport is `windowFor(view, w, h).camera`. */ + view: View; sun: SunSample; weather: Weather; atm: Atmosphere; @@ -35,7 +31,7 @@ export interface PhysicalSky { bakeMs: number; } -const CANON = { w: 64, h: 36, aspect: 16 / 9 }; +const CANON = { w: 64, h: 36 }; const clock = (): number => (typeof performance !== 'undefined' ? performance.now() : Date.now()); @@ -56,26 +52,30 @@ export function rowMean(dome: Dome, display: Display, row: number): Srgb { export function makePhysicalSky( state: FixedSkyState, now: Date, - weatherValue: number + weatherValue: number, + view: View ): PhysicalSky { const t0 = clock(); - const sun = sunForState(state, now); + const sun = sunForState(view.place, state, now); const weather = weatherOf(weatherValue); const atm = bakeAtmosphere({ sunElevationDeg: sun.elevation, mieScale: weather.mieScale, - observerKm: VIENNA.altitudeKm, + observerKm: view.place.altitudeKm, }); - const dome = renderDome(atm, sun, viewFor(sun, CANON.aspect), CANON.w, CANON.h, weather.cover); + // A 16:9 viewport: the camera's fov and horizon fraction do not depend on its size, only on its shape. + const { camera } = windowFor(view, CANON.w, CANON.h); + const dome = renderDome(atm, sun, camera, CANON.w, CANON.h, weather.cover); const fit = fitDisplay(state, dome.hdr, dome.meanLuma); const at = (f: number) => rowMean(dome, fit.display, Math.round(f * CANON.h)); return { state, + view, sun, weather, atm, fit, - stops: { top: at(0.02), mid: at(0.5), horizon: at(HORIZON_AT) }, + stops: { top: at(0.02), mid: at(0.5), horizon: at(camera.horizonAt) }, bakeMs: clock() - t0, }; } @@ -86,16 +86,15 @@ export interface SkyPixels { /** RGBA, 8 bit. */ data: Uint8ClampedArray; dome: Dome; - view: DomeView; + camera: Camera; /** The sun's disc for the host to draw on the upscaled canvas (it is smaller than a texel): place as fractions of the image, colour, radius in fractions of the height, opacity after the cloud. */ sunDisc?: { x: number; y: number; rgb: Srgb; radius: number; alpha: number }; } -/** The sky for a viewport, as a small RGBA grid the host canvas upscales smoothly. */ -export function paintSky(p: PhysicalSky, cssW: number, cssH: number): SkyPixels { +/** The sky for a viewport seen through `camera` (`windowFor(p.view, cssW, cssH).camera`), as a small RGBA grid the host canvas upscales smoothly. */ +export function paintSky(p: PhysicalSky, cssW: number, cssH: number, camera: Camera): SkyPixels { const { w, h } = domeSize(cssW, cssH); - const view = viewFor(p.sun, cssW / cssH); - const dome = renderDome(p.atm, p.sun, view, w, h, p.weather.cover); + const dome = renderDome(p.atm, p.sun, camera, w, h, p.weather.cover); const data = new Uint8ClampedArray(w * h * 4); const out = [0, 0, 0]; const display = holdBudget(p.state, dome.hdr, p.fit.display); @@ -106,7 +105,7 @@ export function paintSky(p: PhysicalSky, cssW: number, cssH: number): SkyPixels data[i * 4 + 2] = out[2]; data[i * 4 + 3] = 255; } - return { w, h, data, dome, view, sunDisc: sunDisc(p, view) }; + return { w, h, data, dome, camera, sunDisc: sunDisc(p, camera) }; } /** The luma the disc must keep: the day/dusk floor of toneMap's budget. */ @@ -120,8 +119,8 @@ const smooth01 = (a: number, b: number, v: number): number => { * The sun's disc: always brighter than the display's white, so what is left of it is its colour, the air's transmittance to the sun * normalised to its strongest channel (white high up, orange near the horizon). Thick cloud hides it. */ -function sunDisc(p: PhysicalSky, view: DomeView): SkyPixels['sunDisc'] { - const at = sunOnScreen(p.sun, view); +function sunDisc(p: PhysicalSky, camera: Camera): SkyPixels['sunDisc'] { + const at = sunOnScreen(p.sun, camera); const alpha = 1 - smooth01(0.1, 0.6, p.weather.cover); if (!at || alpha <= 0) return undefined; const trans = [0, 0, 0]; @@ -138,7 +137,7 @@ function sunDisc(p: PhysicalSky, view: DomeView): SkyPixels['sunDisc'] { return { ...at, rgb: rgb as unknown as Srgb, - radius: (SUN_RADIUS * 180) / Math.PI / VFOV_DEG, + radius: (SUN_RADIUS * 180) / Math.PI / camera.vfovDeg, alpha, }; } diff --git a/src/app/features/scene/ridge/ridgeAssets.test.ts b/src/app/features/scene/ridge/ridgeAssets.test.ts new file mode 100644 index 00000000..96b899b0 --- /dev/null +++ b/src/app/features/scene/ridge/ridgeAssets.test.ts @@ -0,0 +1,229 @@ +// The committed baked set under public/ridge: what the baker wrote is what ships, within the budget the baker itself refuses on +// (export.py PAIR_BYTES_MAX, DECODE_BYTES_MAX). Reads with node fs. The gate reads each plane's own bytes, not the manifest's claims about +// them: the WebP container is walked and its stated dimensions (VP8X canvas, VP8 / VP8L frame header) must equal the manifest's w and h, +// which the decode budget is computed from; and the bake id is re-derived from the plane bytes, as the baker derives it, so any +// corruption of a plane, same length or not, fails. No pixel decoder is in the tree; the baker's own check decodes pixels. +import { createHash } from 'node:crypto'; +import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; +import { join } from 'node:path'; +import { describe, expect, it } from 'vitest'; +import { FRAME_KEYS, PLANE_NAMES, parseIndex, parseManifest } from './manifest'; + +/** The same two constants as scripts/ridge-bake/export.py: two adjacent frames, fetched and decoded. */ +export const PAIR_BYTES_MAX = 800_000; +export const DECODE_BYTES_MAX = 20_000_000; + +interface WirePlane { + file: string; + bytes: number; + w: number; + h: number; +} +interface WireFrame { + key: string; + planes: Record; + luma: { min: number; max: number }; +} +export interface WireManifest { + bake_id: string; + frames: WireFrame[]; +} + +const planes = (f: WireFrame): WirePlane[] => PLANE_NAMES.map((n) => f.planes[n]); + +/** Why a manifest breaks the size gate, or undefined. Frames are taken in FRAME_KEYS order; the pairs are neighbours, and night meets dawn. */ +export function sizeGate(m: WireManifest): string | undefined { + const byKey = FRAME_KEYS.map((k) => m.frames.find((f) => f.key === k) as WireFrame); + for (let i = 0; i < byKey.length; i += 1) { + const pair = [byKey[i], byKey[(i + 1) % byKey.length]]; + const ps = pair.flatMap(planes); + const fetched = ps.reduce((a, p) => a + p.bytes, 0); + const decoded = ps.reduce((a, p) => a + p.w * p.h * 4, 0); + if (fetched > PAIR_BYTES_MAX) return `${pair[0].key}+${pair[1].key} fetches ${fetched}`; + if (decoded > DECODE_BYTES_MAX) return `${pair[0].key}+${pair[1].key} decodes ${decoded}`; + } + return undefined; +} + +/** + * Why a buffer is not a well-formed WebP of `w` x `h`, or undefined. Checks the RIFF envelope (its size is the file's), that the chunks tile + * the file exactly, and the dimensions the container and the bitstream header each state. + */ +export function webpFault(b: Uint8Array, w: number, h: number): string | undefined { + const u32 = (o: number) => (b[o] | (b[o + 1] << 8) | (b[o + 2] << 16) | (b[o + 3] << 24)) >>> 0; + const u24 = (o: number) => b[o] | (b[o + 1] << 8) | (b[o + 2] << 16); + const tag = (o: number) => String.fromCharCode(b[o], b[o + 1], b[o + 2], b[o + 3]); + if (b.length < 20 || tag(0) !== 'RIFF' || tag(8) !== 'WEBP') return 'not a RIFF WEBP'; + if (u32(4) + 8 !== b.length) return `RIFF size ${u32(4)} does not fit a ${b.length} byte file`; + const dims: string[] = []; + let seen = 0; + let o = 12; + while (o < b.length) { + if (o + 8 > b.length) return 'a chunk header runs past the file'; + const id = tag(o); + const len = u32(o + 4); + const body = o + 8; + if (body + len > b.length) return `chunk ${id} runs past the file`; + if (id === 'VP8X') dims.push(`${u24(body + 4) + 1}x${u24(body + 7) + 1}`); + if (id === 'VP8 ') { + if (b[body + 3] !== 0x9d || b[body + 4] !== 0x01 || b[body + 5] !== 0x2a) + return 'VP8 start code missing'; + dims.push( + `${(b[body + 6] | (b[body + 7] << 8)) & 0x3fff}x${ + (b[body + 8] | (b[body + 9] << 8)) & 0x3fff + }` + ); + seen += 1; + } + if (id === 'VP8L') { + if (b[body] !== 0x2f) return 'VP8L signature missing'; + const bits = u32(body + 1); + dims.push(`${(bits & 0x3fff) + 1}x${((bits >>> 14) & 0x3fff) + 1}`); + seen += 1; + } + o = body + len + (len & 1); + } + if (o !== b.length) return 'the chunks do not tile the file'; + if (seen !== 1) return `${seen} bitstream chunks`; + const bad = dims.find((d) => d !== `${w}x${h}`); + return bad ? `states ${bad}, the manifest ${w}x${h}` : undefined; +} + +/** The baker's bake id (export.py `bake_id`): first 12 hex of sha256 over the plane bytes, frames in FRAME_KEYS order, planes far, mid, near. */ +export function bakeIdOf(planeBytes: (frame: string, plane: string) => Uint8Array): string { + const h = createHash('sha256'); + FRAME_KEYS.forEach((k) => PLANE_NAMES.forEach((n) => h.update(planeBytes(k, n)))); + return h.digest('hex').slice(0, 12); +} + +const ROOT = join(process.cwd(), 'public', 'ridge'); +const readJson = (p: string): unknown => JSON.parse(readFileSync(p, 'utf8')); +const index = parseIndex(readJson(join(ROOT, 'index.json'))); +const dirs = Object.entries(index.places); + +describe('the committed ridge assets', () => { + it('ship at least one place, and the index default is one of them', () => { + expect(dirs.length).toBeGreaterThan(0); + expect(index.places[index.default]).toBeDefined(); + }); + + dirs.forEach(([id, dir]) => { + describe(`${id} (${dir})`, () => { + const raw = readJson(join(ROOT, dir, 'manifest.json')) as WireManifest; + + it('parses, and its directory ends in its bake id', () => { + expect(() => parseManifest(raw, `${dir}/`)).not.toThrow(); + expect(dir.endsWith(`-${raw.bake_id}`)).toBe(true); + }); + + it('has every plane file, at the length the manifest states', () => { + raw.frames.flatMap(planes).forEach((p) => { + expect(statSync(join(ROOT, dir, p.file)).size, p.file).toBe(p.bytes); + }); + }); + + it('decodes every plane as the WebP of the size the manifest states', () => { + raw.frames.flatMap(planes).forEach((p) => { + expect( + webpFault(readFileSync(join(ROOT, dir, p.file)), p.w, p.h), + p.file + ).toBeUndefined(); + }); + }); + + it('holds the bytes its bake id was made from', () => { + const bytes = (frame: string, plane: string) => + readFileSync( + join( + ROOT, + dir, + (raw.frames.find((f) => f.key === frame) as WireFrame).planes[plane].file + ) + ); + expect(bakeIdOf(bytes)).toBe(raw.bake_id); + }); + + it('keeps every adjacent pair of frames inside the fetch and decode budget', () => { + expect(sizeGate(raw)).toBeUndefined(); + }); + + it('records a finite luma for every frame', () => { + expect(raw.frames).toHaveLength(FRAME_KEYS.length); + raw.frames.forEach((f) => { + expect(Number.isFinite(f.luma.min) && Number.isFinite(f.luma.max), f.key).toBe(true); + expect(f.luma.min, f.key).toBeLessThanOrEqual(f.luma.max); + }); + }); + }); + }); + + it('holds no file a manifest does not name', () => { + const named = new Set(['index.json']); + dirs.forEach(([, dir]) => { + named.add(`${dir}/manifest.json`); + (readJson(join(ROOT, dir, 'manifest.json')) as WireManifest).frames + .flatMap(planes) + .forEach((p) => named.add(`${dir}/${p.file}`)); + }); + const onDisk = readdirSync(ROOT, { recursive: true, withFileTypes: true }) + .filter((e) => e.isFile()) + .map((e) => join(e.parentPath, e.name).slice(ROOT.length + 1)); + expect(onDisk.filter((f) => !named.has(f))).toEqual([]); + expect([...named].filter((f) => !existsSync(join(ROOT, f)))).toEqual([]); + }); +}); + +describe('the plane gates refuse a plane that is not what the manifest says', () => { + const real = readFileSync(join(ROOT, Object.values(index.places)[0], 'noon-mid.webp')); + const manifest = readJson( + join(ROOT, Object.values(index.places)[0], 'manifest.json') + ) as WireManifest; + const { w, h } = manifest.frames[2].planes.mid; + const id = (b: Uint8Array) => bakeIdOf(() => b); + + it('accepts the real plane at its size', () => { + expect(webpFault(real, w, h)).toBeUndefined(); + }); + it("refuses a manifest that lies about the plane's size, and a file cut short or padded", () => { + expect(webpFault(real, w, h + 1)).toMatch(/states/); + expect(webpFault(real.subarray(0, real.length - 1), w, h)).toBeDefined(); + expect(webpFault(Buffer.concat([real, Buffer.from([0])]), w, h)).toBeDefined(); + }); + it('refuses a frame header whose dimensions are changed, and bytes that are not a WebP', () => { + const vp8 = Buffer.from(real); + const at = vp8.indexOf('VP8 ') + 8 + 6; + vp8[at] ^= 0x01; + expect(webpFault(vp8, w, h)).toMatch(/states/); + expect(webpFault(Buffer.from('not a webp, but long enough to try'), w, h)).toMatch(/RIFF/); + }); + it('re-derives a different bake id from a plane with the same length and 8 bytes overwritten', () => { + const bad = Buffer.from(real); + bad.fill(0xab, 100, 108); + expect(bad.length).toBe(real.length); + expect(id(bad)).not.toBe(id(real)); + }); +}); + +describe('sizeGate', () => { + const plane = (bytes: number): WirePlane => ({ file: 'x.webp', bytes, w: 1280, h: 600 }); + const frame = (key: string, bytes: number): WireFrame => ({ + key, + planes: { far: plane(bytes), mid: plane(bytes), near: plane(bytes) }, + luma: { min: 0, max: 1 }, + }); + const set = (bytes: number): WireManifest => ({ + bake_id: 'x', + frames: FRAME_KEYS.map((k) => frame(k, bytes)), + }); + + it('passes a pair at the budget and fails a 900 KB pair', () => { + expect(sizeGate(set(133_333))).toBeUndefined(); + expect(sizeGate(set(150_000))).toMatch(/fetches 900000/); + }); + + it('fails a pair that decodes past the budget', () => { + const m = set(1); + m.frames[2].planes.far = { file: 'x.webp', bytes: 1, w: 4096, h: 1000 }; + expect(sizeGate(m)).toMatch(/decodes/); + }); +}); diff --git a/src/app/features/scene/ridge/ridgeBake.test.ts b/src/app/features/scene/ridge/ridgeBake.test.ts deleted file mode 100644 index 8ce91f41..00000000 --- a/src/app/features/scene/ridge/ridgeBake.test.ts +++ /dev/null @@ -1,404 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { BakeParams, bakeSlice, faceLight, layerPaint, sunDirection } from './ridgeBake'; -import { SKY_BAND } from '../skyBand'; -import { ridgeSkyFor } from '../skyForState'; -import { LACUNARITY, LAYERS, profile } from './ridgeWorld'; -import { skyColours, SkyColours } from './skyColour'; - -const SKY: SkyColours = { ...skyColours(), sunAzimuth: 0.3 }; // sun toward +x -const PERIOD = 400; -const VIEW_H = 800; -const BAND = 480; - -const params = ( - li: number, - px0: number, - cols: number, - over: Partial = {} -): BakeParams => ({ - spec: LAYERS[li], - sky: SKY, - period: PERIOD, - scale: 1, - viewH: VIEW_H, - rows: BAND, - bandH: BAND, - px0, - cols, - ...over, -}); - -function bake(p: BakeParams, slices: number[] = [p.cols]): Uint8ClampedArray { - const out = new Uint8ClampedArray(p.cols * p.rows * 4); - const paint = layerPaint(p.spec, p.sky); - let c = 0; - for (const n of slices) { - bakeSlice(out, p, paint, c, Math.min(p.cols, c + n)); - c += n; - } - return out; -} - -const lum = (d: Uint8ClampedArray, cols: number, x: number, y: number) => { - const o = (y * cols + x) * 4; - return 0.2126 * d[o] + 0.7152 * d[o + 1] + 0.0722 * d[o + 2]; -}; -/** First row of column x whose alpha is full. */ -const solidRow = (d: Uint8ClampedArray, cols: number, x: number) => { - let y = 0; - while (y < BAND && d[(y * cols + x) * 4 + 3] < 255) y += 1; - return y; -}; - -describe('the field is a function of world-x', () => { - it('is deterministic, and defined and bounded at any world-x', () => { - for (const spec of LAYERS) { - for (const t of [-40.3, 0, 0.5, 17.77, 5000.123]) { - expect(profile(spec, t)).toBe(profile(spec, t)); - expect(profile(spec, t)).toBeGreaterThanOrEqual(0); - expect(profile(spec, t)).toBeLessThanOrEqual(1); - } - } - }); - - it('has no repeat at the old period (1 viewport) or its multiples: the profile differs from itself shifted', () => { - for (const spec of LAYERS) { - for (const lag of [1, 2, 3, 0.5]) { - let diff = 0; - for (let i = 0; i < 400; i += 1) - diff += Math.abs(profile(spec, i / 100) - profile(spec, i / 100 + lag)); - expect(diff / 400).toBeGreaterThan(0.04); - } - } - }); - - it('the same world column bakes to the same pixels whichever chunk or slice paints it', () => { - for (const li of [0, 3]) { - const whole = bake(params(li, 1000, 200)); - const sliced = bake(params(li, 1000, 200), [37, 64, 1000]); - expect(Array.from(sliced)).toEqual(Array.from(whole)); - // A chunk starting 120 columns later sees the same pixels for the columns it shares. - const shifted = bake(params(li, 1120, 80)); - for (const x of [0, 17, 79]) { - for (const y of [0, 100, 300, BAND - 1]) { - const a = (y * 200 + 120 + x) * 4; - const b = (y * 80 + x) * 4; - expect(Array.from(shifted.slice(b, b + 4))).toEqual(Array.from(whole.slice(a, a + 4))); - } - } - } - }); - - it('is continuous across a chunk seam: the crest steps no more at the seam than elsewhere', () => { - const chunk = Math.round(PERIOD * 1.2); - for (const li of [0, 1, 2, 3]) { - const p = params(li, chunk - 40, 80); - const d = bake(p); - let worst = 0; - for (let x = 1; x < 80; x += 1) - worst = Math.max(worst, Math.abs(solidRow(d, 80, x) - solidRow(d, 80, x - 1))); - const seam = Math.abs(solidRow(d, 80, 40) - solidRow(d, 80, 39)); - expect(seam).toBeLessThanOrEqual(Math.max(worst, 1)); - // and the seam columns equal a chunk baked from the other side - const other = bake(params(li, chunk - 40, 80, { cols: 80 })); - expect(Array.from(other)).toEqual(Array.from(d)); - } - }); -}); - -describe('shading from the slope normal', () => { - const sun = sunDirection(SKY); - - it('the sun is toward +x for azimuth 0.3', () => { - expect(sun[0]).toBeGreaterThan(0.5); - }); - - it('a face looking at the sun is lit more than one looking away', () => { - // slope < 0: the crest falls toward +x, so the face looks at +x, at the sun. - for (const s of [0.2, 0.6, 1.5]) expect(faceLight(-s, sun)).toBeGreaterThan(faceLight(s, sun)); - expect(faceLight(1.5, sun)).toBeLessThan(0.2); - expect(faceLight(-1.5, sun)).toBeGreaterThan(0.6); - }); - - it('in the baked pixels the lit side is brighter than the shadow side', () => { - for (const li of [0, 1, 2]) { - const cols = 900; - const p = params(li, 0, cols); - const d = bake(p); - const slope = (x: number) => (solidRow(d, cols, x - 1) - solidRow(d, cols, x + 1)) / 2; // rows up per column - const litX: number[] = []; - const shadeX: number[] = []; - for (let x = 2; x < cols - 2; x += 1) { - if (slope(x) < -0.8) litX.push(x); - if (slope(x) > 0.8) shadeX.push(x); - } - expect(litX.length).toBeGreaterThan(5); - expect(shadeX.length).toBeGreaterThan(5); - const mean = (xs: number[]) => - xs.reduce((a, x) => a + lum(d, cols, x, solidRow(d, cols, x) + 12), 0) / xs.length; - expect(mean(litX)).toBeGreaterThan(mean(shadeX)); - } - }); - - it('a lit crest rim: the crest pixels are brighter than the face a little below, on both sides', () => { - for (const li of [0, 1, 2, 3]) { - const cols = 600; - const d = bake(params(li, 300, cols)); - let rimmed = 0; - let n = 0; - for (let x = 3; x < cols - 3; x += 1) { - const y = solidRow(d, cols, x); - if (y + 40 >= BAND) continue; - n += 1; - if (lum(d, cols, x, y + 1) > lum(d, cols, x, y + 30)) rimmed += 1; - } - expect(n).toBeGreaterThan(100); - expect(rimmed / n).toBeGreaterThan(0.8); - } - }); - - it('the foot of the face is clearly darker than its top, on every layer: volume from the depth below the crest', () => { - // Without the depth shading the bottom row is 0.93 to 0.98 of the luminance 12 rows under the crest; with it, 0.73 to 0.82. - for (const li of [0, 1, 2, 3]) { - const cols = 900; - const d = bake(params(li, 0, cols, { spec: { ...LAYERS[li], mist: 0, gully: 0 } })); - let ratio = 0; - let n = 0; - for (let x = 0; x < cols; x += 1) { - const y = solidRow(d, cols, x); - if (y + 90 >= BAND) continue; - n += 1; - ratio += lum(d, cols, x, BAND - 1) / Math.max(1, lum(d, cols, x, y + 12)); - } - expect(n).toBeGreaterThan(30); - expect(ratio / n).toBeLessThan(0.88); - } - }); - - it('the valley mist still pulls the foot toward the haze colour', () => { - const cols = 300; - const p = params(0, 0, cols); - const misty = bake(p); - const clear = bake(params(0, 0, cols, { spec: { ...LAYERS[0], mist: 0 } })); - const haze = layerPaint(p.spec, p.sky).haze; - const dist = (d: Uint8ClampedArray, x: number, y: number) => { - const o = (y * cols + x) * 4; - return Math.hypot(d[o] - haze[0], d[o + 1] - haze[1], d[o + 2] - haze[2]); - }; - let nearer = 0; - let n = 0; - for (let x = 0; x < cols; x += 1) { - const y = solidRow(misty, cols, x); - if (y + 200 >= BAND) continue; - n += 1; - if (dist(misty, x, y + 200) < dist(clear, x, y + 200)) nearer += 1; - } - expect(n).toBeGreaterThan(50); - expect(nearer / n).toBeGreaterThan(0.9); - }); - - it('erosion streaks run down the face: brightness varies across columns at one depth, and not without them', () => { - const cols = 500; - const spread = (gully: number) => { - const d = bake(params(2, 0, cols, { spec: { ...LAYERS[2], gully } })); - // The same depth below the crest in every column, in the lit-independent part (gullies darken, lit is column-wise). - const v: number[] = []; - for (let x = 0; x < cols; x += 1) { - const y = solidRow(d, cols, x); - if (y + 90 < BAND) v.push(lum(d, cols, x, y + 80) / Math.max(1, lum(d, cols, x, y + 8))); - } - const m = v.reduce((a, b) => a + b, 0) / v.length; - return v.reduce((a, b) => a + (b - m) ** 2, 0) / v.length; - }; - expect(spread(LAYERS[2].gully)).toBeGreaterThan(spread(0) * 1.2); - }); -}); - -describe('bake cost', () => { - it('is recorded, not asserted: one chunk of every layer at 1280 x 720', () => { - const period = 1280; - const rows = Math.round(720 * 0.6); - const ms = LAYERS.map((spec) => { - const p: BakeParams = { - spec, - sky: SKY, - period, - scale: 1, - viewH: 720, - rows, - bandH: rows, - px0: 0, - cols: Math.round(period * 1.2), - }; - const t0 = performance.now(); - bake(p); - return performance.now() - t0; - }); - expect(ms.every((v) => Number.isFinite(v) && v >= 0)).toBe(true); - console.info( - `ridge bake ms per layer (node, 1 chunk, 1280x720): ${ms.map((v) => v.toFixed(1)).join(' ')}` - ); - }); -}); - -describe('the ridged multifractal core, each rule on its own', () => { - const one = { ...LAYERS[0], octaves: 1, warp: 0, crag: 1 }; - - it('folds each octave at its crest: a creased, sharp ridge line, not a smooth swell', () => { - // Largest second difference over a fine scan. A smooth curve of this size stays in the hundreds; - // a fold leaves a crease where the noise crosses its midpoint. - const h = 1e-3; - let worst = 0; - for (let i = 1; i < 20000; i += 1) { - const t = i * h; - worst = Math.max( - worst, - Math.abs(profile(one, t + h) - 2 * profile(one, t) + profile(one, t - h)) / (h * h) - ); - } - expect(worst).toBeGreaterThan(2000); - }); - - it('domain-warps: the same layer without its warp is a measurably different line', () => { - const spec = LAYERS[1]; - let diff = 0; - for (let i = 0; i < 2000; i += 1) - diff += Math.abs(profile(spec, i / 100) - profile({ ...spec, warp: 0 }, i / 100)); - expect(diff / 2000).toBeGreaterThan(0.02); - }); - - it('weights each octave by the previous one: where the first octave is low, the later ones add almost nothing', () => { - const lo = { ...LAYERS[1], octaves: 1, warp: 0 }; - const hi = { ...LAYERS[1], octaves: 5, warp: 0 }; - let valley = 0; - let nv = 0; - let peak = 0; - let np = 0; - for (let i = 0; i < 10000; i += 1) { - const a = profile(lo, i / 500); - const d = Math.abs(profile(hi, i / 500) - a); - if (a < 0.12) { - valley += d; - nv += 1; - } else if (a > 0.35) { - peak += d; - np += 1; - } - } - expect(nv).toBeGreaterThan(200); - expect(np).toBeGreaterThan(200); - expect(valley / nv).toBeLessThan(0.25 * (peak / np)); - }); - - it('octave lattices do not line up: the lacunarity is not a power of two', () => { - expect(Number.isInteger(Math.log2(LACUNARITY))).toBe(false); - expect(Number.isInteger(LACUNARITY)).toBe(false); - }); - - it('distance flattens relief: contrast falls from the nearest layer to the farthest', () => { - const c = LAYERS.map((spec) => layerPaint(spec, SKY).contrast); - expect(c[LAYERS.length - 1]).toBe(1); - for (let i = 1; i < c.length; i += 1) expect(c[i]).toBeGreaterThan(c[i - 1]); - // and it shows in the pixels: the lit/shadow difference is smaller on the farthest layer than the nearest - const gap = (li: number) => { - const cols = 700; - const d = bake(params(li, 0, cols)); - const slope = (x: number) => (solidRow(d, cols, x - 1) - solidRow(d, cols, x + 1)) / 2; - const avg = (pick: (s: number) => boolean) => { - const xs = Array.from({ length: cols - 4 }, (_, k) => k + 2).filter((x) => pick(slope(x))); - return ( - xs.reduce((a, x) => a + lum(d, cols, x, solidRow(d, cols, x) + 12), 0) / - Math.max(1, xs.length) - ); - }; - return ( - Math.abs(avg((s) => s < -0.8) - avg((s) => s > 0.8)) / - Math.max( - 1, - avg(() => true) - ) - ); - }; - expect(gap(0)).toBeLessThan(gap(3)); - }); -}); - -describe('the state band: the theme ink clears 4.5:1 on a ridge as on bare sky', () => { - const linear = (v: number) => { - const c = v / 255; - return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4; - }; - const luma = (d: Uint8ClampedArray, o: number) => - 0.2126 * linear(d[o]) + 0.7152 * linear(d[o + 1]) + 0.0722 * linear(d[o + 2]); - /** Lowest and highest luminance over the solid pixels of every layer. */ - const range = (band: typeof SKY_BAND[keyof typeof SKY_BAND] | undefined) => { - let lo = 1; - let hi = 0; - for (const li of [0, 1, 2, 3]) { - const p = params(li, 0, 700, { sky: { ...SKY, band } }); - const d = bake(p); - for (let o = 0; o < d.length; o += 4) { - if (d[o + 3] < 255) continue; - const l = luma(d, o); - lo = Math.min(lo, l); - hi = Math.max(hi, l); - } - } - return { lo, hi }; - }; - - it("day and dusk: no ridge pixel is darker than the text floor (Day's), on every layer", () => { - for (const band of [SKY_BAND.day, SKY_BAND.dusk]) { - expect(range(band).lo).toBeGreaterThanOrEqual(SKY_BAND.day.floor); - } - }); - - it('night: no ridge pixel is lighter than the ceiling', () => { - expect(range(SKY_BAND.night).hi).toBeLessThanOrEqual(SKY_BAND.night.ceiling); - }); - - it('is the identity with no band, so nothing else changes', () => { - expect(layerPaint(LAYERS[2], SKY).shift).toBeNull(); - expect(range(undefined).lo).toBeLessThan(SKY_BAND.day.floor); - }); - - it('keeps the shading: the foot is still darker than the top inside the band', () => { - // Inside the band the face's range is compressed, not removed: dusk, no mist or gullies, bottom row over 12 rows under the crest. - const sky = { ...SKY, band: SKY_BAND.dusk }; - for (const li of [0, 1, 2, 3]) { - const cols = 900; - const d = bake(params(li, 0, cols, { sky, spec: { ...LAYERS[li], mist: 0, gully: 0 } })); - let ratio = 0; - let n = 0; - for (let x = 0; x < cols; x += 1) { - const y = solidRow(d, cols, x); - if (y + 90 >= BAND) continue; - n += 1; - ratio += luma(d, ((BAND - 1) * cols + x) * 4) / luma(d, ((y + 12) * cols + x) * 4); - } - expect(n).toBeGreaterThan(30); - // Measured 0.84, 0.85, 0.91, 0.97 far to near: the nearest ground is near black, so its range is small in absolute terms. - expect(ratio / n).toBeLessThan(li < 3 ? 0.95 : 1); - } - }); - - it('the real states, over a sweep of the sun: no pixel overflows the encoding (an overflow reads as a stray black or yellow channel)', () => { - for (const state of ['day', 'dusk', 'night'] as const) { - for (const sunAzimuth of [0, 0.1, 0.25, 0.3, 0.5, 0.75, 0.9]) { - const sky = { ...ridgeSkyFor(state), sunAzimuth }; - for (const li of [0, 1, 2, 3]) { - const d = bake(params(li, 1000, 400, { sky })); - let stray = 0; - for (let o = 0; o < d.length; o += 4) { - if (d[o + 3] < 255) continue; - // A channel far below both others is the signature of a lookup that read past its table. - const lo = Math.min(d[o], d[o + 1], d[o + 2]); - const mid = d[o] + d[o + 1] + d[o + 2] - lo - Math.max(d[o], d[o + 1], d[o + 2]); - if (mid - lo > 120) stray += 1; - } - expect(stray).toBe(0); - } - } - } - }); -}); diff --git a/src/app/features/scene/ridge/ridgeBake.ts b/src/app/features/scene/ridge/ridgeBake.ts deleted file mode 100644 index 063c4e3e..00000000 --- a/src/app/features/scene/ridge/ridgeBake.ts +++ /dev/null @@ -1,221 +0,0 @@ -/* eslint-disable no-param-reassign -- `bakeSlice` fills the caller's pixel buffer */ -// The pixels of a ridge chunk, as a pure function: no DOM, no canvas. Each column is lit from the -// slope of the heightfield's crest line against the sun; the face under it takes a light-to-haze -// gradient, erosion streaks and a lit rim on the crest. The depth treatment (colour, haze, contrast -// by distance) is ridgeWorld's `layerColour`, `hazeColour` and `transmittance`, used here and not redone. -import { - gullyAt, - HorizonView, - LayerSpec, - layerProfile, - hazeColour, - layerColour, - transmittance, -} from './ridgeWorld'; -import type { SkyBand } from '../skyBand'; -import { LUMA, SKY_BAND } from '../skyBand'; -import type { SkyColours, Srgb } from './skyColour'; - -export type Vec3 = readonly [number, number, number]; - -/** Unit vector toward the sun: x across the screen (from the azimuth), y up, z toward the viewer. */ -export function sunDirection(sky: SkyColours): Vec3 { - const az = sky.sunAzimuth ?? 0.3; - const x = 0.9 * Math.sin(2 * Math.PI * az); - const l = Math.hypot(x, 0.35, 0.45); - return [x / l, 0.35 / l, 0.45 / l]; -} - -/** How steeply the crest's slope tilts the face's normal sideways. */ -const TILT = 1.2; - -/** - * Sun light on the face under a crest whose silhouette has `slope` (rows per column, positive when the - * crest rises toward +x, so the face looks toward -x). 0 in full shadow .. 1 head-on to the sun. - */ -export function faceLight(slope: number, sun: Vec3): number { - const nx = -slope * TILT; - const inv = 1 / Math.hypot(nx, 0.55, 0.85); - const d = (nx * sun[0] + 0.55 * sun[1] + 0.85 * sun[2]) * inv; - return Math.min(1, Math.max(0, (d - 0.2) / 0.7)); -} - -export interface BakeParams { - spec: LayerSpec; - sky: SkyColours; - /** Pixels in one viewport width: the unit of world-x. */ - period: number; - /** CSS px to canvas px. */ - scale: number; - /** Viewport height in canvas px. */ - viewH: number; - /** Rows of the pixel buffer (the band plus any padding below it). */ - rows: number; - /** Row count of the visible band; the crest is measured from the top of it. */ - bandH: number; - /** Where world-x is a compass azimuth, for the horizon layer (`LayerSpec.horizon`); absent: every layer is noise. */ - horizonView?: HorizonView; - /** World pixel of the buffer's column 0 (may be fractional-free negative: a chunk's left minus its padding). */ - px0: number; - /** Columns of the buffer. */ - cols: number; -} - -const clamp01 = (v: number): number => Math.min(1, Math.max(0, v)); -const smoothstep = (a: number, b: number, v: number): number => { - const t = clamp01((v - a) / (b - a)); - return t * t * (3 - 2 * t); -}; -const SUN_WHITE: Srgb = [255, 238, 205]; - -/** Everything `bakeSlice` needs per layer, computed once. */ -export interface LayerPaint { - /** The state's band as a shift of linear light (raises the floor, lowers the ceiling); null when the sky has none. */ - shift: BandShift | null; - base: Srgb; - haze: Srgb; - warm: Srgb; - contrast: number; - sun: Vec3; - /** How much the weather's mist multiplies the layer's own (`weather.ts`): 1 in clear air. */ - mistK: number; -} - -const decode = (v: number): number => { - const s = v / 255; - return s <= 0.04045 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4; -}; -const DECODE = Float32Array.from({ length: 256 }, (_, v) => decode(v)); -const ENCODE_STEPS = 4095; -const ENCODE = Uint8ClampedArray.from({ length: ENCODE_STEPS + 1 }, (_, i) => { - const l = i / ENCODE_STEPS; - return 255 * (l <= 0.0031308 ? 12.92 * l : 1.055 * l ** (1 / 2.4) - 0.055); -}); -/** What the band is held clear of at its edges: the 8-bit rounding and the blur and in-scatter the chunk takes after the bake. */ -const BAND_MARGIN = 0.012; - -/** Linear light out = in * `scale` + `add[channel]`. */ -export interface BandShift { - add: readonly [number, number, number]; - scale: number; -} - -/** - * The state's band (skyBand.ts) as a shift of linear light, solved once per layer. Adding `add` (the zenith colour, so - * the ridge reads as shadowed by the sky above, a hue apart from the horizon behind it) raises every pixel's - * luminance by exactly the floor, so the face keeps its whole gradient and the darkest pixel is on the floor; scaling by - * `scale` puts the lightest pixel on the ceiling. Smooth in the pixel's own luminance: no cut and no region. - * The floor is the text bound (Day's), not Dusk's higher link bound: the link ink is not set on ridges, and Dusk's - * floor washes the faces to a flat pale slab. - */ -export function bandShift(band: SkyBand | undefined, lift: Srgb): BandShift | null { - if (!band) return null; - const floor = Math.min(band.floor, SKY_BAND.day.floor); - const scale = band.ceiling < 1 ? band.ceiling - BAND_MARGIN / 3 : 1; - if (floor <= 0 && scale === 1) return null; - const lin = lift.map(decode); - const k = - floor > 0 - ? (floor + BAND_MARGIN) / (LUMA[0] * lin[0] + LUMA[1] * lin[1] + LUMA[2] * lin[2]) - : 0; - return { add: [lin[0] * k, lin[1] * k, lin[2] * k], scale }; -} - -export function layerPaint(spec: LayerSpec, sky: SkyColours): LayerPaint { - const warm: Srgb = [ - (sky.horizon[0] + SUN_WHITE[0]) / 2, - (sky.horizon[1] + SUN_WHITE[1]) / 2, - (sky.horizon[2] + SUN_WHITE[2]) / 2, - ]; - return { - shift: bandShift(sky.band, sky.top), - base: layerColour(spec, sky), - haze: hazeColour(sky), - warm, - // Distance flattens relief: the same transmittance that thins the colour. - contrast: 0.35 + 0.65 * transmittance(spec), - sun: sunDirection(sky), - mistK: 1 + 2.5 * (sky.physical?.weather.mist ?? 0), - }; -} - -/** Crest row (float, from the top of the band) of every buffer column from c0 - 1 to c1 (inclusive). */ -function crestRows(p: BakeParams, c0: number, c1: number): Float64Array { - const out = new Float64Array(c1 - c0 + 2); - const amp = p.spec.relief * p.viewH; - const lift = p.spec.base * p.viewH; - for (let c = c0 - 1; c <= c1; c += 1) { - const top = Math.min( - p.bandH, - lift + amp * layerProfile(p.spec, (p.px0 + c) / p.period, p.horizonView) - ); - out[c - c0 + 1] = p.bandH - top; - } - return out; -} - -/** - * Paint columns [c0, c1) of the chunk into `out` (RGBA, `p.cols` wide, `p.rows` tall, zeroed). One - * call is a slice of a chunk, so a caller can keep each task short. Seams are exact: a column's pixels - * depend only on its world pixel, never on where the slice or chunk begins. - */ -export function bakeSlice( - out: Uint8ClampedArray, - p: BakeParams, - paint: LayerPaint, - c0: number, - c1: number -): void { - const { spec } = p; - const crest = crestRows(p, c0, c1); - const faceH = 0.45 * p.viewH; - const rim = 2.2 * p.scale; - const glow = 9 * p.scale; - const { base, haze, warm, contrast, sun, shift, mistK } = paint; - for (let c = c0; c < c1; c += 1) { - const cy = crest[c - c0 + 1]; - const slope = (crest[c - c0 + 2] - crest[c - c0]) * -0.5; // rows up per column - const lit = faceLight(slope, sun); - const steep = 0.45 + 0.55 * clamp01(Math.abs(slope) * 0.8); - const gl = gullyAt(spec, (p.px0 + c) / p.scale) * steep; - const y0 = Math.max(0, Math.floor(cy)); - for (let y = y0; y < p.rows; y += 1) { - const d = y + 0.5 - cy; - const dn = clamp01(d / faceH); - const cover = clamp01(y + 1 - cy); - const gully = spec.gully * gl * smoothstep(0, 0.2, dn); - // Shade the ground colour by the sun; the lit warm light fades down the face and in the gullies. - // Volume from the depth below the crest: the face darkens toward its foot (before the mist lifts it - // toward the haze), and the sun catches its top. A few multiplies per pixel, in the bake only. - const foot = 1 - 0.4 * contrast * smoothstep(0.05, 0.9, dn); - const top = 1 - smoothstep(0, 0.3, dn); - const shade = (0.7 + 0.3 * lit * contrast + 0.3 * (1 - contrast)) * (1 - 0.5 * gully) * foot; - const warmK = - 0.22 * contrast * lit * lit * (1 - 0.7 * dn) * (1 - 0.6 * gully) + - 0.04 * contrast * lit * top; - // A hard 2 px lip on the crest and a soft glow under it. - const rimK = - (clamp01(1 - d / rim) * 0.4 + (d < glow * 5 ? Math.exp(-d / glow) * 0.08 : 0)) * - contrast * - (0.3 + 0.7 * lit); - const mist = Math.min(0.9, spec.mist * mistK) * smoothstep(0, 1, dn); - const o = (y * p.cols + c) * 4; - for (let i = 0; i < 3; i += 1) { - let v = base[i] * shade + warm[i] * (warmK + rimK); - v += (haze[i] - v) * mist; - out[o + i] = shift - ? ENCODE[ - Math.min( - ENCODE_STEPS, - ((DECODE[v >= 255 ? 255 : v <= 0 ? 0 : Math.round(v)] * shift.scale + - shift.add[i]) * - ENCODE_STEPS) | - 0 - ) - ] - : v; - } - out[o + 3] = cover * 255; - } - } -} diff --git a/src/app/features/scene/ridge/ridgeWorld.ts b/src/app/features/scene/ridge/ridgeWorld.ts deleted file mode 100644 index c6c745c3..00000000 --- a/src/app/features/scene/ridge/ridgeWorld.ts +++ /dev/null @@ -1,236 +0,0 @@ -// Every number of the ridge scene, and the pure functions that turn them into silhouettes. No DOM. -// A ridge is a function of world-x (t, in viewport widths): ridged multifractal noise, domain-warped, -// one function for every layer with the parameters below. Nothing in it repeats. -import { horizonShape } from './horizon'; -import { valueNoise } from './noise'; -import type { Srgb, SkyColours } from './skyColour'; - -export interface LayerSpec { - /** 0 farthest. Also the noise row, so layers never share a profile. */ - index: number; - /** Lattice cells per viewport width for the first octave; each octave multiplies it by LACUNARITY. */ - baseCells: number; - /** Peak-to-valley height of the silhouette, as a fraction of the viewport height. */ - relief: number; - /** 0 rounded hills .. 1 sharp crags: how tightly each octave is folded at its crest. */ - crag: number; - /** Ridge top at its lowest point, fraction of the viewport height up from the bottom. */ - base: number; - /** 0 = the layer is the horizon haze, 1 = the nearest ground colour. */ - depth: number; - /** Seconds for the layer to drift one viewport width. Farther layers are slower. */ - seconds: number; - /** Octaves of the ridged multifractal; the bake cost is linear in it. */ - octaves: number; - /** Domain warp, in cells of the first octave. */ - warp: number; - /** 0..1 depth of the erosion streaks down the face. */ - gully: number; - /** Width of one gully, CSS px. */ - gullyPx: number; - /** 0..1 how far the foot of the face dissolves into the valley mist. */ - mist: number; - /** - * The layer is the real horizon of the viewpoint (`horizon.ts`), not noise: world-x is compass azimuth across the viewport - * (`HorizonView`) and it does not drift, so it stays under the sun it is lit by. Its `relief` is the ring's own range. - */ - horizon?: boolean; -} - -/** Where the camera looks and how wide it sees, to read world-x as an azimuth: the sky's own view (`skyDome.ts viewFor`). */ -export interface HorizonView { - /** Compass azimuth of the viewport's centre, degrees clockwise from north. */ - azimuthDeg: number; - hfovDeg: number; -} - -/** The static horizon layer's track sits this many viewport widths left of the screen, so the camera's sway never shows its edge. */ -export const HORIZON_TRACK_SHIFT = 0.06; - -/** Four layers: one function, four parameter rows. */ -export const LAYERS: readonly LayerSpec[] = [ - { - index: 0, - baseCells: 2.2, - relief: 0.16, - crag: 0.85, - base: 0.3, - depth: 0.12, - seconds: Infinity, - octaves: 5, - warp: 0.6, - gully: 0.3, - gullyPx: 16, - mist: 0.35, - horizon: true, - }, - { - index: 1, - baseCells: 3.0, - relief: 0.2, - crag: 0.7, - base: 0.26, - depth: 0.38, - seconds: 300, - octaves: 5, - warp: 0.55, - gully: 0.5, - gullyPx: 20, - mist: 0.3, - }, - { - index: 2, - baseCells: 3.8, - relief: 0.16, - crag: 0.5, - base: 0.17, - depth: 0.66, - seconds: 210, - octaves: 5, - warp: 0.5, - gully: 0.6, - gullyPx: 24, - mist: 0.22, - }, - { - index: 3, - baseCells: 4.6, - relief: 0.12, - crag: 0.3, - base: 0.08, - depth: 1, - seconds: 150, - octaves: 4, - warp: 0.45, - gully: 0.7, - gullyPx: 30, - mist: 0.16, - }, -]; - -/** Not an integer power of two, so no octave's lattice lines up with another's. */ -export const LACUNARITY = 2.07; -/** Each octave is weighted by the previous octave's folded signal, times this, clamped to 1. */ -export const WEIGHT_GAIN = 2; -const AMP_GAIN = 0.5; -/** Calibration: the weighted sum's typical top is about 1 / this. */ -const PEAK_NORM = 1.25; - -/** Silhouette height in [0, 1] at world-x `t` (viewport widths); defined for every real t. */ -export function profile(spec: LayerSpec, t: number): number { - const row = spec.index * 101; - const wt = - t + (spec.warp * (2 * valueNoise(t * spec.baseCells * 0.7, row + 97) - 1)) / spec.baseCells; - const e = 0.03 + (1 - spec.crag) * 0.4; - const top = Math.sqrt(1 + e * e); - let sum = 0; - let norm = 0; - let amp = 1; - let f = spec.baseCells; - let w = 1; - for (let k = 0; k < spec.octaves; k += 1) { - const v = 2 * valueNoise(wt * f, row + k * 13) - 1; - // Fold: 1 at the zero crossing of the noise, 0 at its extremes; `e` rounds the crease. - let sig = 1 - Math.sqrt(v * v + e * e) / top; - sig *= sig; - sig *= w; - w = Math.min(1, sig * WEIGHT_GAIN); - sum += sig * amp; - norm += amp; - amp *= AMP_GAIN; - f *= LACUNARITY; - } - // A soft swell under the folds, so the valleys between sharp crests are not flat floors. - const swell = valueNoise(wt * spec.baseCells * 0.6, row + 211); - return Math.min(1, 0.85 * (sum / norm) * PEAK_NORM + 0.15 * swell); -} - -/** - * Silhouette height in [0, 1] of a layer at world-x `t` (viewport widths). The horizon layer reads the baked horizon at the azimuth `t` - * is under `view`; every other layer, or a horizon layer with no view, is the noise `profile`. - */ -export function layerProfile(spec: LayerSpec, t: number, view?: HorizonView): number { - if (!spec.horizon || !view) return profile(spec, t); - return horizonShape(view.azimuthDeg + (t - HORIZON_TRACK_SHIFT - 0.5) * view.hfovDeg); -} - -/** Erosion streak strength in [0, 1] at world-x `wxCss` (CSS px): a folded noise at gully width. */ -export function gullyAt(spec: LayerSpec, wxCss: number): number { - const g = 1 - Math.abs(2 * valueNoise(wxCss / spec.gullyPx, spec.index * 131 + 5) - 1); - return g * g; -} - -/** The distance haze the far layers dissolve into: between the mid sky and the horizon, not the horizon glow itself. */ -export function hazeColour(sky: SkyColours): Srgb { - const m = (a: number, b: number) => Math.round(a + (b - a) * 0.4); - return [ - m(sky.mid[0], sky.horizon[0]), - m(sky.mid[1], sky.horizon[1]), - m(sky.mid[2], sky.horizon[2]), - ]; -} - -/** - * Aerial perspective, applied once at bake time. A layer at distance d (0 nearest, 1 farthest) is seen - * through Beer-Lambert transmittance T = exp(-extinction * d): it shows T of its own colour and 1 - T of - * the haze, then loses `desaturate * (1 - T)` of its chroma, is softened by up to `blurPx` (canvas - * pixels at scale 1) and takes a faint warm in-scatter of at most `scatter` on the sun side. - */ -export const AERIAL = { extinction: 1.6, desaturate: 0.5, blurPx: 2, scatter: 0.16 }; - -/** Distance of a layer from the viewer, 0 (nearest) .. 1 (farthest). */ -export const layerDistance = (spec: LayerSpec): number => 1 - spec.depth; - -export const transmittance = (spec: LayerSpec): number => - Math.exp(-AERIAL.extinction * layerDistance(spec)); - -/** Layer colour as seen: its own ground colour thinned by the haze between it and the eye. */ -export function layerColour(spec: LayerSpec, sky: SkyColours): Srgb { - const h = hazeColour(sky); - const t = transmittance(spec); - const seen = (i: number) => sky.ground[i] * t + h[i] * (1 - t); - const luma = 0.2126 * seen(0) + 0.7152 * seen(1) + 0.0722 * seen(2); - const keep = 1 - AERIAL.desaturate * (1 - t); - const out = (i: number) => Math.round(luma + (seen(i) - luma) * keep); - return [out(0), out(1), out(2)]; -} - -/** Edge softening for a layer, in canvas pixels at scale 1; 0 for the nearest. */ -export const edgeBlur = (spec: LayerSpec): number => AERIAL.blurPx * (1 - transmittance(spec)); - -/** - * Alpha of the warm sun-side in-scatter at world-x `t` (viewport widths). Zero when the sky has no - * sun; grows with distance. The lobe is the product of two cosines with incommensurate wavelengths - * (1.9 and 1.9 * golden ratio), so it is not periodic; its peaks are where the sun's azimuth puts them. - */ -export function scatterAlpha(spec: LayerSpec, sky: SkyColours, t: number): number { - if (sky.sunAzimuth === undefined) return 0; - const a = 0.5 + 0.5 * Math.cos(2 * Math.PI * (t / 1.9 - sky.sunAzimuth)); - const b = 0.75 + 0.25 * Math.cos((2 * Math.PI * t) / (1.9 * 1.618034)); - return AERIAL.scatter * (1 - transmittance(spec)) * a * a * b; -} - -/** Chunk width as a multiple of the viewport width: room for the yaw sway on top of the viewport. */ -export const CHUNK_OVER = 1.2; - -/** - * Integer pixel sizes for a viewport. `period` is one viewport width, the unit of world-x; a chunk - * is `chunk` pixels of world, `height` the band a layer is painted in. - */ -export function layerSize(cssW: number, cssH: number, scale: number) { - const period = Math.round(cssW * scale); - const band = Math.round(cssH * scale * 0.6); - return { period, chunk: Math.round(period * CHUNK_OVER), height: band }; -} - -/** Ridge-top y (canvas pixels, from the top of the layer's band) at world-x `t` (viewport widths). */ -export function ridgeY( - spec: LayerSpec, - t: number, - bandH: number, - viewH: number, - view?: HorizonView -): number { - const topFromBottom = spec.base * viewH + spec.relief * viewH * layerProfile(spec, t, view); - return bandH - Math.min(bandH, topFromBottom); -} diff --git a/src/app/features/scene/ridge/skyColour.ts b/src/app/features/scene/ridge/skyColour.ts index e2898a0b..259fb2da 100644 --- a/src/app/features/scene/ridge/skyColour.ts +++ b/src/app/features/scene/ridge/skyColour.ts @@ -1,10 +1,8 @@ // The one place the sky's colours come from. Void's `src/sky/sun.js` (`light({ time, lat, lon, // cloud_cover, precipitation })`, PR #20) is the intended source; until it lands this returns a -// fixed twilight: lavender zenith, rose mid-sky, orange horizon. These are the raw stops: the scene draws them -// shaped into the dusk band of ../skyBand.ts (`ridgeSkyFor`, skyForState.ts), whose floor the link of Noonday Sky needs. Replace the body, keep the signature: the scene calls it once, at startup, -// and bakes the result. +// fixed twilight: lavender zenith, rose mid-sky, orange horizon. Replace the body, keep the signature: the scene calls it once, at startup, +// and paints the result. -import type { SkyBand } from '../skyBand'; import type { PhysicalSky } from './physicalSky'; export type Srgb = readonly [number, number, number]; @@ -14,14 +12,8 @@ export interface SkyColours { top: Srgb; /** Mid-sky band. */ mid: Srgb; - /** Colour at the horizon, which the far ridges fade into. */ + /** Colour at the horizon. */ horizon: Srgb; - /** Nearest ridge: the ground colour the farther layers mix away from. */ - ground: Srgb; - /** Where the sun sits across one drift period, 0..1; the layers pick up a faint warm in-scatter there. Omit for none. */ - sunAzimuth?: number; - /** The state's luminance band (skyBand.ts): the layers are shaped into it as the sky is, so the theme ink clears 4.5:1 on a ridge as on bare sky. Omit for none. */ - band?: SkyBand; /** The physical sky this palette was read from; when present the host canvas is painted from it, not from the three stops. */ physical?: PhysicalSky; } @@ -31,7 +23,5 @@ export function skyColours(_now: Date = new Date()): SkyColours { top: [170, 145, 220], mid: [225, 130, 165], horizon: [240, 150, 80], - ground: [7, 17, 26], - sunAzimuth: 0.3, }; } diff --git a/src/app/features/scene/ridge/skyDome.ts b/src/app/features/scene/ridge/skyDome.ts index 41da66b8..0edb3e5f 100644 --- a/src/app/features/scene/ridge/skyDome.ts +++ b/src/app/features/scene/ridge/skyDome.ts @@ -2,29 +2,13 @@ // LUT (`earthAtmosphere.ts`), and nothing else; one lookup per texel, no march. The result is linear HDR // radiance per unit of sun irradiance (a `Float32Array`); `toneMap.ts` makes it pixels. import type { Atmosphere } from './earthAtmosphere'; -import type { SunSample } from './vienna'; +import type { SunSample } from './sunAt'; +import type { Camera } from './view'; import { cloudAmount, cloudRadiance } from './clouds'; const RAD = Math.PI / 180; /** The sun's angular radius in radians (Hillaire's/Bruneton's `sun_angular_radius`). */ export const SUN_RADIUS = 0.004675; -/** Vertical field of view of the camera, degrees, and where the horizon sits down the image: the ridge scene's sky stops. */ -export const VFOV_DEG = 50; -export const HORIZON_AT = 0.78; - -export interface DomeView { - /** Compass azimuth the camera faces, degrees clockwise from north. */ - azimuthDeg: number; - /** Width over height of the viewport. */ - aspect: number; -} - -/** Where the camera looks: toward the sun's side while it is up, so the sun sits right of centre; south in the dark. */ -export const viewFor = (sun: SunSample, aspect: number): DomeView => ({ - azimuthDeg: sun.elevation > -6 ? sun.azimuth - 24 : 180, - aspect, -}); - export interface Dome { w: number; h: number; @@ -46,18 +30,12 @@ export const domeSize = (cssW: number, cssH: number): { w: number; h: number } = export function renderDome( atm: Atmosphere, sun: SunSample, - view: DomeView, + camera: Camera, w: number, h: number, cover = 0 ): Dome { const hdr = new Float32Array(w * h * 3); - const tanHalf = Math.tan((VFOV_DEG * RAD) / 2); - const fa = view.azimuthDeg * RAD; - const fx = Math.sin(fa); - const fy = Math.cos(fa); - const rx = Math.cos(fa); - const ry = -Math.sin(fa); const sunAz = sun.azimuth * RAD; const sunEl = sun.elevation * RAD; const sz = Math.sin(sunEl); @@ -72,22 +50,19 @@ export function renderDome( } let logSum = 0; for (let j = 0; j < h; j += 1) { - const v = (HORIZON_AT - (j + 0.5) / h) * 2 * tanHalf; + const el = (camera.horizonAt - (j + 0.5) / h) * camera.vfovDeg * RAD; + const vz = Math.sin(el); + const ground = Math.cos(el); for (let i = 0; i < w; i += 1) { - const u = ((i + 0.5) / w - 0.5) * view.aspect * 2 * tanHalf; - const dx = fx + rx * u; - const dy = fy + ry * u; - const dz = v; - const n = Math.hypot(dx, dy, dz); - const vz = dz / n; - const cosFromSun = Math.cos(Math.atan2(dx, dy) - sunAz); + const az = (camera.azimuthDeg + ((i + 0.5) / w - 0.5) * camera.hfovDeg) * RAD; + const cosFromSun = Math.cos(az - sunAz); atm.radiance(vz, cosFromSun, rgb); let r = rgb[0]; let g = rgb[1]; let b = rgb[2]; let lum = 0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]; if (cover > 0) { - const c = cloudAmount(dx / n, dy / n, vz, cover); + const c = cloudAmount(ground * Math.sin(az), ground * Math.cos(az), vz, cover); lum += (0.2126 * cloud[0] + 0.7152 * cloud[1] + 0.0722 * cloud[2] - lum) * c; r += (cloud[0] - r) * c; g += (cloud[1] - g) * c; @@ -103,20 +78,11 @@ export function renderDome( return { w, h, hdr, meanLuma: Math.exp(logSum / (w * h)) }; } -/** Where the sun is on the image, as fractions of its width and height (y down), or null when it is behind the camera or below the horizon. */ -export function sunOnScreen(sun: SunSample, view: DomeView): { x: number; y: number } | null { +/** Where the sun is on the image (the camera's angle-linear mapping, `view.ts`), as fractions of its width and height (y down), or null when it is behind the camera or below the horizon. */ +export function sunOnScreen(sun: SunSample, camera: Camera): { x: number; y: number } | null { if (sun.elevation < -0.3) return null; - const tanHalf = Math.tan((VFOV_DEG * RAD) / 2); - const fa = view.azimuthDeg * RAD; - const az = sun.azimuth * RAD; - const el = sun.elevation * RAD; - const sx = Math.cos(el) * Math.sin(az); - const sy = Math.cos(el) * Math.cos(az); - const along = sx * Math.sin(fa) + sy * Math.cos(fa); - if (along <= 0.05) return null; - const u = (sx * Math.cos(fa) - sy * Math.sin(fa)) / along; - const v = Math.sin(el) / along; - const x = u / (view.aspect * 2 * tanHalf) + 0.5; - const y = HORIZON_AT - v / (2 * tanHalf); + const dAz = ((sun.azimuth - camera.azimuthDeg + 540) % 360) - 180; + const x = 0.5 + dAz / camera.hfovDeg; + const y = camera.horizonAt - sun.elevation / camera.vfovDeg; return x < -0.05 || x > 1.05 || y < -0.05 || y > 1.05 ? null : { x, y }; } diff --git a/src/app/features/scene/ridge/sunAt.test.ts b/src/app/features/scene/ridge/sunAt.test.ts new file mode 100644 index 00000000..f9d2e586 --- /dev/null +++ b/src/app/features/scene/ridge/sunAt.test.ts @@ -0,0 +1,74 @@ +import { describe, expect, it } from 'vitest'; +import { solarNoon, STATE_ELEVATION, sunAt, sunForState } from './sunAt'; +import { FALLBACK_VIEW } from './view'; + +const P = FALLBACK_VIEW.place; + +const at = (iso: string) => new Date(iso); + +describe('the sun over Vienna', () => { + it('the Vienna place reproduces the sun the old Vienna constant gave, exactly, at three dates', () => { + // Values taken from the old constant's sunPosition before it was replaced. + const pinned: [string, number, number][] = [ + ['2026-03-20T06:30:00Z', 14.339283830037077, 106.82531633377323], + ['2026-06-21T10:40:00Z', 65.0288142821217, 171.0604046707017], + ['2026-12-21T15:20:00Z', -3.19313392852625, 237.64629073006313], + ]; + for (const [iso, el, az] of pinned) { + const s = sunAt(P, at(iso)); + expect(s.elevation).toBe(el); + expect(s.azimuth).toBe(az); + } + }); + + it('stands at 90 - lat + declination at solar noon: the solstices and equinox', () => { + const june = sunAt(P, solarNoon(P, at('2026-06-21T12:00:00Z'))); + expect(june.elevation).toBeCloseTo(90 - P.lat + 23.44, 0); + const december = sunAt(P, solarNoon(P, at('2026-12-21T12:00:00Z'))); + expect(december.elevation).toBeCloseTo(90 - P.lat - 23.44, 0); + const march = sunAt(P, solarNoon(P, at('2026-03-20T12:00:00Z'))); + expect(march.elevation).toBeCloseTo(90 - P.lat, 0); + }); + + it('is due south at solar noon, east in the morning and west in the afternoon', () => { + const noon = solarNoon(P, at('2026-09-23T12:00:00Z')); + expect(Math.abs(sunAt(P, noon).azimuth - 180)).toBeLessThan(2); // solarNoon is found to 5 minutes, which is 1.25 degrees of azimuth + expect(sunAt(P, new Date(noon.getTime() - 3 * 3600_000)).azimuth).toBeLessThan(150); + expect(sunAt(P, new Date(noon.getTime() + 3 * 3600_000)).azimuth).toBeGreaterThan(210); + }); + + it('solar noon at 16.35 E falls near 10:40 UTC in mid November', () => { + // 16.3534 E is 65.4 minutes ahead of Greenwich; the equation of time in mid November is +15 minutes (sun early): 12:00 - 65.5 - 15 = 10:40 UTC. + const n = solarNoon(P, at('2026-11-11T12:00:00Z')); + const minutes = n.getUTCHours() * 60 + n.getUTCMinutes(); + expect(minutes).toBeGreaterThan(10 * 60 + 30); + expect(minutes).toBeLessThan(10 * 60 + 50); + }); + + it('has a short day in December and a long one in June: published 8 h 4 min and 16 h 0 min with refraction, which adds about 6 minutes each end the ephemeris leaves out', () => { + const daylight = (day: string) => { + let n = 0; + for (let m = 0; m < 24 * 60; m += 1) + if (sunAt(P, new Date(Date.parse(day) + m * 60_000)).elevation > 0) n += 1; + return n; + }; + expect(Math.abs(daylight('2026-12-21T00:00:00Z') - (8 * 60 + 4))).toBeLessThan(15); + expect(Math.abs(daylight('2026-06-21T00:00:00Z') - (16 * 60 + 0))).toBeLessThan(15); + }); + + it('sunForState: the real sun when it is in the state, else a moment of today that is', () => { + const noon = solarNoon(P, at('2026-11-11T12:00:00Z')); + expect(sunForState(P, 'day', noon).time).toEqual(noon); + const midnight = new Date(noon.getTime() + 12 * 3600_000); + for (const state of ['day', 'dusk', 'night'] as const) { + for (const now of [noon, midnight, at('2026-11-11T15:30:00Z')]) { + const s = sunForState(P, state, now); + const [lo, hi] = STATE_ELEVATION[state]; + expect(s.elevation).toBeGreaterThanOrEqual(lo - 0.01); + expect(s.elevation).toBeLessThanOrEqual(hi + 0.01); + } + } + expect(sunForState(P, 'dusk', noon).elevation).toBeCloseTo(0, 1); + expect(sunForState(P, 'dusk', noon).azimuth).toBeGreaterThan(180); // sets in the west half + }); +}); diff --git a/src/app/features/scene/ridge/vienna.ts b/src/app/features/scene/ridge/sunAt.ts similarity index 64% rename from src/app/features/scene/ridge/vienna.ts rename to src/app/features/scene/ridge/sunAt.ts index f21082e5..bc995be6 100644 --- a/src/app/features/scene/ridge/vienna.ts +++ b/src/app/features/scene/ridge/sunAt.ts @@ -1,11 +1,10 @@ -// The sun over the server's viewpoint in Vienna (48.1929826 N, 16.3534237 E, 183 m: Meta's location, the Copernicus DSM height there) at a real moment: one ephemeris, `sunPosition` of src/sky/sun.js (the +// The sun over a Place (`view.ts`) at a real moment: one ephemeris, `sunPosition` of src/sky/sun.js (the // low-precision NOAA/Meeus series, a hundredth of a degree for 1900..2100; no refraction), and the choice of a moment for each // fixed sky state. The ridge sky is the physical atmosphere (`earthAtmosphere.ts`) lit from this sun. import { sunPosition } from '../../../../sky/sun.js'; import { DAY_FROM } from '../skyState'; import type { FixedSkyState } from '../skyBand'; - -export const VIENNA = { lat: 48.1929826, lon: 16.3534237, altitudeKm: 0.183 } as const; +import type { Place } from './view'; export interface SunSample { /** Degrees above the horizon, no refraction. */ @@ -16,8 +15,8 @@ export interface SunSample { time: Date; } -export function viennaSun(time: Date): SunSample { - const { elevation, azimuth } = sunPosition(time, VIENNA.lat, VIENNA.lon) as { +export function sunAt(place: Place, time: Date): SunSample { + const { elevation, azimuth } = sunPosition(time, place.lat, place.lon) as { elevation: number; azimuth: number; }; @@ -36,13 +35,13 @@ export const STATE_ELEVATION: Record = const startOfUtcDay = (t: Date): number => Math.floor(t.getTime() / (24 * 60 * MIN)) * 24 * 60 * MIN; -/** The moment of the day (UTC day of `t`, every 5 minutes) the sun is highest over Vienna: solar noon to the step. */ -export function solarNoon(t: Date): Date { +/** The moment of the day (UTC day of `t`, every 5 minutes) the sun is highest over the place: solar noon to the step. */ +export function solarNoon(place: Place, t: Date): Date { const d0 = startOfUtcDay(t); let best = d0; let bestEl = -90; for (let m = 0; m < 24 * 60; m += 5) { - const el = viennaSun(new Date(d0 + m * MIN)).elevation; + const el = sunAt(place, new Date(d0 + m * MIN)).elevation; if (el > bestEl) { bestEl = el; best = d0 + m * MIN; @@ -52,24 +51,24 @@ export function solarNoon(t: Date): Date { } /** - * The sun a state draws. The real sun over Vienna now when it is in the state's range (so 'auto' is the real sky); otherwise the + * The sun a state draws. The real sun over the place now when it is in the state's range (so 'auto' is the real sky); otherwise the * sun of today at a moment that is: noon for Day, the evening sunset for Dusk, the opposite of noon for Night. A picker that * forces Day at night shows a noon sky, as a person looking at a noon photograph would. */ -export function sunForState(state: FixedSkyState, now: Date): SunSample { - const real = viennaSun(now); +export function sunForState(place: Place, state: FixedSkyState, now: Date): SunSample { + const real = sunAt(place, now); const [lo, hi] = STATE_ELEVATION[state]; if (real.elevation >= lo && real.elevation <= hi) return real; - const noon = solarNoon(now); - if (state === 'day') return viennaSun(noon); - if (state === 'night') return viennaSun(new Date(noon.getTime() + 12 * 60 * MIN)); + const noon = solarNoon(place, now); + if (state === 'day') return sunAt(place, noon); + if (state === 'night') return sunAt(place, new Date(noon.getTime() + 12 * 60 * MIN)); // Dusk: bisect the evening crossing of the horizon between noon and the opposite moment. let a = noon.getTime(); let b = noon.getTime() + 12 * 60 * MIN; for (let i = 0; i < 30; i += 1) { const m = (a + b) / 2; - if (viennaSun(new Date(m)).elevation > 0) a = m; + if (sunAt(place, new Date(m)).elevation > 0) a = m; else b = m; } - return viennaSun(new Date((a + b) / 2)); + return sunAt(place, new Date((a + b) / 2)); } diff --git a/src/app/features/scene/ridge/toneMap.ts b/src/app/features/scene/ridge/toneMap.ts index 44bc9dbe..945c6a43 100644 --- a/src/app/features/scene/ridge/toneMap.ts +++ b/src/app/features/scene/ridge/toneMap.ts @@ -75,6 +75,9 @@ export const BUDGET: Record = { night: { floor: 0, ceiling: 0.047 - MARGIN, key: 0.03, min: 8, max: 3000 }, }; +/** The luma one 8-bit code moves at the day floor (about 0.0037): a lift step smaller than this can leave the encoded luma where it was, so the floor search never steps less. */ +const CODE_STEP = 0.0045; + /** The display transform of a sky: exposure, then ACES, then a black lift (veiling glare) in display-linear. */ export interface Display { exposure: number; @@ -157,7 +160,7 @@ export function fitDisplay(state: FixedSkyState, hdr: Float32Array, meanLuma: nu lift = (b.floor - r.lo) / (1 - r.lo); let probe = range({ exposure, lift }); for (let k = 0; k < 6 && probe.lo < b.floor; k += 1) { - lift += (b.floor - probe.lo) * 1.05; + lift += Math.max((b.floor - probe.lo) * 1.05, CODE_STEP); probe = range({ exposure, lift }); } r = probe; diff --git a/src/app/features/scene/ridge/vienna.test.ts b/src/app/features/scene/ridge/vienna.test.ts deleted file mode 100644 index 4f26303c..00000000 --- a/src/app/features/scene/ridge/vienna.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { solarNoon, STATE_ELEVATION, sunForState, VIENNA, viennaSun } from './vienna'; - -const at = (iso: string) => new Date(iso); - -describe('the sun over Vienna', () => { - it('stands at 90 - lat + declination at solar noon: the solstices and equinox', () => { - const june = viennaSun(solarNoon(at('2026-06-21T12:00:00Z'))); - expect(june.elevation).toBeCloseTo(90 - VIENNA.lat + 23.44, 0); - const december = viennaSun(solarNoon(at('2026-12-21T12:00:00Z'))); - expect(december.elevation).toBeCloseTo(90 - VIENNA.lat - 23.44, 0); - const march = viennaSun(solarNoon(at('2026-03-20T12:00:00Z'))); - expect(march.elevation).toBeCloseTo(90 - VIENNA.lat, 0); - }); - - it('is due south at solar noon, east in the morning and west in the afternoon', () => { - const noon = solarNoon(at('2026-09-23T12:00:00Z')); - expect(Math.abs(viennaSun(noon).azimuth - 180)).toBeLessThan(2); // solarNoon is found to 5 minutes, which is 1.25 degrees of azimuth - expect(viennaSun(new Date(noon.getTime() - 3 * 3600_000)).azimuth).toBeLessThan(150); - expect(viennaSun(new Date(noon.getTime() + 3 * 3600_000)).azimuth).toBeGreaterThan(210); - }); - - it('solar noon at 16.35 E falls near 10:40 UTC in mid November', () => { - // 16.3534 E is 65.4 minutes ahead of Greenwich; the equation of time in mid November is +15 minutes (sun early): 12:00 - 65.5 - 15 = 10:40 UTC. - const n = solarNoon(at('2026-11-11T12:00:00Z')); - const minutes = n.getUTCHours() * 60 + n.getUTCMinutes(); - expect(minutes).toBeGreaterThan(10 * 60 + 30); - expect(minutes).toBeLessThan(10 * 60 + 50); - }); - - it('has a short day in December and a long one in June: published 8 h 4 min and 16 h 0 min with refraction, which adds about 6 minutes each end the ephemeris leaves out', () => { - const daylight = (day: string) => { - let n = 0; - for (let m = 0; m < 24 * 60; m += 1) - if (viennaSun(new Date(Date.parse(day) + m * 60_000)).elevation > 0) n += 1; - return n; - }; - expect(Math.abs(daylight('2026-12-21T00:00:00Z') - (8 * 60 + 4))).toBeLessThan(15); - expect(Math.abs(daylight('2026-06-21T00:00:00Z') - (16 * 60 + 0))).toBeLessThan(15); - }); - - it('sunForState: the real sun when it is in the state, else a moment of today that is', () => { - const noon = solarNoon(at('2026-11-11T12:00:00Z')); - expect(sunForState('day', noon).time).toEqual(noon); - const midnight = new Date(noon.getTime() + 12 * 3600_000); - for (const state of ['day', 'dusk', 'night'] as const) { - for (const now of [noon, midnight, at('2026-11-11T15:30:00Z')]) { - const s = sunForState(state, now); - const [lo, hi] = STATE_ELEVATION[state]; - expect(s.elevation).toBeGreaterThanOrEqual(lo - 0.01); - expect(s.elevation).toBeLessThanOrEqual(hi + 0.01); - } - } - expect(sunForState('dusk', noon).elevation).toBeCloseTo(0, 1); - expect(sunForState('dusk', noon).azimuth).toBeGreaterThan(180); // sets in the west half - }); -}); diff --git a/src/app/features/scene/ridge/viennaHorizon.json b/src/app/features/scene/ridge/viennaHorizon.json deleted file mode 100644 index adbc289a..00000000 --- a/src/app/features/scene/ridge/viennaHorizon.json +++ /dev/null @@ -1,306 +0,0 @@ -{ - "viewpoint": { "lat": 48.1929826, "lon": 16.3534237, "groundM": 183.3 }, - "stepDeg": 0.5, - "radiusKm": 60.0, - "minKm": 1.0, - "curvature": "drop d^2/2R*(1-0.13), R=6371000 m", - "source": { - "dataset": "Copernicus DEM GLO-30 (COP-DEM_GLO-30-DGED), a DSM, EGM2008 heights, 1 arc-second grid", - "tiles": [ - "N47_00_E015_00", - "N47_00_E016_00", - "N47_00_E017_00", - "N48_00_E015_00", - "N48_00_E016_00", - "N48_00_E017_00", - "N49_00_E015_00", - "N49_00_E016_00", - "N49_00_E017_00" - ], - "tileBytesEach": "about 42-44 MB (Cloud Optimized GeoTIFF); nine tiles, about 380 MB, read once, not committed", - "url": "https://copernicus-dem-30m.s3.amazonaws.com/ (AWS Open Data, eu-central-1, no account)", - "licence": "Copernicus DEM licence: free of charge for any use incl. commercial, attribution required, no warranty (https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model, Licencing)", - "attribution": "Contains modified Copernicus data: DEM \u00a9 DLR e.V. 2010-2014 and \u00a9 Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved.", - "bakedBy": "scripts/bake-horizon.py" - }, - "elevationDeg": [ - 1.608, 1.522, 1.467, 1.452, 1.433, 1.426, 1.497, 1.6, 1.597, 1.564, 1.532, 1.495, 1.467, 1.544, - 1.62, 1.655, 1.707, 1.775, 1.803, 1.683, 1.532, 1.394, 1.263, 1.297, 1.358, 1.412, 1.433, 1.339, - 1.264, 1.269, 1.195, 1.142, 1.13, 1.22, 1.401, 1.368, 1.326, 1.294, 1.378, 1.46, 1.488, 1.516, - 1.549, 1.598, 1.647, 1.698, 1.769, 1.816, 1.801, 1.783, 1.695, 1.619, 1.586, 1.547, 1.442, - 1.335, 1.282, 1.286, 1.335, 1.421, 1.449, 1.437, 1.313, 1.268, 1.164, 1.14, 1.098, 1.06, 0.984, - 0.938, 0.91, 0.877, 0.884, 0.872, 0.943, 0.974, 0.919, 0.873, 0.861, 0.839, 0.731, 0.673, 0.56, - 0.494, 0.527, 0.601, 0.566, 0.584, 0.579, 0.643, 0.666, 0.741, 0.851, 0.711, 0.703, 0.573, 0.54, - 0.488, 0.433, 0.452, 0.467, 0.483, 0.475, 0.517, 0.419, 0.428, 0.457, 0.489, 0.522, 0.482, 0.5, - 0.527, 0.528, 0.471, 0.458, 0.487, 0.521, 0.578, 0.553, 0.419, 0.301, 0.324, 0.425, 0.468, - 0.512, 0.558, 0.575, 0.521, 0.477, 0.444, 0.372, 0.297, 0.365, 0.446, 0.486, 0.523, 0.532, - 0.516, 0.516, 0.531, 0.52, 0.546, 0.565, 0.535, 0.527, 0.508, 0.516, 0.37, 0.359, 0.33, 0.375, - 0.454, 0.546, 0.496, 0.449, 0.425, 0.447, 0.398, 0.388, 0.439, 0.476, 0.496, 0.517, 0.541, - 0.494, 0.439, 0.383, 0.411, 0.502, 0.621, 0.578, 0.548, 0.568, 0.642, 0.713, 0.708, 0.654, - 0.704, 0.741, 0.709, 0.677, 0.661, 0.66, 0.666, 0.662, 0.651, 0.699, 0.727, 0.746, 0.809, 0.788, - 0.799, 0.793, 0.702, 0.734, 0.79, 0.754, 0.704, 0.616, 0.598, 0.708, 0.719, 0.706, 0.704, 0.726, - 0.826, 0.849, 0.85, 0.813, 0.853, 0.926, 0.971, 0.918, 1.003, 1.0, 0.927, 0.985, 1.031, 1.043, - 1.067, 1.13, 1.022, 1.02, 1.043, 1.101, 1.144, 1.099, 1.082, 1.064, 1.2, 1.238, 1.16, 1.084, - 1.202, 1.326, 1.39, 1.429, 1.405, 1.332, 1.358, 1.361, 1.357, 1.354, 1.335, 1.319, 1.376, 1.309, - 1.289, 1.257, 1.283, 1.237, 1.296, 1.353, 1.259, 1.314, 1.236, 1.307, 1.344, 1.36, 1.251, 1.292, - 1.308, 1.26, 1.288, 1.365, 1.391, 1.414, 1.32, 1.299, 1.35, 1.288, 1.361, 1.303, 1.268, 1.29, - 1.305, 1.326, 1.344, 1.328, 1.32, 1.358, 1.375, 1.443, 1.477, 1.492, 1.525, 1.513, 1.422, 1.314, - 1.294, 1.337, 1.414, 1.343, 1.397, 1.431, 1.409, 1.378, 1.423, 1.438, 1.343, 1.257, 1.208, - 1.209, 1.233, 1.251, 1.267, 1.274, 1.248, 1.254, 1.297, 1.34, 1.359, 1.34, 1.199, 1.162, 1.255, - 1.292, 1.29, 1.24, 1.222, 1.24, 1.271, 1.264, 1.317, 1.256, 1.26, 1.321, 1.301, 1.266, 1.268, - 1.308, 1.357, 1.474, 1.419, 1.438, 1.393, 1.354, 1.343, 1.354, 1.333, 1.321, 1.359, 1.437, 1.47, - 1.395, 1.413, 1.446, 1.466, 1.434, 1.446, 1.458, 1.419, 1.522, 1.502, 1.506, 1.512, 1.528, - 1.526, 1.485, 1.427, 1.508, 1.5, 1.48, 1.534, 1.514, 1.449, 1.449, 1.386, 1.368, 1.388, 1.404, - 1.374, 1.374, 1.352, 1.3, 1.347, 1.332, 1.265, 1.235, 1.39, 1.285, 1.226, 1.233, 1.235, 1.211, - 1.164, 1.183, 1.217, 1.143, 1.128, 1.117, 1.112, 1.086, 1.071, 1.118, 1.103, 1.002, 0.99, 0.995, - 1.025, 0.998, 1.024, 0.971, 1.045, 1.09, 1.11, 1.108, 1.081, 1.171, 1.308, 1.446, 1.482, 1.484, - 1.494, 1.469, 1.472, 1.479, 1.493, 1.467, 1.388, 1.293, 1.203, 1.104, 1.145, 1.12, 1.028, 1.004, - 0.982, 0.968, 0.933, 0.97, 0.986, 1.035, 1.12, 1.227, 1.281, 1.316, 1.312, 1.273, 1.187, 1.205, - 1.197, 1.199, 1.176, 1.177, 1.142, 1.19, 1.377, 1.369, 1.322, 1.295, 1.385, 1.493, 1.576, 1.679, - 1.769, 1.622, 1.711, 1.641, 1.517, 1.582, 1.525, 1.39, 1.389, 1.343, 1.331, 1.369, 1.343, 1.257, - 1.212, 1.134, 1.039, 1.03, 1.075, 1.027, 1.059, 1.112, 1.132, 1.14, 1.16, 1.167, 1.178, 1.179, - 1.192, 1.214, 1.245, 1.289, 1.286, 1.279, 1.259, 1.256, 1.202, 1.138, 1.159, 1.116, 1.12, 1.102, - 0.999, 1.042, 1.051, 1.09, 1.143, 1.244, 1.269, 1.296, 1.353, 1.412, 1.579, 1.686, 1.814, 1.857, - 1.773, 1.731, 1.748, 1.742, 1.668, 1.594, 1.628, 1.692, 1.76, 1.822, 1.863, 1.904, 1.895, 1.849, - 1.786, 1.778, 1.731, 1.666, 1.633, 1.561, 1.526, 1.662, 1.747, 1.75, 1.704, 1.631, 1.563, 1.473, - 1.501, 1.488, 1.464, 1.441, 1.386, 1.31, 1.298, 1.293, 1.306, 1.371, 1.42, 1.416, 1.417, 1.418, - 1.409, 1.399, 1.408, 1.431, 1.434, 1.437, 1.509, 1.544, 1.58, 1.674, 1.528, 1.534, 1.517, 1.497, - 1.525, 1.546, 1.562, 1.58, 1.55, 1.634, 1.614, 1.66, 1.643, 1.663, 1.68, 1.829, 1.99, 2.058, - 2.014, 1.911, 2.025, 2.023, 2.036, 2.031, 2.009, 2.012, 2.02, 2.109, 2.107, 2.12, 2.171, 2.179, - 2.125, 2.084, 2.09, 2.129, 2.183, 2.16, 2.172, 2.239, 2.237, 2.218, 2.217, 2.137, 2.169, 2.203, - 2.233, 2.262, 2.272, 2.21, 2.133, 1.955, 1.909, 1.97, 2.138, 2.187, 2.229, 2.278, 2.191, 2.167, - 2.213, 2.327, 2.409, 2.31, 2.242, 2.205, 2.152, 2.154, 2.258, 2.217, 2.126, 2.054, 1.97, 1.942, - 2.022, 1.894, 1.886, 1.921, 1.897, 1.936, 1.964, 1.978, 1.961, 1.927, 1.879, 1.904, 1.96, 1.9, - 1.922, 2.023, 2.061, 2.115, 1.99, 1.805, 1.736, 1.776, 1.841, 1.863, 1.934, 1.942, 1.962, 2.043, - 2.082, 2.082, 2.092, 2.062, 1.957, 1.794, 1.821, 1.913, 2.009, 2.066, 2.105, 2.036, 1.964, - 1.984, 2.005, 2.036, 2.072, 2.094, 2.022, 2.153, 2.177, 2.146, 2.125, 2.061, 2.004, 1.955, - 1.902, 1.84, 1.767, 1.7, 1.696, 1.718, 1.725, 1.709, 1.745, 1.805, 1.836, 1.939, 2.053, 2.14, - 2.139, 2.142, 2.035, 1.902, 1.779, 1.667, 1.564, 1.57, 1.581, 1.628, 1.693, 1.739, 1.738, 1.738, - 1.675 - ], - "distanceKm": [ - 1.0, 1.0, 1.06, 1.06, 1.06, 1.06, 1.06, 1.03, 1.0, 1.0, 1.0, 1.0, 1.09, 1.09, 1.0, 1.09, 1.09, - 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.09, 1.09, 1.09, 1.09, - 1.0, 1.0, 1.0, 1.0, 1.03, 1.06, 1.06, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.03, 1.03, 1.03, 1.03, 1.03, 1.0, 1.0, 1.06, 1.06, 1.06, 1.06, 1.06, 1.12, 1.0, 1.0, 1.24, - 1.24, 1.21, 1.21, 1.3, 1.3, 1.27, 1.3, 1.33, 1.33, 1.33, 1.33, 1.27, 1.24, 1.27, 1.27, 1.27, - 1.03, 1.03, 1.42, 1.84, 1.84, 1.81, 1.03, 1.72, 1.63, 1.63, 1.63, 1.33, 1.33, 1.06, 1.06, 1.72, - 1.72, 1.69, 1.69, 1.69, 1.69, 1.69, 1.81, 1.81, 1.75, 1.51, 1.75, 1.75, 1.75, 1.75, 1.75, 1.72, - 1.72, 1.72, 1.72, 1.72, 1.72, 1.72, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.42, - 1.42, 1.24, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.3, 1.27, 1.03, 1.36, 1.36, 1.36, 1.36, 1.36, 1.45, - 1.45, 1.09, 1.12, 1.12, 1.54, 1.57, 1.48, 1.48, 1.48, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.18, 1.18, 1.21, 1.21, 1.21, 1.12, 1.12, 1.12, 1.12, 1.12, 1.15, 1.15, 1.15, 1.15, 1.18, - 1.15, 1.15, 1.24, 1.24, 1.27, 1.27, 1.24, 1.24, 1.24, 1.27, 1.27, 1.27, 1.9, 1.9, 1.93, 1.93, - 1.93, 1.99, 1.99, 1.99, 1.99, 1.9, 2.02, 2.02, 2.02, 2.05, 2.02, 1.99, 1.99, 1.99, 1.48, 1.21, - 1.21, 1.57, 1.69, 1.69, 1.66, 1.39, 1.39, 1.39, 1.54, 1.6, 1.54, 1.54, 1.54, 1.48, 1.45, 1.21, - 1.21, 1.21, 1.27, 1.39, 1.39, 1.36, 1.39, 1.39, 1.39, 1.33, 1.33, 1.33, 1.33, 1.33, 1.48, 1.45, - 1.39, 1.39, 1.18, 1.18, 1.18, 1.48, 1.48, 1.27, 1.24, 1.27, 1.36, 1.36, 1.39, 1.33, 1.3, 1.3, - 1.3, 1.3, 1.3, 1.3, 1.33, 1.0, 1.42, 1.42, 1.27, 1.27, 1.27, 1.27, 1.03, 1.03, 1.03, 1.03, 1.03, - 1.03, 1.03, 1.03, 1.06, 1.06, 1.03, 1.03, 1.03, 1.36, 1.06, 1.06, 1.06, 1.06, 1.09, 1.09, 1.18, - 1.21, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.09, 1.15, 1.15, 1.36, 1.36, 1.36, - 1.36, 1.33, 1.33, 3.13, 1.21, 1.21, 3.34, 3.31, 2.83, 2.65, 2.65, 1.3, 2.29, 1.3, 1.15, 1.15, - 1.15, 2.29, 2.68, 2.41, 2.23, 2.23, 2.2, 1.12, 2.23, 2.17, 2.17, 2.17, 1.84, 2.74, 1.87, 1.87, - 2.95, 2.2, 2.17, 2.17, 2.35, 2.35, 2.23, 2.23, 2.11, 2.14, 2.08, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, - 2.41, 2.41, 2.38, 2.41, 2.41, 2.44, 2.44, 2.44, 1.99, 2.08, 2.08, 2.08, 2.08, 2.05, 2.05, 2.5, - 2.38, 2.47, 2.29, 2.23, 2.17, 1.69, 1.69, 2.38, 2.47, 2.38, 2.17, 2.71, 2.71, 2.2, 2.47, 2.41, - 2.41, 2.32, 2.38, 2.38, 2.08, 2.5, 2.11, 2.11, 1.75, 1.75, 1.48, 1.81, 1.81, 1.78, 1.78, 1.87, - 17.2, 17.2, 17.26, 17.32, 17.44, 18.1, 17.56, 17.5, 17.38, 17.5, 17.62, 17.68, 17.74, 17.8, - 14.86, 14.92, 14.98, 2.98, 26.38, 26.38, 26.38, 26.62, 26.14, 26.02, 26.02, 26.38, 26.26, 26.38, - 26.38, 26.26, 26.26, 26.26, 14.98, 14.98, 14.98, 14.44, 13.12, 13.18, 13.66, 13.72, 13.72, - 13.84, 13.84, 13.84, 13.72, 12.52, 12.58, 12.58, 12.28, 12.22, 12.28, 16.54, 14.02, 15.04, - 16.18, 16.24, 17.08, 17.26, 17.44, 17.5, 17.44, 17.32, 17.44, 17.02, 13.96, 14.14, 9.22, 9.16, - 9.1, 9.22, 9.28, 9.28, 9.22, 9.16, 9.16, 9.34, 8.68, 8.68, 8.62, 8.74, 8.86, 8.92, 8.86, 8.92, - 8.92, 11.74, 14.08, 11.98, 12.22, 12.04, 34.3, 10.36, 10.06, 9.64, 9.58, 9.58, 9.7, 9.7, 10.18, - 10.18, 10.18, 10.24, 10.06, 10.48, 9.94, 9.82, 9.76, 9.7, 8.02, 8.14, 8.14, 8.14, 8.08, 8.56, - 8.38, 8.38, 8.32, 8.38, 8.02, 8.02, 8.02, 8.14, 8.2, 7.9, 7.9, 7.84, 7.78, 7.66, 7.72, 7.72, - 7.72, 1.0, 1.0, 1.0, 1.0, 1.0, 1.45, 1.21, 1.21, 1.3, 1.15, 1.15, 1.15, 1.15, 1.15, 1.15, 1.15, - 1.33, 1.33, 1.33, 1.48, 1.3, 1.3, 1.3, 1.42, 1.09, 2.02, 1.81, 2.59, 2.59, 2.53, 1.21, 1.75, - 1.69, 1.66, 2.38, 1.57, 1.57, 1.57, 7.18, 7.18, 7.24, 7.24, 7.18, 7.12, 1.0, 1.0, 1.0, 1.0, 1.0, - 7.36, 7.3, 7.3, 7.18, 7.24, 7.06, 7.06, 7.06, 7.06, 7.0, 7.12, 7.12, 7.12, 7.0, 7.0, 7.0, 7.0, - 7.24, 7.24, 7.06, 7.18, 7.0, 7.06, 7.0, 7.0, 6.94, 7.0, 7.24, 1.03, 1.03, 1.03, 1.0, 1.0, 1.0, - 1.06, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.27, 1.27, 1.27, - 1.24, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.09, 1.09, 1.06, 1.06, 1.06, 1.06, 1.06, - 1.09, 1.09, 9.64, 9.58, 9.64, 9.64, 9.7, 9.7, 9.7, 9.7, 9.7, 9.64, 9.64, 9.64, 9.7, 1.03, 1.03, - 1.03, 1.03, 1.03, 1.03, 9.52, 1.0, 1.0, 9.4, 8.68, 8.68, 8.68, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 9.52, 9.46, 9.46, 9.46, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 - ], - "peakHeightM": [ - 211.4, 209.9, 210.5, 210.2, 209.9, 209.7, 211.0, 212.1, 211.2, 210.6, 210.1, 209.4, 211.3, - 212.7, 211.6, 214.8, 215.8, 217.1, 217.7, 215.4, 212.5, 209.9, 207.4, 208.7, 209.9, 211.0, - 211.4, 209.5, 208.1, 207.5, 206.1, 205.1, 204.8, 204.6, 207.8, 207.2, 206.5, 206.6, 208.8, - 210.4, 210.1, 210.6, 211.2, 212.1, 213.0, 213.9, 214.2, 215.0, 214.8, 214.5, 212.9, 212.5, - 211.9, 211.2, 209.3, 207.3, 205.7, 205.8, 208.1, 209.6, 210.2, 209.9, 207.6, 208.2, 203.7, - 203.2, 207.2, 206.3, 204.2, 203.2, 204.0, 203.3, 203.0, 203.2, 205.3, 206.0, 204.7, 203.7, - 202.5, 201.5, 199.6, 198.3, 195.8, 192.2, 192.8, 198.3, 201.7, 202.3, 201.8, 194.9, 203.5, - 204.5, 207.7, 203.7, 199.7, 196.7, 193.3, 192.4, 196.5, 197.1, 197.2, 197.7, 197.5, 198.7, - 195.8, 197.0, 197.9, 198.4, 197.2, 198.2, 198.7, 199.6, 199.6, 197.9, 197.2, 198.1, 199.1, - 200.8, 200.1, 196.0, 192.5, 189.0, 190.8, 191.5, 192.3, 193.1, 193.4, 192.4, 191.7, 191.1, - 189.8, 190.8, 192.5, 193.0, 194.4, 195.2, 195.5, 195.1, 195.1, 195.4, 195.2, 195.5, 193.5, - 196.1, 195.9, 195.5, 195.6, 192.2, 192.5, 191.8, 190.5, 192.2, 194.0, 196.8, 195.7, 194.4, - 195.0, 193.7, 190.1, 191.0, 191.7, 192.0, 192.4, 192.8, 192.0, 191.0, 190.0, 191.8, 193.7, - 196.5, 195.6, 194.9, 194.5, 195.9, 197.3, 197.2, 196.1, 197.5, 198.2, 197.6, 196.9, 197.0, - 196.6, 196.7, 197.7, 197.5, 198.9, 199.5, 199.5, 200.9, 200.4, 201.1, 201.0, 198.9, 207.9, - 209.7, 208.9, 207.2, 204.3, 204.3, 208.1, 208.5, 208.1, 206.9, 209.1, 212.7, 213.5, 214.0, - 212.2, 213.2, 215.7, 217.3, 207.1, 204.6, 204.5, 208.8, 212.5, 213.9, 213.7, 209.3, 210.8, - 208.2, 210.9, 212.6, 213.0, 214.2, 213.0, 211.4, 210.3, 208.7, 209.5, 207.9, 207.4, 212.6, - 215.6, 216.4, 218.1, 217.5, 215.7, 214.9, 215.0, 214.9, 214.8, 214.4, 217.5, 218.3, 215.2, - 214.7, 209.3, 209.8, 208.9, 216.9, 218.4, 211.3, 211.8, 210.8, 214.4, 215.3, 216.4, 212.4, - 212.7, 213.1, 212.0, 212.6, 214.4, 215.0, 216.2, 206.4, 215.6, 216.9, 211.9, 213.6, 212.3, - 211.5, 206.5, 206.8, 207.2, 207.5, 207.2, 207.1, 207.8, 208.1, 210.0, 210.7, 210.2, 210.8, - 210.5, 217.2, 207.7, 207.3, 208.1, 209.5, 208.9, 209.9, 212.8, 213.1, 209.6, 210.4, 210.7, - 208.9, 207.3, 206.3, 206.4, 206.8, 207.2, 207.5, 208.9, 208.4, 213.2, 214.2, 215.2, 215.7, - 214.5, 211.2, 247.4, 209.9, 210.7, 259.2, 255.7, 244.2, 241.1, 242.6, 212.1, 236.3, 211.9, - 208.7, 209.9, 209.5, 234.2, 243.1, 238.7, 236.5, 241.0, 238.1, 211.5, 237.8, 234.9, 234.5, - 234.9, 226.3, 246.9, 227.9, 230.4, 259.6, 237.2, 237.1, 238.4, 243.8, 242.5, 239.9, 240.4, - 235.8, 240.4, 238.1, 241.4, 241.7, 242.3, 242.2, 240.6, 238.4, 247.1, 246.8, 245.2, 248.2, - 247.4, 245.4, 245.4, 242.7, 231.1, 234.0, 234.5, 233.4, 233.5, 231.9, 230.1, 242.5, 239.0, - 238.2, 233.0, 237.7, 232.3, 219.6, 219.9, 235.0, 235.9, 232.0, 228.4, 241.4, 237.8, 226.9, - 231.8, 230.5, 229.4, 227.0, 230.1, 229.5, 219.9, 226.9, 220.2, 221.3, 214.0, 214.8, 208.5, - 216.5, 217.9, 218.0, 217.9, 218.8, 554.9, 596.3, 639.3, 651.8, 655.9, 677.7, 654.8, 653.7, - 652.5, 660.3, 655.7, 632.9, 605.1, 578.6, 484.8, 496.7, 491.5, 237.4, 693.3, 682.9, 676.3, - 665.1, 672.6, 677.4, 699.5, 746.5, 793.0, 820.8, 836.9, 831.7, 813.8, 774.3, 513.7, 511.5, - 512.0, 493.9, 464.6, 457.9, 479.7, 526.0, 524.0, 515.7, 509.3, 531.0, 553.8, 538.4, 562.8, - 582.7, 541.4, 558.5, 545.3, 640.0, 583.8, 599.0, 593.8, 595.2, 603.6, 604.7, 620.9, 614.5, - 586.6, 570.3, 549.1, 511.8, 447.5, 462.2, 354.3, 358.3, 365.5, 371.3, 373.8, 377.0, 376.8, - 377.3, 377.6, 383.6, 372.4, 377.1, 382.3, 384.6, 386.4, 384.8, 382.9, 375.9, 365.9, 430.3, - 471.0, 427.2, 428.5, 403.2, 887.7, 380.7, 381.5, 382.0, 397.5, 401.8, 409.1, 418.8, 441.2, - 470.9, 490.1, 514.8, 516.4, 515.3, 490.4, 489.5, 486.6, 472.2, 410.8, 419.1, 428.3, 437.9, - 444.8, 466.6, 466.6, 465.3, 456.6, 449.4, 436.6, 430.0, 421.0, 419.8, 411.4, 398.0, 416.8, - 426.6, 425.1, 415.1, 407.2, 398.0, 385.9, 209.6, 209.3, 208.9, 208.5, 207.5, 216.6, 210.8, - 210.7, 213.0, 210.9, 211.9, 211.8, 211.8, 211.8, 211.6, 211.4, 216.1, 216.6, 216.7, 220.6, - 217.6, 218.4, 219.2, 224.9, 212.4, 237.7, 231.4, 251.4, 252.7, 252.0, 216.4, 231.7, 229.2, - 230.8, 250.7, 228.9, 228.5, 229.0, 397.4, 416.0, 438.4, 447.0, 439.3, 424.3, 218.7, 218.7, - 218.9, 218.8, 218.4, 445.6, 444.4, 455.8, 451.0, 454.8, 454.3, 455.3, 448.6, 443.6, 442.1, - 451.4, 458.2, 455.3, 452.1, 460.3, 460.0, 457.7, 467.1, 457.0, 454.1, 463.0, 459.5, 465.5, - 464.3, 456.8, 445.0, 425.5, 428.2, 218.8, 221.8, 222.7, 222.3, 223.1, 221.6, 223.5, 222.0, - 224.0, 225.4, 223.7, 222.5, 221.8, 220.9, 222.1, 224.0, 223.2, 221.6, 220.3, 218.8, 226.4, - 228.2, 225.4, 224.2, 216.9, 216.5, 217.1, 217.6, 217.9, 217.6, 217.0, 216.1, 216.6, 220.6, - 219.5, 218.9, 220.8, 221.5, 222.5, 220.2, 217.7, 216.4, 488.4, 497.5, 503.2, 515.2, 518.5, - 522.0, 535.7, 542.3, 542.3, 541.8, 536.7, 518.9, 493.5, 216.1, 217.8, 219.5, 220.5, 221.2, - 220.0, 516.0, 218.0, 218.4, 523.4, 502.5, 505.8, 494.9, 220.9, 221.3, 220.8, 220.4, 219.3, - 218.3, 217.5, 216.5, 215.5, 214.2, 213.0, 212.9, 213.3, 213.5, 473.5, 477.6, 487.5, 492.6, - 217.2, 219.2, 220.7, 220.7, 220.7, 218.9, 216.5, 214.4, 212.5, 210.6, 210.7, 210.9, 211.8, - 212.9, 213.7, 213.7, 213.7, 212.6 - ], - "slopeEast": [ - 0.002, -0.001, 0.056, 0.043, 0.022, 0.002, 0.007, -0.005, 0.014, 0.012, 0.002, -0.013, 0.046, - 0.027, -0.083, -0.005, -0.017, -0.01, -0.007, -0.03, -0.051, -0.056, -0.058, -0.088, -0.109, - -0.099, -0.085, -0.079, -0.077, 0.008, 0.005, 0.006, -0.01, 0.062, 0.068, 0.071, 0.074, 0.084, - 0.019, -0.001, 0.023, 0.02, 0.021, 0.024, 0.025, 0.031, 0.054, 0.031, 0.003, -0.022, -0.034, - -0.054, -0.055, -0.049, -0.047, -0.045, -0.038, -0.041, -0.051, -0.054, -0.073, -0.086, -0.104, - -0.05, -0.085, -0.083, 0.125, 0.082, 0.049, 0.018, 0.064, 0.034, -0.013, -0.004, -0.06, -0.087, - -0.128, -0.166, -0.129, -0.038, -0.154, -0.158, -0.163, -0.116, -0.12, 0.088, 0.055, 0.048, - 0.095, 0.036, 0.154, 0.016, -0.009, -0.018, -0.079, -0.121, -0.161, -0.174, 0.003, 0.037, 0.108, - 0.103, 0.1, 0.106, 0.101, -0.064, -0.045, 0.013, 0.149, 0.083, 0.078, 0.071, 0.039, -0.062, - -0.065, -0.118, -0.105, -0.072, -0.045, -0.025, -0.001, -0.008, -0.007, -0.02, -0.037, -0.058, - -0.078, -0.075, -0.069, -0.063, -0.054, -0.008, 0.003, 0.123, 0.036, 0.015, -0.005, 0.017, - 0.049, 0.086, 0.068, 0.013, 0.032, -0.024, -0.01, 0.005, 0.009, -0.005, -0.004, 0.021, 0.062, - -0.012, -0.014, -0.013, -0.031, 0.02, -0.004, -0.021, -0.005, -0.018, -0.026, -0.032, -0.038, - -0.046, -0.055, -0.063, -0.067, -0.007, 0.009, -0.048, -0.051, -0.051, -0.004, -0.015, -0.025, - -0.018, 0.002, -0.002, 0.005, 0.013, 0.02, 0.049, 0.013, 0.002, -0.023, -0.009, -0.075, -0.065, - 0.018, 0.02, 0.024, -0.023, -0.022, -0.049, 0.01, 0.056, -0.003, -0.001, 0.008, -0.048, -0.05, - -0.03, -0.015, 0.002, -0.045, -0.077, -0.052, -0.113, -0.035, 0.052, 0.029, -0.006, -0.008, - 0.119, 0.111, 0.049, 0.019, -0.001, -0.008, 0.003, 0.025, 0.028, 0.004, -0.059, 0.008, 0.005, - -0.0, 0.055, 0.03, -0.044, -0.024, -0.002, -0.029, -0.015, -0.028, -0.04, -0.079, -0.084, - -0.073, 0.118, 0.104, 0.095, 0.098, 0.122, -0.042, 0.014, 0.108, 0.117, -0.077, -0.066, -0.052, - 0.006, 0.018, -0.026, -0.008, 0.016, -0.019, -0.02, 0.006, 0.033, 0.056, 0.035, 0.017, 0.002, - 0.011, 0.009, -0.015, 0.039, -0.016, -0.019, 0.073, 0.06, 0.028, 0.012, -0.052, -0.037, -0.027, - -0.026, -0.025, -0.027, -0.034, -0.033, -0.112, -0.098, -0.018, -0.005, 0.014, -0.002, -0.012, - -0.021, -0.041, -0.06, -0.073, -0.068, -0.007, 0.023, -0.002, 0.014, 0.031, 0.042, 0.045, 0.05, - 0.06, 0.075, 0.066, 0.054, 0.029, 0.03, -0.066, -0.045, -0.033, -0.035, 0.1, 0.072, 0.022, - -0.017, 0.002, 0.006, 0.105, 0.007, -0.015, 0.014, -0.019, -0.045, 0.021, -0.027, -0.032, - -0.043, 0.023, -0.048, 0.051, -0.072, -0.099, -0.013, 0.016, 0.062, 0.05, 0.066, 0.041, 0.022, - -0.031, -0.028, -0.003, 0.047, -0.019, -0.007, 0.014, -0.047, 0.019, -0.023, -0.023, 0.008, - -0.064, 0.049, -0.035, -0.026, 0.01, 0.043, 0.057, 0.094, -0.076, -0.07, 0.043, 0.029, 0.051, - 0.001, 0.036, 0.056, -0.016, -0.042, -0.015, -0.0, 0.037, 0.052, 0.089, 0.032, 0.021, 0.06, - -0.018, 0.018, 0.002, 0.036, 0.058, -0.043, 0.005, -0.0, -0.004, -0.084, -0.088, 0.055, -0.004, - 0.02, 0.027, 0.018, -0.003, -0.013, -0.01, -0.005, 0.032, 0.037, -0.085, -0.114, 0.016, -0.076, - -0.081, 0.043, 0.029, 0.014, -0.247, -0.334, -0.183, -0.03, -0.023, 0.027, 0.067, 0.018, -0.17, - 0.04, 0.076, 0.16, 0.142, 0.214, -0.239, -0.036, 0.236, 0.006, -0.075, -0.015, -0.134, 0.191, - -0.098, -0.235, -0.094, -0.348, -0.156, -0.126, 0.06, -0.008, 0.039, 0.184, 0.048, 0.037, 0.035, - -0.057, -0.06, 0.062, -0.295, -0.071, -0.175, 0.046, -0.045, -0.173, -0.173, -0.161, -0.148, - 0.042, -0.034, -0.145, 0.247, 0.002, -0.209, 0.028, -0.129, -0.037, 0.154, -0.069, -0.023, - 0.149, 0.119, -0.146, 0.175, 0.112, -0.005, -0.029, -0.11, -0.064, -0.06, -0.018, -0.04, 0.03, - -0.087, -0.043, -0.015, -0.031, -0.13, -0.068, -0.06, 0.001, -0.021, -0.0, -0.013, 0.032, 0.012, - -0.025, 0.013, 0.081, 0.008, -0.101, 0.006, -0.063, -0.072, -0.034, -0.109, -0.03, -0.058, - -0.068, -0.174, -0.1, -0.092, -0.088, -0.053, 0.072, 0.007, -0.043, -0.029, -0.004, -0.033, - -0.07, -0.071, -0.07, -0.077, -0.07, -0.021, -0.02, -0.061, -0.004, -0.114, -0.02, -0.023, - 0.032, 0.05, -0.037, -0.005, -0.02, -0.109, -0.063, 0.014, -0.015, -0.037, 0.007, 0.019, 0.035, - 0.051, 0.064, -0.018, -0.034, -0.025, 0.038, -0.074, -0.071, -0.068, -0.065, -0.061, -0.056, - -0.05, -0.038, -0.032, -0.02, 0.035, -0.023, -0.034, -0.042, -0.009, -0.053, -0.061, -0.048, - 0.032, 0.055, -0.052, 0.019, 0.04, -0.026, 0.007, -0.033, -0.04, -0.044, -0.047, 0.134, -0.002, - 0.095, 0.061, -0.082, -0.127, 0.039, 0.057, 0.077, 0.092, 0.081, 0.007, -0.041, 0.057, -0.038, - 0.02, 0.004, -0.126, -0.118, -0.042, -0.061, -0.009, -0.034, -0.028, -0.016, 0.066, -0.008, - -0.033, -0.062, -0.168, 0.054, 0.058, -0.007, 0.007, -0.054, -0.042, -0.257, -0.152, 0.009, - 0.029, 0.032, 0.036, -0.033, -0.046, -0.05, 0.018, -0.059, -0.065, -0.078, -0.093, -0.109, - -0.126, -0.136, -0.072, -0.057, -0.05, -0.039, -0.032, -0.029, -0.024, -0.055, -0.05, -0.057, - 0.019, 0.031, 0.057, 0.078, 0.091, 0.084, 0.071, 0.05, 0.033, 0.066, 0.024, -0.039, -0.043, - -0.062, -0.086, -0.078, -0.035, -0.041, 0.114, -0.004, 0.08, -0.043, 0.008, 0.035, 0.117, 0.075, - 0.091, -0.088, -0.074, -0.157, -0.187, 0.023, 0.023, 0.021, 0.021, 0.017, 0.002, -0.01, 0.054, - 0.037, 0.016, 0.058, -0.096, -0.292, 0.009, 0.007, -0.003, -0.011, -0.009, -0.005, -0.017, - -0.031, -0.04, -0.029, -0.019, 0.007, 0.036, 0.064, 0.06, 0.091, 0.084, 0.021, 0.044, 0.024, - 0.007, 0.007, 0.006, -0.001, -0.004, -0.011, -0.026, -0.037, -0.048, -0.06, -0.057, -0.054, - -0.051, -0.031, -0.014, -0.007 - ], - "slopeNorth": [ - -0.005, 0.005, -0.003, 0.002, -0.006, -0.016, -0.044, -0.027, -0.024, -0.026, -0.026, -0.026, - -0.05, -0.054, 0.02, -0.042, -0.033, -0.022, -0.009, 0.008, 0.025, 0.032, 0.037, 0.003, 0.01, - 0.01, 0.013, 0.017, 0.026, 0.059, 0.018, -0.02, -0.039, 0.024, 0.024, 0.008, -0.005, -0.003, - -0.06, -0.088, -0.024, -0.033, -0.037, -0.039, -0.046, -0.052, -0.026, -0.019, -0.023, -0.025, - -0.027, -0.106, -0.113, -0.118, -0.111, -0.103, -0.016, -0.016, -0.129, -0.122, -0.096, -0.075, - -0.046, -0.071, 0.056, 0.061, -0.108, -0.077, 0.028, 0.067, -0.029, -0.009, 0.048, -0.009, - -0.029, -0.018, 0.006, 0.025, 0.144, 0.19, 0.17, 0.167, 0.149, -0.078, -0.083, -0.0, -0.081, - -0.04, -0.001, -0.033, -0.082, -0.031, 0.061, 0.14, 0.078, 0.132, 0.104, 0.127, -0.011, -0.01, - 0.071, 0.129, 0.113, 0.103, 0.13, -0.038, -0.037, 0.044, 0.052, 0.016, 0.01, -0.01, -0.02, - -0.014, 0.06, 0.086, 0.082, 0.067, 0.049, 0.051, 0.058, -0.08, -0.095, -0.099, -0.098, -0.093, - -0.064, -0.024, 0.007, 0.03, 0.041, -0.085, -0.064, -0.021, -0.069, -0.063, -0.054, -0.027, - 0.013, 0.058, 0.082, 0.091, 0.065, 0.04, 0.085, 0.117, 0.139, 0.134, 0.059, 0.047, 0.008, 0.002, - 0.005, 0.01, 0.034, 0.039, 0.068, 0.077, -0.041, -0.017, -0.011, -0.017, -0.021, -0.021, -0.003, - 0.016, 0.034, -0.057, -0.046, -0.067, -0.062, -0.059, -0.032, -0.028, -0.023, -0.01, -0.01, - -0.033, -0.028, -0.004, 0.019, -0.01, 0.056, 0.067, -0.061, -0.049, -0.108, -0.079, -0.0, 0.018, - 0.024, 0.053, 0.08, 0.085, -0.008, 0.015, 0.016, 0.027, 0.048, -0.05, -0.038, -0.058, -0.086, - -0.001, -0.061, -0.038, -0.014, 0.027, 0.062, -0.036, -0.007, 0.046, -0.023, -0.001, 0.01, - -0.073, 0.053, 0.073, -0.02, 0.004, -0.001, -0.014, -0.069, -0.016, -0.041, 0.001, 0.021, - -0.017, -0.019, -0.115, -0.11, -0.083, -0.119, -0.097, -0.076, -0.101, -0.069, -0.054, -0.022, - -0.045, -0.028, -0.016, -0.008, 0.019, -0.037, 0.005, 0.007, 0.01, -0.092, -0.096, -0.079, - 0.074, 0.07, -0.076, -0.025, -0.075, -0.039, 0.003, -0.006, 0.013, -0.03, -0.064, -0.079, - -0.076, -0.056, -0.026, 0.042, -0.084, 0.038, 0.055, 0.002, 0.033, 0.01, -0.003, 0.001, -0.02, - -0.041, -0.057, -0.056, -0.053, -0.045, -0.037, 0.043, 0.037, -0.023, -0.013, -0.012, 0.063, - 0.029, 0.024, 0.012, -0.007, 0.01, 0.006, -0.057, 0.007, -0.017, 0.02, 0.061, 0.058, 0.039, - 0.021, 0.001, -0.02, -0.025, -0.024, 0.039, 0.052, 0.03, 0.03, 0.028, 0.035, 0.003, 0.005, - 0.027, -0.048, -0.059, 0.005, -0.037, -0.029, -0.058, -0.066, -0.009, -0.02, 0.014, -0.009, - -0.015, -0.01, -0.045, -0.036, -0.085, -0.017, 0.011, -0.052, 0.048, -0.025, -0.024, -0.035, - -0.031, -0.05, -0.058, -0.013, -0.05, -0.053, -0.058, -0.033, -0.017, 0.001, -0.025, -0.066, - -0.023, -0.014, -0.011, -0.059, -0.019, -0.009, 0.005, -0.007, -0.034, -0.051, 0.002, 0.036, - 0.0, 0.007, -0.022, -0.028, -0.046, -0.051, -0.018, -0.021, -0.013, 0.012, -0.005, -0.035, - -0.036, 0.011, -0.065, 0.025, 0.006, 0.018, -0.103, 0.005, -0.007, -0.025, -0.061, -0.044, - -0.049, -0.008, 0.004, -0.043, 0.022, -0.062, -0.019, -0.055, 0.001, -0.01, -0.057, -0.005, - -0.051, -0.064, -0.023, 0.029, -0.044, 0.079, 0.066, -0.049, -0.043, 0.043, 0.037, 0.009, -0.04, - -0.175, -0.046, -0.025, -0.055, -0.045, 0.01, -0.078, -0.036, -0.127, -0.126, -0.145, 0.102, - 0.094, -0.123, 0.055, -0.109, 0.133, -0.142, -0.009, -0.085, 0.067, 0.024, 0.056, -0.06, 0.156, - 0.025, -0.068, 0.018, -0.106, 0.077, 0.019, -0.02, -0.043, 0.021, -0.021, 0.053, -0.023, -0.091, - -0.044, 0.016, 0.174, 0.024, 0.172, 0.213, -0.05, -0.021, -0.051, -0.255, 0.041, 0.076, -0.168, - 0.031, -0.153, -0.058, -0.022, 0.063, -0.084, -0.122, -0.153, -0.157, -0.171, 0.014, 0.054, - 0.036, 0.084, 0.009, 0.019, 0.018, -0.012, 0.013, 0.008, 0.011, 0.061, 0.061, 0.057, -0.013, - -0.036, -0.024, -0.045, -0.046, -0.101, -0.156, -0.066, -0.239, -0.1, -0.077, -0.243, -0.08, - 0.073, 0.039, 0.179, 0.106, 0.005, 0.086, 0.044, 0.321, 0.232, 0.195, 0.145, -0.074, -0.069, - -0.057, 0.021, -0.1, -0.165, 0.063, 0.139, 0.12, 0.091, 0.134, 0.082, 0.064, -0.056, -0.118, - -0.146, -0.004, -0.123, -0.142, -0.092, -0.121, 0.172, 0.209, 0.083, -0.15, -0.088, -0.128, - -0.152, -0.196, 0.004, -0.017, -0.027, -0.037, -0.042, 0.021, 0.014, 0.009, 0.003, 0.082, 0.074, - 0.061, 0.048, 0.031, 0.013, -0.006, 0.081, 0.074, 0.055, -0.036, 0.041, 0.024, 0.006, -0.068, - -0.022, 0.073, 0.021, 0.055, 0.009, 0.022, 0.079, -0.019, 0.052, 0.08, 0.02, 0.073, 0.04, 0.01, - 0.224, 0.291, 0.218, -0.011, -0.137, -0.234, 0.091, 0.094, 0.095, 0.093, 0.062, 0.02, 0.061, - 0.003, 0.044, -0.063, 0.145, -0.012, -0.046, -0.011, 0.075, 0.117, 0.046, -0.033, 0.108, 0.084, - -0.011, -0.094, -0.024, -0.13, 0.075, 0.1, 0.124, -0.018, -0.058, -0.136, -0.149, -0.227, - -0.022, 0.105, 0.119, 0.113, 0.09, 0.076, 0.045, -0.045, 0.032, 0.029, 0.034, 0.051, 0.055, - 0.044, 0.028, -0.072, -0.095, -0.088, -0.06, -0.032, -0.005, 0.003, -0.016, -0.008, 0.039, - 0.085, 0.076, 0.061, 0.046, 0.035, 0.031, 0.022, 0.018, 0.014, 0.006, 0.014, 0.009, -0.002, - -0.002, 0.003, -0.003, -0.024, -0.018, 0.068, 0.212, 0.049, 0.187, 0.06, 0.024, 0.003, -0.084, - -0.173, 0.03, -0.138, -0.17, -0.157, 0.006, -0.007, -0.026, -0.034, -0.038, -0.045, 0.001, - -0.075, -0.067, 0.237, 0.215, 0.109, 0.055, -0.068, -0.066, -0.059, -0.054, -0.059, -0.062, - -0.065, -0.07, -0.072, -0.064, -0.054, -0.045, -0.035, -0.022, 0.059, 0.161, 0.071, 0.021, - -0.021, -0.027, -0.033, -0.039, -0.044, -0.038, -0.029, -0.034, -0.057, -0.078, -0.075, -0.071, - -0.076, -0.085, -0.083, -0.057, -0.03, -0.018 - ] -} diff --git a/src/app/features/scene/ridge/view.test.ts b/src/app/features/scene/ridge/view.test.ts new file mode 100644 index 00000000..08fd5552 --- /dev/null +++ b/src/app/features/scene/ridge/view.test.ts @@ -0,0 +1,60 @@ +import { describe, expect, it } from 'vitest'; +import { sunOnScreen } from './skyDome'; +import { DRIFT_FRAC, FALLBACK_VIEW, windowFor } from './view'; +import type { View } from './view'; + +const VIEWPORTS: [number, number][] = [ + [390, 844], + [1920, 1080], + [3440, 1440], +]; + +describe('windowFor', () => { + it.each(VIEWPORTS)('%i x %i: the planes cover the viewport, the camera sees only baked sky, the horizon is the plane\'s', (w, h) => { + const v = FALLBACK_VIEW; + const win = windowFor(v, w, h); + expect(win.driftPx).toBeGreaterThanOrEqual(0); + expect(win.plane.w - 2 * win.driftPx).toBeCloseTo(w, 6); + expect(win.plane.h).toBeLessThanOrEqual(h * 4); // sanity: scale is not runaway + // Angle seen never exceeds the baked window minus the drift margin on both sides. + expect(win.camera.hfovDeg).toBeLessThanOrEqual(v.windowDeg / (1 + 2 * DRIFT_FRAC) + 1e-9); + // The plane is anchored to the bottom; its horizon row lands at the camera's horizon fraction of the viewport. + const horizonY = h - win.plane.bottom - win.plane.h + win.plane.scale * v.horizonRow; + expect(Math.abs(horizonY - win.camera.horizonAt * h)).toBeLessThan(0.5); + expect(win.camera.azimuthDeg).toBe(v.lookAzDeg); + expect(win.camera.vfovDeg / win.camera.hfovDeg).toBeCloseTo(h / w, 9); // one scale on both axes + }); + + it('is shaped by the View alone: another window, plane and horizon give another camera', () => { + const wide: View = { ...FALLBACK_VIEW, lookAzDeg: 10, windowDeg: 144, planeW: 2560, horizonRow: 200 }; + const a = windowFor(FALLBACK_VIEW, 1920, 1080).camera; + const b = windowFor(wide, 1920, 1080).camera; + expect(b.azimuthDeg).toBe(10); + expect(b.horizonAt).not.toBeCloseTo(a.horizonAt, 2); + }); + + it('registration: a sun 10 degrees right of the look azimuth sits where the plane puts that azimuth', () => { + for (const [w, h] of VIEWPORTS) { + const v = FALLBACK_VIEW; + const win = windowFor(v, w, h); + const sun = { elevation: 12, azimuth: v.lookAzDeg + 10, time: new Date(0) }; + const at = sunOnScreen(sun, win.camera)!; + const planeX = w / 2 + 10 * v.pxPerDegH * win.plane.scale; // plane centred on lookAz + expect(Math.abs(at.x * w - planeX)).toBeLessThan(0.5); + // and its height above the ridge's horizon is 12 degrees of plane pixels + const planeY = win.camera.horizonAt * h - 12 * v.pxPerDegH * win.plane.scale; + expect(Math.abs(at.y * h - planeY)).toBeLessThan(0.5); + } + }); + + it('the sun is seen across north: azimuths wrap', () => { + const v: View = { ...FALLBACK_VIEW, lookAzDeg: 355 }; + const win = windowFor(v, 1920, 1080); + const at = sunOnScreen({ elevation: 10, azimuth: 5, time: new Date(0) }, win.camera)!; + expect(Math.abs(at.x * 1920 - (960 + 10 * v.pxPerDegH * win.plane.scale))).toBeLessThan(0.5); + }); + + it('the sun does not turn the camera: the same camera for any sun', () => { + expect(windowFor(FALLBACK_VIEW, 1280, 720).camera.azimuthDeg).toBe(FALLBACK_VIEW.lookAzDeg); + }); +}); diff --git a/src/app/features/scene/ridge/view.ts b/src/app/features/scene/ridge/view.ts new file mode 100644 index 00000000..fef44b36 --- /dev/null +++ b/src/app/features/scene/ridge/view.ts @@ -0,0 +1,83 @@ +// The one View: where the sky's camera stands and looks, and where the ridge planes sit against it. A baked place's manifest +// (`view` and `place`, manifest v1) is a View; a sky with no planes uses FALLBACK_VIEW. `windowFor` is the single owner of the +// registration between sky and ridge: one View and a viewport in, the sky Camera and the plane's placement out. Nothing else +// chooses a field of view, a horizon row or an azimuth. + +/** Where the observer stands. `id` names the baked place (it keys a rebuild); `altitudeKm` is the ground height, eye height excluded. */ +export interface Place { + id: string; + lat: number; + lon: number; + altitudeKm: number; +} + +/** The manifest's `view`: the baked window of the sky the planes cover. Angles are degrees, planes are in plane pixels. */ +export interface ManifestView { + /** Compass azimuth at the centre of the planes, degrees clockwise from north. */ + lookAzDeg: number; + /** Horizontal angle the planes span. */ + windowDeg: number; + planeW: number; + planeH: number; + pxPerDegH: number; + /** Row of the horizon in the plane, from its top. */ + horizonRow: number; +} + +export interface View extends ManifestView { + place: Place; +} + +/** + * The camera of the sky. Angle-linear, as the planes are (`pxPerDegH` is constant across a plane): a pixel's azimuth is + * `azimuthDeg + (x - 0.5) * hfovDeg` and its elevation is `(horizonAt - y) * vfovDeg`, x and y as fractions of the viewport. + */ +export interface Camera { + /** Compass azimuth at the centre column. */ + azimuthDeg: number; + hfovDeg: number; + vfovDeg: number; + /** Where the horizon sits down the viewport, as a fraction of its height (0 top). */ + horizonAt: number; +} + +/** The sky of a scene with no planes (a failed load): Vienna facing south-west, with the numbers of the six-key Vienna bake. */ +export const FALLBACK_VIEW: View = { + place: { id: 'vienna', lat: 48.1929826, lon: 16.3534237, altitudeKm: 0.183 }, + lookAzDeg: 214, + windowDeg: 72, + planeW: 1280, + planeH: 600, + pxPerDegH: 1280 / 72, + horizonRow: 314.5, +}; + +/** The share of the viewport height the plane's height is at least scaled to, and the slack each side of the viewport kept for drift. Authored, tunable by eye. */ +export const RIDGE_BAND_FRAC = 0.6; +export const DRIFT_FRAC = 0.05; + +export interface Window { + camera: Camera; + /** The planes in viewport pixels: scaled size, anchored to the viewport's bottom edge and centred on `lookAzDeg`. */ + plane: { scale: number; w: number; h: number; bottom: number }; + /** How far the plane may slide sideways from centre and still cover the viewport. */ + driftPx: number; +} + +export function windowFor(view: View, viewportW: number, viewportH: number): Window { + const scale = Math.max( + (RIDGE_BAND_FRAC * viewportH) / view.planeH, + (viewportW * (1 + 2 * DRIFT_FRAC)) / view.planeW + ); + const hfovDeg = viewportW / (scale * view.pxPerDegH); + return { + camera: { + azimuthDeg: view.lookAzDeg, + hfovDeg, + vfovDeg: (hfovDeg * viewportH) / viewportW, + horizonAt: (viewportH - scale * (view.planeH - view.horizonRow)) / viewportH, + }, + plane: { scale, w: scale * view.planeW, h: scale * view.planeH, bottom: 0 }, + driftPx: (scale * view.planeW - viewportW) / 2, + }; +} diff --git a/src/app/features/scene/ridge/weatherFeed.test.ts b/src/app/features/scene/ridge/weatherFeed.test.ts index 0f490cad..0163224d 100644 --- a/src/app/features/scene/ridge/weatherFeed.test.ts +++ b/src/app/features/scene/ridge/weatherFeed.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from 'vitest'; -import { viennaSun } from './vienna'; +import { sunAt } from './sunAt'; +import { FALLBACK_VIEW } from './view'; +import { ELSEWHERE_VIEW } from './manifest.fixture'; import { CLEAR_SKY, currentWeather, @@ -85,8 +87,8 @@ describe('weather from the file', () => { expect(weatherFromFile(file({ glow_wm2: 0, humidity_pct: 100 }), -20)).toBe(0.75); }); it('the 2026-11-10 midday fixture, GLOW 56-89 W/m2 under an overcast sky, is full cloud; the clear midday of 2026-10-15, 546-569, is none', () => { - const nov = viennaSun(new Date('2026-11-10T10:40:00Z')).elevation; - const oct = viennaSun(new Date('2026-10-15T10:50:00Z')).elevation; + const nov = sunAt(FALLBACK_VIEW.place, new Date('2026-11-10T10:40:00Z')).elevation; + const oct = sunAt(FALLBACK_VIEW.place, new Date('2026-10-15T10:50:00Z')).elevation; for (const g of [56, 72, 89]) expect(cloudFromGlow(g, nov)).toBeGreaterThan(0.95); for (const g of [546, 569]) expect(cloudFromGlow(g, oct)).toBe(0); expect(weatherFromFile(file({ glow_wm2: 72, sunshine_s_10min: 0 }), nov)).toBeGreaterThan(0.65); @@ -120,17 +122,18 @@ describe('weather from the file', () => { describe('the weather now', () => { it('uses the file while it is fresh', () => { - expect(currentWeather(file({ glow_wm2: 0, humidity_pct: 95 }), NOW)).toBeCloseTo(0.7, 2); + expect(currentWeather(file({ glow_wm2: 0, humidity_pct: 95 }), FALLBACK_VIEW.place, NOW)).toBeCloseTo(0.7, 2); }); it('falls back to a clear sky when the file was fetched more than 30 minutes ago', () => { const f = file({ humidity_pct: 100, fetched_at: '2026-11-11T10:19:00Z' }); expect(NOW.getTime() - Date.parse(f.fetched_at)).toBeGreaterThan(STALE_MS); - expect(currentWeather(f, NOW)).toBe(CLEAR_SKY); + expect(currentWeather(f, FALLBACK_VIEW.place, NOW)).toBe(CLEAR_SKY); }); it('the 30 minute mark itself is still fresh', () => { expect( currentWeather( file({ glow_wm2: 0, humidity_pct: 100, fetched_at: '2026-11-11T10:20:00Z' }), + FALLBACK_VIEW.place, NOW ) ).toBe(0.75); @@ -138,19 +141,34 @@ describe('the weather now', () => { it('falls back to a clear sky when the observation is more than 40 minutes old, though the file is fresh', () => { const f = file({ precip_mm_10min: 2, observed_at: '2026-11-11T10:09:00Z' }); expect(NOW.getTime() - Date.parse(f.observed_at)).toBeGreaterThan(OBSERVATION_STALE_MS); - expect(currentWeather(f, NOW)).toBe(CLEAR_SKY); + expect(currentWeather(f, FALLBACK_VIEW.place, NOW)).toBe(CLEAR_SKY); expect( - currentWeather(file({ precip_mm_10min: 2, observed_at: '2026-11-11T10:11:00Z' }), NOW) + currentWeather(file({ precip_mm_10min: 2, observed_at: '2026-11-11T10:11:00Z' }), FALLBACK_VIEW.place, NOW) ).toBeGreaterThan(0.8); }); it('falls back to a clear sky with no file, and with a fetch time from the future', () => { - expect(currentWeather(null, NOW)).toBe(CLEAR_SKY); + expect(currentWeather(null, FALLBACK_VIEW.place, NOW)).toBe(CLEAR_SKY); expect( - currentWeather(file({ precip_mm_10min: 2, fetched_at: '2026-11-12T10:40:00Z' }), NOW) + currentWeather(file({ precip_mm_10min: 2, fetched_at: '2026-11-12T10:40:00Z' }), FALLBACK_VIEW.place, NOW) ).toBe(CLEAR_SKY); }); }); +describe('the sun the weather is read against is the place it is given', () => { + it("sets radiation against the sun over that place: by day in Vienna it reads cloud, at the other side of the world, in the night, it reads the humidity", () => { + const f = file({ glow_wm2: 100, sunshine_s_10min: null, humidity_pct: 60 }); + const sunEl = (place: typeof FALLBACK_VIEW.place) => + sunAt(place, new Date(Date.parse(f.observed_at) - 5 * 60_000)).elevation; + expect(sunEl(FALLBACK_VIEW.place)).toBeGreaterThan(20); + expect(sunEl(ELSEWHERE_VIEW.place)).toBeLessThan(0); + const vienna = currentWeather(f, FALLBACK_VIEW.place, NOW); + const elsewhere = currentWeather(f, ELSEWHERE_VIEW.place, NOW); + expect(vienna).toBe(weatherFromFile(f, sunEl(FALLBACK_VIEW.place))); + expect(elsewhere).toBe(weatherFromFile(f, sunEl(ELSEWHERE_VIEW.place))); + expect(vienna).not.toBe(elsewhere); + }); +}); + describe('bad instrument values', () => { it('a negative sunshine is no reading, not full cloud', () => { expect(cloudEstimate(file({ glow_wm2: null, sunshine_s_10min: -5 }), 21)).toBeNull(); @@ -164,7 +182,7 @@ describe('bad instrument values', () => { sunshine_s_10min: null, humidity_pct: 50, }); - const at = (m: number) => currentWeather(f, new Date(Date.parse(f.observed_at) + m * 60_000)); + const at = (m: number) => currentWeather(f, FALLBACK_VIEW.place, new Date(Date.parse(f.observed_at) + m * 60_000)); expect(at(0)).toBe(at(29)); }); }); @@ -193,7 +211,7 @@ describe('reading weather.json', () => { sunshine_s_10min: null, glow_wm2: null, }); - expect(currentWeather(gap, new Date('2026-11-11T22:50:00Z'))).toBe(CLEAR_SKY); + expect(currentWeather(gap, FALLBACK_VIEW.place, new Date('2026-11-11T22:50:00Z'))).toBe(CLEAR_SKY); }); it("is not another station's file", () => { expect(parseWeatherFile({ ...file(), station: 11036 })).toBeNull(); diff --git a/src/app/features/scene/ridge/weatherFeed.ts b/src/app/features/scene/ridge/weatherFeed.ts index b2b4a7b0..7a99ff11 100644 --- a/src/app/features/scene/ridge/weatherFeed.ts +++ b/src/app/features/scene/ridge/weatherFeed.ts @@ -6,7 +6,8 @@ // 600 the direct beam was strong enough to burn the card); with the sun low or down it is a ramp of the humidity. A file that is // missing, unreadable, malformed or stale (below) is no observation, and no observation is a clear sky. import { WEATHER_CREDIT } from './credits'; -import { viennaSun } from './vienna'; +import { sunAt } from './sunAt'; +import type { Place } from './view'; /** Reader rule of docs/weather-feed.md: the file is stale 30 minutes after it was fetched or 40 after the observation it holds (the station reports every 10). */ export const STALE_MS = 30 * 60_000; @@ -104,8 +105,8 @@ export function weatherFromFile(f: WeatherFile, sunEl: number): number { return Math.max(0.7 * cloud, mist); } -/** The weather number now: the file's, or a clear sky when there is none or it is stale (see STALE_MS) or from the future. */ -export function currentWeather(f: WeatherFile | null, now: Date = new Date()): number { +/** The weather number now, its sun taken at `place` (the View's): the file's, or a clear sky when there is none or it is stale (see STALE_MS) or from the future. */ +export function currentWeather(f: WeatherFile | null, place: Place, now: Date = new Date()): number { if (!f) return CLEAR_SKY; const fetched = now.getTime() - Date.parse(f.fetched_at); const observed = now.getTime() - Date.parse(f.observed_at); @@ -119,7 +120,7 @@ export function currentWeather(f: WeatherFile | null, now: Date = new Date()): n ) return CLEAR_SKY; // GLOW and SO are means of the ten minutes ending at observed_at: the sun of their midpoint is the one to set them against. - return weatherFromFile(f, viennaSun(new Date(Date.parse(f.observed_at) - 5 * 60_000)).elevation); + return weatherFromFile(f, sunAt(place, new Date(Date.parse(f.observed_at) - 5 * 60_000)).elevation); } /** Fetch and parse `weather.json`; null on any failure. */ diff --git a/src/app/features/scene/skyForState.test.ts b/src/app/features/scene/skyForState.test.ts index a04ac173..a35f117f 100644 --- a/src/app/features/scene/skyForState.test.ts +++ b/src/app/features/scene/skyForState.test.ts @@ -1,8 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { FALLBACK_VIEW } from './ridge/view'; +import { ELSEWHERE_VIEW } from './ridge/manifest.fixture'; import { atStandardTime } from './standardTime.testkit'; import { baked } from '../../../sky/baked'; import { AA, luminance } from '../../../sky/skyTokens.js'; -import { skyColours } from './ridge/skyColour'; import { chooseSky, skyColour } from './terrain/terrainSky'; import { DUSK_SUN_ELEVATION, @@ -10,6 +11,7 @@ import { ridgeDrawn, ridgeSkyFor, ridgeSkyKey, + loadWeather, terrainDrawn, terrainSkyFor, } from './skyForState'; @@ -78,10 +80,9 @@ describe('the bands the text ink needs', () => { }); describe('ridgeSkyFor', () => { - it('carries the state band, which the layers are shaped into, and the physical sky of that state', () => { + it('carries the physical sky of the state', () => { for (const state of STATES) { - const sky = ridgeSkyFor(state, 0.3); - expect(sky.band).toEqual(SKY_BAND[state]); + const sky = ridgeSkyFor(state, FALLBACK_VIEW, 0.3); expect(sky.physical?.state).toBe(state); expect(sky.physical?.stops).toEqual({ top: sky.top, mid: sky.mid, horizon: sky.horizon }); } @@ -92,32 +93,42 @@ describe('ridgeSkyFor', () => { s.top, s.mid, s.horizon, - s.band, s.physical?.sun, ]; setSkyClock(() => atStandardTime(12, 0)); - expect(key(ridgeSkyFor('auto', 0.3))).toEqual(key(ridgeSkyFor('day', 0.3))); + expect(key(ridgeSkyFor('auto', FALLBACK_VIEW, 0.3))).toEqual(key(ridgeSkyFor('day', FALLBACK_VIEW, 0.3))); setSkyClock(() => atStandardTime(0, 0)); - expect(key(ridgeSkyFor('auto', 0.3))).toEqual(key(ridgeSkyFor('night', 0.3))); + expect(key(ridgeSkyFor('auto', FALLBACK_VIEW, 0.3))).toEqual(key(ridgeSkyFor('night', FALLBACK_VIEW, 0.3))); setSkyClock(() => atStandardTime(18, 10)); - expect(key(ridgeSkyFor('auto', 0.3))).toEqual(key(ridgeSkyFor('dusk', 0.3))); + expect(key(ridgeSkyFor('auto', FALLBACK_VIEW, 0.3))).toEqual(key(ridgeSkyFor('dusk', FALLBACK_VIEW, 0.3))); }); it("is lit from the real sun over Vienna: a forced state's sun is inside the state, the clear noon sky is blue", () => { - const day = ridgeSkyFor('day', 0); + const day = ridgeSkyFor('day', FALLBACK_VIEW, 0); expect(day.physical?.sun.elevation).toBeGreaterThanOrEqual(DAY_FROM); expect(day.top[2]).toBeGreaterThan(day.top[0]); - const dusk = ridgeSkyFor('dusk', 0); + const dusk = ridgeSkyFor('dusk', FALLBACK_VIEW, 0); expect(Math.abs(dusk.physical?.sun.elevation ?? 99)).toBeLessThanOrEqual(DAY_FROM); - expect(ridgeSkyFor('night', 0).physical?.sun.elevation).toBeLessThanOrEqual(-DAY_FROM); - expect(day.ground).toEqual(skyColours().ground); + expect(ridgeSkyFor('night', FALLBACK_VIEW, 0).physical?.sun.elevation).toBeLessThanOrEqual(-DAY_FROM); + }); + + it("is made over the View's place: the sun and the observer are the View's", () => { + const sky = ridgeSkyFor('day', ELSEWHERE_VIEW, 0); + expect(sky.physical?.view).toBe(ELSEWHERE_VIEW); + expect(sky.physical?.atm.observerKm).toBe(ELSEWHERE_VIEW.place.altitudeKm); + }); + + it("keys a rebuild by the View's place as well: another place is another key", () => { + const other = { ...FALLBACK_VIEW, place: { ...FALLBACK_VIEW.place, id: 'graz' } }; + expect(ridgeSkyKey('day', FALLBACK_VIEW, 0.3)).not.toBe(ridgeSkyKey('day', other, 0.3)); + expect(ridgeSkyKey('day', other, 0.3)).toContain('graz'); }); it('keys a rebuild by state and weather, not by the moving sun', () => { setSkyClock(() => atStandardTime(12, 0)); - expect(ridgeSkyKey('auto', 0.3)).toBe(ridgeSkyKey('day', 0.3)); - expect(ridgeSkyKey('day', 0.3)).not.toBe(ridgeSkyKey('day', 0.8)); - expect(ridgeSkyKey('day', 0.3)).not.toBe(ridgeSkyKey('night', 0.3)); + expect(ridgeSkyKey('auto', FALLBACK_VIEW, 0.3)).toBe(ridgeSkyKey('day', FALLBACK_VIEW, 0.3)); + expect(ridgeSkyKey('day', FALLBACK_VIEW, 0.3)).not.toBe(ridgeSkyKey('day', FALLBACK_VIEW, 0.8)); + expect(ridgeSkyKey('day', FALLBACK_VIEW, 0.3)).not.toBe(ridgeSkyKey('night', FALLBACK_VIEW, 0.3)); }); it.each(STATES)('%s: the display is fitted to the budget its text ink needs', (state) => { @@ -125,7 +136,7 @@ describe('ridgeSkyFor', () => { const r = ridgeDrawn(state); expect(r.darkest).toBeGreaterThanOrEqual(floor); expect(r.lightest).toBeLessThanOrEqual(ceiling); - const fit = ridgeSkyFor(state, 0.3).physical?.fit; + const fit = ridgeSkyFor(state, FALLBACK_VIEW, 0.3).physical?.fit; expect(fit?.lo).toBeGreaterThanOrEqual(r.darkest - 1e-9); expect(fit?.hi).toBeLessThanOrEqual(r.lightest + 1e-9); }); @@ -371,3 +382,17 @@ describe('skyBackdrop holds the union of what the scenes draw', () => { expect(Math.min(l.low, r.darkest) - b.darkest).toBeLessThan(5e-4); }); }); + +describe('loadWeather', () => { + it('reads the file again for another place inside the refresh window: the weather it set belongs to the sun of the place it was read for', async () => { + const fetched = vi.fn(async () => ({ ok: false, status: 404, json: async () => ({}) })); + vi.stubGlobal('fetch', fetched); + const t = new Date('2030-01-01T00:00:00Z'); + await loadWeather('/w.json', FALLBACK_VIEW.place, t); + await loadWeather('/w.json', FALLBACK_VIEW.place, new Date(t.getTime() + 60_000)); + expect(fetched).toHaveBeenCalledTimes(1); + await loadWeather('/w.json', ELSEWHERE_VIEW.place, new Date(t.getTime() + 120_000)); + expect(fetched).toHaveBeenCalledTimes(2); + vi.unstubAllGlobals(); + }); +}); diff --git a/src/app/features/scene/skyForState.ts b/src/app/features/scene/skyForState.ts index 8a5f9768..9d80297f 100644 --- a/src/app/features/scene/skyForState.ts +++ b/src/app/features/scene/skyForState.ts @@ -7,8 +7,8 @@ import { baked } from '../../../sky/baked'; import { chooseSky, skyColour, urlSky } from './terrain/terrainSky'; import type { SkyName } from './terrain/terrainSky'; import type { SkyColours, Srgb } from './ridge/skyColour'; -import { skyColours } from './ridge/skyColour'; import { makePhysicalSky } from './ridge/physicalSky'; +import type { Place, View } from './ridge/view'; import { BUDGET } from './ridge/toneMap'; import { ridgeWeather, setFedWeather } from './ridge/weather'; import { currentWeather, fetchWeatherFile } from './ridge/weatherFeed'; @@ -28,39 +28,40 @@ export const DUSK_SUN_ELEVATION = 2; */ export const ridgeSkyKey = ( state: SkyState, + view: View, weather: number = ridgeWeather(), now: Date = skyNow() -): string => `ridge:${resolveSkyState(state, now)}:${weather}`; +): string => `ridge:${resolveSkyState(state, now)}:${weather}:${view.place.id}`; const WEATHER_REFRESH_MS = 10 * 60_000; let weatherAt = -Infinity; +let weatherPlace = ''; /** * Read `weather.json` (the page's own, next to config.json) into the weather the ridge sky is drawn for; at most once in ten minutes. * Never throws: a missing, stale or broken file is a clear sky (`currentWeather`). */ -export async function loadWeather(url: string, now: Date = skyNow()): Promise { - if (now.getTime() - weatherAt < WEATHER_REFRESH_MS) return; +export async function loadWeather(url: string, place: Place, now: Date = skyNow()): Promise { + if (place.id === weatherPlace && now.getTime() - weatherAt < WEATHER_REFRESH_MS) return; weatherAt = now.getTime(); - setFedWeather(currentWeather(await fetchWeatherFile(url), now)); + weatherPlace = place.id; + setFedWeather(currentWeather(await fetchWeatherFile(url), place, now)); } /** - * The ridge scene's `sky` option: the physical sky over Vienna for the state ('auto': the real sun now; a forced state: the + * The ridge scene's `sky` option: the physical sky over the View's place for the state ('auto': the real sun now; a forced state: the * sun of today at a moment inside it, `sunForState`), as a palette for the layers and stars plus the `physical` sky the host canvas * is painted from. The atmosphere LUTs are baked here, once per scene start (tens of ms). */ export function ridgeSkyFor( state: SkyState, + view: View, weather: number = ridgeWeather(), now: Date = skyNow() ): SkyColours { - const { ground } = skyColours(); const fixed = resolveSkyState(state, now); - const physical = makePhysicalSky(fixed, now, weather); + const physical = makePhysicalSky(fixed, now, weather, view); return { ...physical.stops, - ground, - band: SKY_BAND[fixed], physical, }; } diff --git a/src/app/features/scene/terrain/terrainStars.ts b/src/app/features/scene/terrain/terrainStars.ts index a7275062..cc310bff 100644 --- a/src/app/features/scene/terrain/terrainStars.ts +++ b/src/app/features/scene/terrain/terrainStars.ts @@ -48,7 +48,6 @@ export function nightColours(): SkyColours { top: hex(g[0]), mid: hex(g[Math.floor(g.length / 2)]), horizon: hex(g[g.length - 1]), - ground: [0, 0, 0], }; } diff --git a/src/app/features/scene/tier.ts b/src/app/features/scene/tier.ts index ba338f37..265bcf8d 100644 --- a/src/app/features/scene/tier.ts +++ b/src/app/features/scene/tier.ts @@ -24,6 +24,8 @@ export type SceneStyle = 'ridge' | 'raymarch' | 'terrain'; export interface BackgroundSceneConfig { tier?: SceneTier; style?: SceneStyle; + /** The baked ridge place to show (a key of the ridge index); unknown or absent: the index's default. */ + place?: string; /** Let the page URL switch on the diagnostic overlays (`?probe=1`, `?tierlabel=1`) in a production build. Default: no. */ debugOverlays?: boolean; } diff --git a/vite.config.js b/vite.config.js index 699c3148..f2d3e06c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -51,6 +51,10 @@ const copyFiles = { src: 'public/dings', dest: 'public/', }, + { + src: 'public/ridge', + dest: 'public/', + }, ], };