scene: Dusk floor at the link bound with Day's pale-blue lift (held for Meta's preview) #56

Merged
void merged 1 commit from nibu/dusk-sky-floor into dev 2026-11-10 17:03:36 +00:00
Member

Stacked on #55 (void/sky-link-readability, 2c271c6d). Held unmerged for Meta's preview. This patch was checked by tests and numbers when written; Void has since rendered previews A and B on a real GPU (see Rendered evidence below). No production build ran.

What

  • Dusk floor 0.317 -> 0.4744: the dark link #2a4f27 (L 0.0623) needs a backdrop of at least 0.4554; the floor is that bound plus the shaped 0.019 margin Day keeps over its text bound.
  • Dusk lift #eba0b9 -> #e2f4ff (Day's). The old rose has luma 0.463, below the new floor, so the mix overshoots and darkens (measured minimum 0.268).
  • The ridge dusk stops (raw twilight) are shaped into the same band in ridgeSkyFor; unshaped, their darkest blend was 0.336, below the link bound. Lavender, rose and orange stay ordered (top 186,177,229, mid 225,167,192, horizon 238,167,126).
  • skyBackdrop('dusk').darkest 0.30619 -> 0.460352, re-derived from the real functions (ridgeDrawn, terrainDrawn, the independent sweep); lightest unchanged at 0.968744.

Measured

before after
Dusk darkest 0.306 0.460
Dusk text ratio 4.60 6.59
Dusk link ratio 3.17 4.54
Reach area shaped (terrain) 8.4% 63.2%
Sun-side glow, lightest #ffffb4 / 0.9687 unchanged

The dark-to-light span shrinks from 0.66 to 0.51: Dusk's darkest backdrop now equals Day's (0.461). Hue shift on lifted pixels about 18 degrees. Probe: dusk-floor-probe.test.ts in the author's workspace.

Drift tests

skyForState.test.ts ties the floor to the link bound derived from skyTokens (AA, luminance) plus 0.019, ties the lift to Day's, and checks the darkest shaped black reads at the bound and under the floor. Nudging the floor by 1e-4 / 1.4e-3, swapping the lift back to rose, or nudging the backdrop constant by 1e-6 / 5e-5 each fail the suite (all six nudges killed).

Options written, not built

  • Pink lifts (#f6c8d8, #f2b8cc, #fad2de): 47-72 degree hue shifts, a pink wash over 63% of the reach.
  • Brightness scale (hue kept exactly): replaces the algorithm in shapeToBand and its GLSL twin, and blows up on near-black skies the ?sun= sweep reaches.

Pre-existing eslint errors in ridge/skyColour.ts (_now) are untouched.

Rendered evidence, 2026-11-10

Void's real-GPU previews A (dev 0931901b, no Dusk floor) and B (this head, 91e93e68) are in /opt/commons/handoff/ratatoskr-sky-shots/.

  • The sky above the terrain edge meets the model.
  • Displayed Dusk is lower than shaped, by the documented gamma-2.2 encode: B shaped 0.4744, displayed 0.4661. The displayed margin over the link bound 0.4554 is about 0.011, not 0.019.
  • The shortfalls in the margin strips were the card box-shadow. The below-floor pixels at the terrain edge are distant ridge haze (Libby's trace, terrainSky.ts:150).
  • Footer links over dark terrain are a separate issue, Void's.
  • Meta has not yet seen Dusk.

🤖 Generated with Claude Code

Stacked on #55 (`void/sky-link-readability`, 2c271c6d). **Held unmerged for Meta's preview.** This patch was checked by tests and numbers when written; Void has since rendered previews A and B on a real GPU (see Rendered evidence below). No production build ran. ## What - Dusk floor `0.317 -> 0.4744`: the dark link `#2a4f27` (L 0.0623) needs a backdrop of at least 0.4554; the floor is that bound plus the shaped 0.019 margin Day keeps over its text bound. - Dusk lift `#eba0b9 -> #e2f4ff` (Day's). The old rose has luma 0.463, below the new floor, so the mix overshoots and darkens (measured minimum 0.268). - The ridge dusk stops (raw twilight) are shaped into the same band in `ridgeSkyFor`; unshaped, their darkest blend was 0.336, below the link bound. Lavender, rose and orange stay ordered (top `186,177,229`, mid `225,167,192`, horizon `238,167,126`). - `skyBackdrop('dusk').darkest` `0.30619 -> 0.460352`, re-derived from the real functions (`ridgeDrawn`, `terrainDrawn`, the independent sweep); lightest unchanged at 0.968744. ## Measured | | before | after | |---|---|---| | Dusk darkest | 0.306 | 0.460 | | Dusk text ratio | 4.60 | 6.59 | | Dusk link ratio | 3.17 | 4.54 | | Reach area shaped (terrain) | 8.4% | 63.2% | | Sun-side glow, lightest | `#ffffb4` / 0.9687 | unchanged | The dark-to-light span shrinks from 0.66 to 0.51: Dusk's darkest backdrop now equals Day's (0.461). Hue shift on lifted pixels about 18 degrees. Probe: `dusk-floor-probe.test.ts` in the author's workspace. ## Drift tests `skyForState.test.ts` ties the floor to the link bound derived from `skyTokens` (`AA`, `luminance`) plus 0.019, ties the lift to Day's, and checks the darkest shaped black reads at the bound and under the floor. Nudging the floor by 1e-4 / 1.4e-3, swapping the lift back to rose, or nudging the backdrop constant by 1e-6 / 5e-5 each fail the suite (all six nudges killed). ## Options written, not built - Pink lifts (`#f6c8d8`, `#f2b8cc`, `#fad2de`): 47-72 degree hue shifts, a pink wash over 63% of the reach. - Brightness scale (hue kept exactly): replaces the algorithm in `shapeToBand` and its GLSL twin, and blows up on near-black skies the `?sun=` sweep reaches. Pre-existing eslint errors in `ridge/skyColour.ts` (`_now`) are untouched. ## Rendered evidence, 2026-11-10 Void's real-GPU previews A (dev `0931901b`, no Dusk floor) and B (this head, `91e93e68`) are in `/opt/commons/handoff/ratatoskr-sky-shots/`. - The sky above the terrain edge meets the model. - Displayed Dusk is lower than shaped, by the documented gamma-2.2 encode: B shaped 0.4744, displayed 0.4661. The displayed margin over the link bound 0.4554 is about 0.011, not 0.019. - The shortfalls in the margin strips were the card box-shadow. The below-floor pixels at the terrain edge are distant ridge haze (Libby's trace, `terrainSky.ts:150`). - Footer links over dark terrain are a separate issue, Void's. - Meta has not yet seen Dusk. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
scene: Dusk floor at the link bound with Day's pale-blue lift, so the dark link clears AA
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
734a61c42a
Dusk's floor moves from 0.317 to 0.4744 (the dark link's bound 0.4554 plus the 0.019
margin Day keeps over its text bound), and its lift from rose #eba0b9 (luma 0.463,
below the new floor) to Day's #e2f4ff. The ridge dusk stops are shaped into the same
band, since the unshaped twilight dipped to 0.336. skyBackdrop('dusk').darkest becomes
0.460352; Dusk text 4.60 -> 6.59, link 3.17 -> 4.54.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
nibu changed target branch from void/sky-link-readability to dev 2026-11-10 01:35:55 +00:00
nibu force-pushed nibu/dusk-sky-floor from 734a61c42a
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
to f7fc0de185
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
2026-11-10 01:35:55 +00:00
Compare
nibu force-pushed nibu/dusk-sky-floor from f7fc0de185
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
to 91e93e6887
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 2m54s
2026-11-10 02:54:48 +00:00
Compare
void merged commit 64edacac4d into dev 2026-11-10 17:03:36 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Ratatoskr!56
No description provided.