You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2bd2041
Browse filesBrowse the repository at this point in the historyBrowse files
fix(examples): gate compositor-glare and collision-hull-proxy stills; lint every gallery entry
These were the only 2 of 132 gallery entries whose render path never called
gallery_framing, so their framing was eyeballed, not measured.
collision-hull-proxy is also in the pinned asset-quality reference set yet
never ran the asset-quality floors.
- compositor-glare: check_framing (hero and elements = the rings, stage =
floor) before the beauty render; exit 10. render_still now returns a code.
- collision-hull-proxy: check_framing (hero = hydrant, elements = hydrant +
hulls, stage = floor + wall; exit 10) and check_asset_quality on the
hydrant (exit 11), both before the render.
- READMEs list the new exits.
- tests/check_render_gates.py (in Validate): every directory in
examples/gallery.json or showcase/gallery.json must import gallery_framing
and call check_framing or measure_framing_deviation. 132/132 pass.
Proof (local, .scratch/blender-5.2.1-windows-x64, 5.2.1 LTS, EEVEE):
- compositor-glare --output: framing_fill x=0.734 ok, margins min 0.117 ok,
exit 0. Probe: camera pulled back to y=-30 -> "framing violation ...
fill x=0.219 FAIL".
- collision-hull-proxy --output: framing_fill y=0.833 ok, margins ok;
aq_naming ok, materials n=4 dominant 0.50 ok, edge90 0.035 ok; exit 0.
- Both gates passed as composed, so the committed heroes are unchanged.
- check_render_gates on the pre-fix compositor_glare.py reports it.
Closes#342
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
<h2id="exit-codes">Exit codes<aclass="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
83
83
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it.</p>
84
-
<divclass="table-wrap"><table><thead><tr><thscope="col">Code</th><thscope="col">Meaning</th></tr></thead><tbody><tr><td>0</td><td>Success</td></tr><tr><td>1</td><td>Uncaught exception (FATAL wrapper)</td></tr><tr><td>2</td><td>argparse / usage</td></tr><tr><td>3</td><td>Render vertex escapes its hull (<code>--shrink-hull</code> lands here)</td></tr><tr><td>4</td><td>Hull edge does not border exactly two faces</td></tr><tr><td>5</td><td>Signed volume ≤ 0 (inverted winding)</td></tr><tr><td>6</td><td>Hull vertex off its own face plane</td></tr><tr><td>7</td><td>Euler characteristic ≠ 2</td></tr><tr><td>8</td><td>Piece over the 255-face collision budget</td></tr><tr><td>9</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
84
+
<divclass="table-wrap"><table><thead><tr><thscope="col">Code</th><thscope="col">Meaning</th></tr></thead><tbody><tr><td>0</td><td>Success</td></tr><tr><td>1</td><td>Uncaught exception (FATAL wrapper)</td></tr><tr><td>2</td><td>argparse / usage</td></tr><tr><td>3</td><td>Render vertex escapes its hull (<code>--shrink-hull</code> lands here)</td></tr><tr><td>4</td><td>Hull edge does not border exactly two faces</td></tr><tr><td>5</td><td>Signed volume ≤ 0 (inverted winding)</td></tr><tr><td>6</td><td>Hull vertex off its own face plane</td></tr><tr><td>7</td><td>Euler characteristic ≠ 2</td></tr><tr><td>8</td><td>Piece over the 255-face collision budget</td></tr><tr><td>9</td><td><code>--output</code> produced no file</td></tr><tr><td>10</td><td>Gallery framing violation (render path)</td></tr><tr><td>11</td><td>Gallery asset-quality violation (render path)</td></tr></tbody></table></div>
85
85
<p>The <code>blender-smoke</code> workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the <code>needs-5.1</code> PR label, or manual dispatch). Smoke does not pass <code>--output</code> or <code>--shrink-hull</code>.</p>
<spanclass="c"># Layer 1 framing gate and the asset-quality floors, both before the</span>
1132
+
<spanclass="c"># beauty render so a defective still ships no artifact. The hero is the</span>
1133
+
<spanclass="c"># hydrant itself; its hulls are framed elements too.</span>
1134
+
hydrant = [o <spanclass="k">for</span> g <spanclass="k">in</span> groups <spanclass="k">for</span> o <spanclass="k">in</span> g[<spanclass="s">"render"</span>]]
<h2id="exit-codes">Exit codes<aclass="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
78
78
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it.</p>
79
-
<divclass="table-wrap"><table><thead><tr><thscope="col">Code</th><thscope="col">Meaning</th></tr></thead><tbody><tr><td>0</td><td>Success</td></tr><tr><td>1</td><td>Uncaught exception (FATAL wrapper)</td></tr><tr><td>2</td><td>argparse / usage</td></tr><tr><td>3</td><td>Compositor tree / Glare / Threshold / link-chain contract (<code>--threshold-high</code> lands here)</td></tr><tr><td>4</td><td>Check render missing, tube dark, no halo, or halo does not fall off</td></tr><tr><td>5</td><td>Halo present with compositing off</td></tr><tr><td>6</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
79
+
<divclass="table-wrap"><table><thead><tr><thscope="col">Code</th><thscope="col">Meaning</th></tr></thead><tbody><tr><td>0</td><td>Success</td></tr><tr><td>1</td><td>Uncaught exception (FATAL wrapper)</td></tr><tr><td>2</td><td>argparse / usage</td></tr><tr><td>3</td><td>Compositor tree / Glare / Threshold / link-chain contract (<code>--threshold-high</code> lands here)</td></tr><tr><td>4</td><td>Check render missing, tube dark, no halo, or halo does not fall off</td></tr><tr><td>5</td><td>Halo present with compositing off</td></tr><tr><td>6</td><td><code>--output</code> produced no file</td></tr><tr><td>10</td><td>Gallery framing violation (render path; checked before the beauty render)</td></tr></tbody></table></div>
80
80
<p>The <code>blender-smoke</code> workflow runs the check on Blender 5.2 LTS and 4.5 LTS (5.1 on the weekly cron, the <code>needs-5.1</code> PR label, or manual dispatch). Smoke does not pass <code>--output</code> or <code>--threshold-high</code>.</p>
0 commit comments