docs(render): VM6 code-complete — foliage-wind pixel proof, repeat-floor apparatus, ledger (Campaign VM)
Closes the automated half of slice VM6 at754d59d9and records how it was proven. The first pixel method (clock pin 0 s vs 3 s, wind-off pair as the control) is recorded as confounded: the treeline silhouette carries a bimodal 0-or-~280 px rasterisation churn between runs of the same binary, and two conclusions drawn from it were retracted. The replacement apparatus (same pin, wind on vs off, two captures per arm, robust mask = AND of the four cross pairs minus both repeat pairs, shadows off so only geometry can move) found the round-4 defect (wind welded to the shadow gate: 1 m wind = 49-65 px vs a 22 px floor while the CPU state was correct) and, after round 5, gives 14,993 robust wind pixels vs a 65 px floor, every one on a treeline tree, hillside tree or shoreline bush, with the wind-off frame matching the pre-round-4 plain pipeline at mean |d| 0.007 (round 4'seec95535: 1.77, the overhead-sun regression the narrow review caught). tools/vm6/wind-pixel-proof.py is the analysis command the closeout names; evidence overlays under docs/research/evidence/vm6. Plan: VM6 ledger row CODE-COMPLETE 2026-08-23, owner visual gate owed (section VM6 Acceptance). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
754d59d949
commit
26adf75079
8 changed files with 212 additions and 6 deletions
|
|
@ -82,7 +82,7 @@ single-pass path darkens by ~10 %. Neither explains a scene-wide level.
|
|||
| VM3 | F4 — linear-light post stack | **CODE-COMPLETE 2026-08-22** — `87677f9c`, `51178f7c`, closeout; Opus APPROVE; **owner visual gate OWED** (brief below) |
|
||||
| VM4 | F5 — overclaiming docs, incl. the reviewer's own | **CLOSED 2026-08-22** |
|
||||
| VM5 | F8 — volumetric banding; F7 filed | **CLOSED 2026-08-22** (#421) |
|
||||
| VM6 | Foliage wind | **CODE-COMPLETE 2026-08-23** — `0930c35d`, `39e8408c`, `43e3abed`, `a82959f1`, `fccba839`, `eec95535`; four Opus review rounds (round 3 APPROVE, round 4 narrow re-review of `fccba839`+`eec95535`); pixel proof [note](../research/2026-08-23-vm6-foliage-wind-pixel-proof.md) (13,854 robust wind px vs 19 floor, scenery only); **owner visual gate OWED** (§VM6 Acceptance) |
|
||||
| VM6 | Foliage wind | **CODE-COMPLETE 2026-08-23** — `0930c35d`, `39e8408c`, `43e3abed`, `a82959f1`, `fccba839`, `eec95535`, `754d59d9`; five Opus review rounds (round 3 APPROVE; round 4 REJECT caught the overhead-sun regression, fixed in round 5); pixel proof [note](../research/2026-08-23-vm6-foliage-wind-pixel-proof.md) (14,993 robust wind px vs 65 floor, scenery only; wind-off frames match the plain pipeline at mean |Δ| 0.007); **owner visual gate OWED** (§VM6 Acceptance) |
|
||||
| VM7 | Closeout: full gates, register, roadmap, merge | **owner** |
|
||||
|
||||
Order is VM2 (done) → VM0 (done) → VM1 (done) → VM4 (done) → VM5 (done) → VM3 (code-complete, gate owed) → VM6 (code-complete, gate owed) → VM7. VM0 goes first because everything after it is measured
|
||||
|
|
@ -495,7 +495,7 @@ direction to read, and the register row says so.
|
|||
indoors — nothing moves; (6) pack off — nothing moves. The owner's words
|
||||
decide; the numbers above are starting points to tune live.
|
||||
|
||||
### VM6 outcome (implementation landed 2026-08-22; code-complete 2026-08-23 at `eec95535`; owner visual gate outstanding)
|
||||
### VM6 outcome (implementation landed 2026-08-22; code-complete 2026-08-23 at `754d59d9`; owner visual gate outstanding)
|
||||
|
||||
Two commits (VM6a shader ABI v2 plumbing, VM6b the feature) shipped the
|
||||
design above; a same-day fix-round commit corrected the weather-table key.
|
||||
|
|
@ -725,13 +725,15 @@ gated-off frame is numerically the plain pipeline. Wind is unaffected —
|
|||
`foliage_wind.glsl` reads only the AtmosphericFrame half of set 3, never
|
||||
the shadow block.
|
||||
|
||||
**Pixel proof after round 4 (2026-08-23, `eec95535`):** the same
|
||||
**Pixel proof after rounds 4–5 (2026-08-23, `eec95535` → `754d59d9`):** the same
|
||||
apparatus that found the defect — High preset, `sun-shadow-strength=0` so
|
||||
no shadow term can move, same pinned clock, wind on vs off, two captures per
|
||||
arm so the repeat pairs measure the run-to-run floor — gives a robust wind
|
||||
mask of **13,854 px** (amplified: strength 2, lean/branch 1 m, flutter
|
||||
0.5 m) against a **19 px** floor, and **1,402 px** at the default Clear
|
||||
strength; every marked pixel is a treeline tree, hillside tree or shoreline
|
||||
mask of **13,854 px** on `eec95535` and **14,993 px** on `754d59d9`
|
||||
(amplified: strength 2, lean/branch 1 m, flutter 0.5 m) against a 19–65 px
|
||||
floor, and **1,402 px** at the default Clear strength; the wind-off frame on
|
||||
`754d59d9` matches the pre-round-4 plain pipeline at mean |Δ| 0.007 (round
|
||||
4's `eec95535` was 1.77 — the overhead-sun regression); every marked pixel is a treeline tree, hillside tree or shoreline
|
||||
bush, and no house, fence, road, lifestone, ground, water or UI pixel moves.
|
||||
The first method tried (clock pin 0 s vs 3 s, wind-off pair as the control)
|
||||
is recorded as confounded in the note and must not be reused: the treeline
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue