Darkroom: step one

2026-10-10 · print renderer and development previewer · simulator, iPhone 17 Pro

The previewer opens with the launch argument -routeDarkroomLab in a debug build. It lets you pick any roll and print, scrub or play the four stages at game pace, change the development map, move every constant on a slider, add fog, show the mask, and put the print in the tray. Copy values puts your tuned constants on the clipboard to send back.

Stages 1 → 3 with the tell held back

The Extra Passenger print 3 and Her Handwriting print 3 at stages 1, 2 and 3
Top: 01 print 3 (handbag on the dashboard). Bottom: 26 print 3 (Nell on the road). Stage 4 is the master, which the render check confirms pixel for pixel.

Two changes to the spec's starting formula came from looking at these. A tell held at paper-white read as a white hole in a finished day picture and a glowing ghost in the night one, pointing straight at the detail. The held-back area now develops its broad, blurred tone along with its surroundings, and only its detail waits for the last stage. Strength also rises on a curve, because dark tones come first and otherwise made stage 1 too strong on dark prints.

Rolls without masks yet

Height Chart print 2, Sweater print 3 and His Side print 3 at stages 1 to 3
05 print 2, 06 print 3, 07 print 3. Rolls 06 and 07 have no masks, so their tells are readable from stage 2.

Tray, fog and mask

Print in the tilted tray, a fogged print, a print at the six-mark cap, and the mask overlay
Top left: the print fitted to the tray's four corners under the safelight. Top right: four wrong answers. Bottom left: nine wrong answers, held at six marks with some deepened. Bottom right: the mask overlay, where blue is fog-protected. No fog lands on it.
The previewer screen
The previewer.
Mask overlay on the night print
Magenta marks the held-back area.

What to judge on your phone

  1. Does it read as a photograph developing? Press Next to watch one stage at game pace.
  2. Does stage 1 give too much away? Try Early contrast and Contrast curve.
  3. Does the held-back area still draw the eye at stages 2–3? Try Tell hold and Tell delay.
  4. Does fog read as damage without hiding what the student needs? Use Wrong answer and Fog grey.

Checks run

CheckResult
Core: manifest, development rules, fog (17 tests)Pass
App: render check on the real shader, held-back, grey-only and unmasked prints (3 UI tests)Pass: stage 4 equals the master with max Δ 0, and the mask arrives unaltered
Device frame rate, small phoneNot run