Skip to content

kit: screen bench reads black, reframed, cool pictures light in colour - #501

Merged
kitlangton merged 2 commits into
mainfrom
crt-bench-look
Oct 23, 2026
Merged

kitlangton merged 2 commits into
mainfrom
crt-bench-look

Conversation

@kitlangton

@kitlangton kitlangton commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

What it does

The Lab's "CRT in a dark room" preset now goes properly dark. It's reframed so the set sits on the right third and the chair is three-quarter on, and a blue picture now throws visible blue light.

How it works

  • Black: the haze came from the kit composite's fixed navy shadow lift. It adds vec3f(0.006, 0.011, 0.028) below 0.25 luminance, which works out to exactly the measured sRGB (24, 32, 50). The world's physical renderer now uses WORLD_POST, which is the kit's own postShader(false) with the lift scaled through FrameInput.postCustom (the forest's customPostGradeWgsl pattern). The new Grade shadow lift knob (Physical, 0–1, default 1) controls it, and only screen-bench sets it to 0. The dark frame now sits at RGB 6–9.
  • Framing: the chair is turned 30° from the set toward the camera. The rug is moved under it, and both are now near-neutral so they take the picture's colour. The camera sits in the front corner at eye height. The values came from a grid search, and a test checks the TV at NDC x 0.25–0.45, the chair on the left, and a 30–60° three-quarter angle.
  • Cool light: the direct light already kept full colour (colour = e/peak, power ∝ peak). screenBounceSource.scale() was luminance-weighted, which dimmed a blue picture to a third. It now uses the peak channel, so scale() × color() equals the emission. Exposure goes from 0.6 to 0.8 EV.

Risk

Other presets and games are unchanged. With the override off, the select returns the original constant. The world never sets the Look bit, so it was already on the baseline postShader(false). The bloom passes have no lines that depend on looks. A test checks that only the lift line differs, with naga validation. The fixture's 5% glow floor is a shared shader, so the off table-lamp shade still glows faintly at the left edge.

This also fixes a latent red on main: kit's architecture-map.test.ts didn't classify nightshift's @arcade/kit/gpu/post-uniform import. Main's changed-only packages run hadn't run it since. That row is now added to the look row and the docs table is regenerated.

Proof

One headless run: off, cartoon, sea, PVM close-up.
https://studio.taila8e7c7.ts.net:8444/crt-bench-look-2026-10-23/index.html

@kitlangton
kitlangton merged commit 30604ba into main Oct 23, 2026
14 of 15 checks passed
@kitlangton
kitlangton deleted the crt-bench-look branch October 23, 2026 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant