Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ Not committed; open subjects only. Remove a subject when it ships (CLAUDE.md §
- Tighten inverted smoke canaries: assert the expected `[FAIL]` marker text (`skipped on ... should run` / `missing post-exit sidecar`) alongside wrapper exit 1, so a canary that dies for the wrong reason does not satisfy the gate
- Overlapping / mirrored UV islands as a *shipped* pathology (not lightmap `--falsify`): SAT hits matching a constructed overlap, then glTF TEXCOORD survival. Deferred — `lightmap-uv-channel` already owns the zero-overlap gate.
- Vendor CC0 asset fixtures (Kenney, Quaternius, ambientCG only — no aggregators) as `.glb` not `.blend`, with per-fixture provenance records mirroring the Free-Game-Dev-Assets frontmatter schema. Permitted only where the assertion is an invariant over the fixture rather than a measurement of it. Deferred pending a decision on repo weight and CI fetch policy.
- Falsification flags on shipped examples (Phases 6–8 `--skip-delete` / `--unpair-*` / `--bypass`, Phase 9 `--silent-handler` / `--wrong-text`, Phase 10 `--no-dissolve` / `--identity` / `--no-duplicate`) were proven local-Windows only — chat and `.scratch`, not CI history. Decide later whether a cron should exercise them or whether flags in the scripts are sufficient record.
- `modal-operators` skill -- `invoke` returning `RUNNING_MODAL`, the `modal()` event handler, modal cancellation patterns
- `usd-pipelines` skill -- USD export options, `evaluation_mode`, instancing, the USD vs glTF tradeoffs
- `mathutils-patterns` skill -- `mathutils.Vector`, `Matrix`, `Quaternion`, common transforms, the `@` operator
Expand Down
2 changes: 1 addition & 1 deletion docs/gallery/cross-version-property-delete/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ <h2 id="run">Run<a class="anchor" href="#run" aria-label="Link to this section">
<h2 id="exit-codes">Exit codes<a class="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it. <code>10</code> is the shared framing helper.</p>
<div class="table-wrap"><table><thead><tr><th scope="col">Code</th><th scope="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; also an active object existed after the data-API build</td></tr><tr><td>3</td><td>Custom ID property did not land</td></tr><tr><td>4</td><td><code>property_unset</code> on a custom ID key did not TypeError, or it deleted the key</td></tr><tr><td>5</td><td><code>del</code> did not report removal</td></tr><tr><td>6</td><td>Keep lamp lost the ID property</td></tr><tr><td>7</td><td>Clear lamp still has the ID property (<code>--skip-delete</code> / <code>--unset-instead</code> land here)</td></tr><tr><td>8</td><td>Registered-prop contract broke: attribute/<code>property_unset</code> failed, the prop sits on the wrong side of the 5.0 ID-property split, or <code>scene[&quot;name&quot;]</code> raised <code>KeyError</code> (<code>--subscript-registered</code> on 5.0+; exits 0 on 4.5, where subscript access still works)</td></tr><tr><td>10</td><td>Gallery framing violation</td></tr><tr><td>12</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
<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>--unset-instead</code>. Its catalog falsifiers are <code>--skip-delete</code> (expects exit 7); <code>--subscript-registered</code> (expects exit 8; 5.0+ only; SKIP on older Blender).</p>
<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>. Its catalog falsifiers are <code>--skip-delete</code> (expects exit 7); <code>--unset-instead</code> (expects exit 7); <code>--subscript-registered</code> (expects exit 8; 5.0+ only; SKIP on older Blender).</p>
</section>
<section class="detail-section src" id="source">
<h2>Source</h2>
Expand Down
2 changes: 1 addition & 1 deletion docs/gallery/gn-modifier-inputs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ <h2 id="run">Run<a class="anchor" href="#run" aria-label="Link to this section">
<h2 id="exit-codes">Exit codes<a class="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it. <code>10</code> is the shared framing helper.</p>
<div class="table-wrap"><table><thead><tr><th scope="col">Code</th><th scope="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>Height input identifier missing on the tree interface</td></tr><tr><td>4</td><td>Modifiers do not share one node_group</td></tr><tr><td>5</td><td>Version-path write raised (<code>--api dict</code> on 5.2, <code>--api rna</code> on 4.5)</td></tr><tr><td>6</td><td>Version-path read raised</td></tr><tr><td>7</td><td>Readback ≠ intended height (<code>--same-height</code> lands here)</td></tr><tr><td>8</td><td>Evaluated Z-extent ≠ intended height</td></tr><tr><td>9</td><td>Evaluated mesh not sitting on z=0</td></tr><tr><td>10</td><td>Gallery framing violation</td></tr><tr><td>11</td><td>Evaluated extents not distinct</td></tr><tr><td>12</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
<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>--api dict</code>/<code>rna</code>. Its catalog falsifier is <code>--same-height</code> (expects exit 7).</p>
<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>. Forcing the RNA path is not smoke-tested (it raises on 4.5 and is the default on 5.2). Its catalog falsifiers are <code>--same-height</code> (expects exit 7) and <code>--api dict</code> (expects exit 5; 5.2+ only, where the dict write raises; SKIP on older Blender, where it exits 0).</p>
<h2 id="falsification">Falsification<a class="anchor" href="#falsification" aria-label="Link to this section">#</a></h2>
<div class="table-wrap"><table><thead><tr><th scope="col">Probe</th><th scope="col">Binary</th><th scope="col">Result</th></tr></thead><tbody><tr><td><code>--api dict</code></td><td>5.2.1 LTS</td><td>exit 5, <code>TypeError: id properties not supported for this type</code></td></tr><tr><td><code>--api rna</code></td><td>4.5.11 LTS</td><td>exit 5, <code>AttributeError: &#x27;NodesModifier&#x27; object has no attribute &#x27;properties&#x27;</code></td></tr><tr><td><code>--api dict</code></td><td>5.1.2</td><td>exit 0 (5.1 still takes the dict form)</td></tr><tr><td><code>--api rna</code></td><td>5.1.2</td><td>exit 5, <code>AttributeError: &#x27;NodesModifier&#x27; object has no attribute &#x27;properties&#x27;</code></td></tr><tr><td><code>--same-height</code></td><td>5.2.1, 5.1.2, 4.5.11</td><td>exit 7, <code>readback 1.0 != written 2.0 on SpiralStair.H2</code></td></tr><tr><td><code>RAIL_H = -0.5</code> (treads climb past the post)</td><td>5.2.1, 4.5.11</td><td>exit 8, <code>evaluated Z-extent 1.934334 != height 1.0</code></td></tr><tr><td><code>--api auto</code></td><td>5.2.1, 5.1.2, 4.5.11</td><td>exit 0, extents 1.000 / 2.000 / 3.000</td></tr></tbody></table></div>
</section>
Expand Down
2 changes: 1 addition & 1 deletion docs/gallery/gn-sim-fountain/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ <h2 id="falsifiers">Falsifiers<a class="anchor" href="#falsifiers" aria-label="L
<h2 id="exit-codes">Exit codes<a class="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
<p>Per-script sequential checks. <code>10</code> is the shared framing helper.</p>
<div class="table-wrap"><table><thead><tr><th scope="col">Code</th><th scope="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>Point count or frame-start state off the launch data</td></tr><tr><td>4</td><td>Stepped frames off the closed-form arc (position or velocity)</td></tr><tr><td>5</td><td>Direct jump did not reproduce the one-step trap</td></tr><tr><td>6</td><td>After the cache fill, random-access frames off the arc (or fill not <code>FINISHED</code>)</td></tr><tr><td>10</td><td>Gallery framing violation</td></tr><tr><td>12</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
<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 any falsifier.</p>
<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>. Its catalog falsifiers are the three in the table above: <code>--euler</code> (expects exit 4), <code>--prebake-trap</code> (expects exit 5) and <code>--calc-to-frame</code> (expects exit 6).</p>
</section>
<section class="detail-section src" id="source">
<h2>Source</h2>
Expand Down
2 changes: 1 addition & 1 deletion docs/gallery/gn-zone-iterate/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ <h2 id="run">Run<a class="anchor" href="#run" aria-label="Link to this section">
<h2 id="exit-codes">Exit codes<a class="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it. <code>10</code> is the shared framing helper.</p>
<div class="table-wrap"><table><thead><tr><th scope="col">Code</th><th scope="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; also carrier mesh was rewritten</td></tr><tr><td>3</td><td>Repeat evaluated vert/face count off closed form</td></tr><tr><td>4</td><td>Repeat X-centers off closed form</td></tr><tr><td>5</td><td>For Each evaluated vert/face count off closed form</td></tr><tr><td>6</td><td>For Each Z-centers off closed form</td></tr><tr><td>10</td><td>Gallery framing violation</td></tr><tr><td>12</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
<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>, <code>--no-offset</code>, or <code>--unpair-foreach</code>. Its catalog falsifier is <code>--unpair-repeat</code> (expects exit 3).</p>
<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>. Its catalog falsifiers are <code>--unpair-repeat</code> (expects exit 3), <code>--no-offset</code> (expects exit 4), <code>--unpair-foreach</code> and <code>--foreach-main</code> (each expects exit 5).</p>
</section>
<section class="detail-section src" id="source">
<h2>Source</h2>
Expand Down
2 changes: 1 addition & 1 deletion docs/gallery/usd-export-evaluation-mode/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ <h2 id="run">Run<a class="anchor" href="#run" aria-label="Link to this section">
<h2 id="exit-codes">Exit codes<a class="anchor" href="#exit-codes" aria-label="Link to this section">#</a></h2>
<p>Per-script sequential checks. <code>9</code> is a valid check code; there is no rule against it. <code>10</code> is the shared framing helper.</p>
<div class="table-wrap"><table><thead><tr><th scope="col">Code</th><th scope="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; also base cube verts ≠ 8</td></tr><tr><td>3</td><td>VIEWPORT TESSELLATE point/face count off closed form</td></tr><tr><td>4</td><td>RENDER TESSELLATE point/face count or scheme off closed form</td></tr><tr><td>5</td><td>BEST_MATCH cage point count or scheme off</td></tr><tr><td>6</td><td>RENDER and VIEWPORT USDA point counts are identical (check), or the re-imported RENDER goblet is not denser than the VIEWPORT one (<code>--output</code>)</td></tr><tr><td>10</td><td>Gallery framing violation</td></tr><tr><td>12</td><td><code>--output</code> produced no file</td></tr></tbody></table></div>
<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>--evaluation-mode</code>. Its catalog falsifier is <code>--subdivision BEST_MATCH</code> (expects exit 4).</p>
<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>. Its catalog falsifiers are <code>--subdivision BEST_MATCH</code> (expects exit 4) and <code>--evaluation-mode VIEWPORT</code> (expects exit 4).</p>
</section>
<section class="detail-section src" id="source">
<h2>Source</h2>
Expand Down
2 changes: 1 addition & 1 deletion examples/coincident-vert-weld/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,4 @@ against it.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--weld`. Its catalog falsifier is `--no-duplicate` (expects exit 3).
Its catalog falsifiers are `--no-duplicate` (expects exit 3) and `--weld` (expects exit 4).
2 changes: 1 addition & 1 deletion examples/cross-version-property-delete/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,4 @@ against it. `10` is the shared framing helper.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--output` or `--unset-instead`. Its catalog falsifiers are `--skip-delete` (expects exit 7); `--subscript-registered` (expects exit 8; 5.0+ only; SKIP on older Blender).
Smoke does not pass `--output`. Its catalog falsifiers are `--skip-delete` (expects exit 7); `--unset-instead` (expects exit 7); `--subscript-registered` (expects exit 8; 5.0+ only; SKIP on older Blender).
4 changes: 3 additions & 1 deletion examples/exit-pre-sidecar/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,6 @@ against it. `77` is the smoke skip protocol, not a product check.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS (5.1 on the
weekly cron, the `needs-5.1` PR label, or manual dispatch) and skips on 4.5
LTS. Smoke does not pass the falsifier flags.
LTS. Every falsifier in the table above is a catalog falsifier: the harness
must fail the sidecar for `--atexit-instead`, `--no-handler`, `--silent-handler`,
`--wrong-text` and `--write-in-main`. Smoke does not pass `--force-run`.
5 changes: 3 additions & 2 deletions examples/gn-bundle-roundtrip/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,5 +102,6 @@ Measured on 4.5.11 / 5.0.1 / 5.1.2 / 5.2.1:

The `blender-smoke` workflow runs the check on Blender 5.2 LTS (5.1 on the
weekly cron, the `needs-5.1` PR label, or manual dispatch) and skips on 4.5
LTS. Its catalog falsifier is `--legacy-rna` (expects exit 7). Smoke does
not pass `--bypass`, `--mismatch`, `--mismatch-mark`, or `--force-run`.
LTS. Its catalog falsifiers are `--legacy-rna` (expects exit 7), `--mismatch`
(expects exit 3), `--bypass` (expects exit 4) and `--mismatch-mark` (expects
exit 5). Smoke does not pass `--force-run`.
2 changes: 1 addition & 1 deletion examples/gn-modifier-inputs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ against it. `10` is the shared framing helper.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--output` or `--api dict`/`rna`. Its catalog falsifier is `--same-height` (expects exit 7).
Smoke does not pass `--output`. Forcing the RNA path is not smoke-tested (it raises on 4.5 and is the default on 5.2). Its catalog falsifiers are `--same-height` (expects exit 7) and `--api dict` (expects exit 5; 5.2+ only, where the dict write raises; SKIP on older Blender, where it exits 0).

## Falsification

Expand Down
2 changes: 1 addition & 1 deletion examples/gn-sim-fountain/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,4 +106,4 @@ Per-script sequential checks. `10` is the shared framing helper.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--output` or any falsifier.
Smoke does not pass `--output`. Its catalog falsifiers are the three in the table above: `--euler` (expects exit 4), `--prebake-trap` (expects exit 5) and `--calc-to-frame` (expects exit 6).
2 changes: 1 addition & 1 deletion examples/gn-zone-iterate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ against it. `10` is the shared framing helper.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--output`, `--no-offset`, or `--unpair-foreach`. Its catalog falsifier is `--unpair-repeat` (expects exit 3).
Smoke does not pass `--output`. Its catalog falsifiers are `--unpair-repeat` (expects exit 3), `--no-offset` (expects exit 4), `--unpair-foreach` and `--foreach-main` (each expects exit 5).
2 changes: 1 addition & 1 deletion examples/ngon-triangulate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,4 @@ against it.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--skip-triangulate`. Its catalog falsifier is `--no-dissolve` (expects exit 3).
Its catalog falsifiers are `--no-dissolve` (expects exit 3) and `--skip-triangulate` (expects exit 4).
2 changes: 1 addition & 1 deletion examples/unapplied-scale-gltf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,4 @@ against it.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--bake`. Its catalog falsifier is `--identity` (expects exit 3).
Its catalog falsifiers are `--identity` (expects exit 3) and `--bake` (expects exit 4).
2 changes: 1 addition & 1 deletion examples/usd-export-evaluation-mode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,4 @@ against it. `10` is the shared framing helper.

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Smoke does not pass `--output` or `--evaluation-mode`. Its catalog falsifier is `--subdivision BEST_MATCH` (expects exit 4).
Smoke does not pass `--output`. Its catalog falsifiers are `--subdivision BEST_MATCH` (expects exit 4) and `--evaluation-mode VIEWPORT` (expects exit 4).
Loading
Loading