feat: add lod-decimate-chain example witnessing the modifier LOD contract#76
Merged
Conversation
…ract Game engines consume LOD chains, and the modifier-based chain is where AI-generated code drifts: baking the reduction into the base mesh, stacking ratios, or losing silhouette-critical extremes. A closed-form retro rocket evaluated at LOD0/1/2 through the depsgraph pins all three: non-destructive evaluation, ratio-bounded triangle counts, and bbox preservation. The Decimate API is stable across 4.5 LTS and 5.1; the example demonstrates that by producing identical measured values on both, and documents the aggressive-ratio nose-tip collapse as the caught silhouette failure mode. Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Second example of the "game asset pipeline" arc (after #75): a retro toy rocket — lathed body, ogive nose, three swept fins, porthole, all closed form — evaluated at LOD0/1/2 through the Decimate modifier via the depsgraph. Decimation/LOD is the pipeline stage where AI-generated code bakes reductions into the base mesh, stacks ratios silently, or loses silhouette-critical extremes.
Contract witnessed
obj.datakeeps the closed-form counts (1,147 verts / 2,260 tris) — proven before and after evaluation; every evaluated reference released withto_mesh_clear().ratio × base: measured 0.00% at 0.5 (1,130 tris) and 0.44% at 0.18 (405 tris) — bounds set deliberately tight from measured behavior.Version witness: the Decimate API (
decimate_type='COLLAPSE',ratio) is stable between 4.5 LTS and 5.1 — the example runs identically on both, measured values equal to the digit (verified locally on both binaries).Falsification evidence (temporary breaks in scratch copies, 5.1.2, restored after measurement):
Probe C's finding is documented in the README: silhouette loss is the real failure mode of aggressive LODs, which is exactly what the bbox bound catches.
Visual / contact-sheet gate: lod-decimate-chain-contact-sheet.webp — candidate beside the pinned set (armature-bend, damped-track-aim, bmesh-gear). Per-criterion verdicts: stage darkness ✓, wedge warmth ✓, subject fill ✓ (comparable to the tubes), saturation ✓ (cream/red/teal reads saturated), thumbnail legibility ✓ (LOD progression + plaques read at 640×360). Mean luminance: candidate 139.2 vs calibration 139.4 / 100.1 / 143.4 (sRGB luma) — essentially identical to armature-bend.
Proven by live run vs inspection:
.scratch/blender-5.1.2-windows-x64/blender.exe(Blender 5.1.2, hash ec6e62d40fa9) and.scratch/blender-4.5.11-windows-x64/blender.exe(Blender 4.5.11 LTS, hash 4db51e9d1e1e) — identical measured values. Render path exit 0 on both binaries (EEVEE), pixels iterated on this machine (4 drafts: framing clips, plaque legibility fixes). All three probes live on 5.1.2.Test plan
25 examples)examples/lod-decimate-chain/lod_decimate_chain.py --check-only.scratch/blender-5.1.2-windows-x64/blender.exe(Blender 5.1.2) and.scratch/blender-4.5.11-windows-x64/blender.exe(Blender 4.5.11 LTS)Integration: example dir + README, gallery.json entry, plugin manifest, smoke step, top-level README ("Game asset pipeline" category now 2, counts 24→25), generated gallery pages (read character-by-character: card alt and witnesses callout verified full), ROADMAP shipped entry.
🤖 Generated with Kimi Code