The still-scene convergence fix (#1) widens the rectification AABB by ×9 for pixels that are simultaneously still (<0.05 render-texel motion), converged, and free of disocclusion / shading-change / reactivity signals. That is what let a bounded-memory EMA accumulator actually converge — phase-locked frame diff 0.182 → 0.018 on Q1.
Widening the clamp is, by construction, a reduction in anti-ghosting authority. Every signal we have restores full rectification instantly, so the exposure is specifically: a lighting change slow enough that the shading detector never fires, on a still camera, on converged history. The detector is a 1-frame comparison with contrast-adaptive floors, so a sufficiently slow ramp is invisible to it and the widened box would let stale luminance persist longer than before.
We have not measured this. Q9 (light steps) fires cleanly and Q3/Q4 (motion) are unaffected because the relax fades out above 0.5 texel/frame — none of those probe the gap.
Wanted:
- A bench scenario with a still camera and a lighting ramp deliberately tuned below
SHADING_FLOOR_MID/COARSE/CV — slow enough to stay under the detector across its whole traverse.
- Measure convergence lag against
STILL_CLAMP_RELAX ∈ {0 (off), 4, 8 (shipped), 16}, alongside the still-scene churn each produces, so the tradeoff curve is on record rather than assumed.
- If a knee exists, either retune the constant or gate the relax on a slow-drift term.
Context: src/shaders/accumulate.ts (the STILL_* block and its comment), bench/docs/NEXT-STEPS.md §5, PAPER-NOTES.md §6 (listed there as a still-needs for the writeup).
The still-scene convergence fix (#1) widens the rectification AABB by ×9 for pixels that are simultaneously still (<0.05 render-texel motion), converged, and free of disocclusion / shading-change / reactivity signals. That is what let a bounded-memory EMA accumulator actually converge — phase-locked frame diff 0.182 → 0.018 on Q1.
Widening the clamp is, by construction, a reduction in anti-ghosting authority. Every signal we have restores full rectification instantly, so the exposure is specifically: a lighting change slow enough that the shading detector never fires, on a still camera, on converged history. The detector is a 1-frame comparison with contrast-adaptive floors, so a sufficiently slow ramp is invisible to it and the widened box would let stale luminance persist longer than before.
We have not measured this. Q9 (light steps) fires cleanly and Q3/Q4 (motion) are unaffected because the relax fades out above 0.5 texel/frame — none of those probe the gap.
Wanted:
SHADING_FLOOR_MID/COARSE/CV— slow enough to stay under the detector across its whole traverse.STILL_CLAMP_RELAX∈ {0 (off), 4, 8 (shipped), 16}, alongside the still-scene churn each produces, so the tradeoff curve is on record rather than assumed.Context:
src/shaders/accumulate.ts(theSTILL_*block and its comment),bench/docs/NEXT-STEPS.md§5,PAPER-NOTES.md§6 (listed there as a still-needs for the writeup).