feat: add sibling showcase/ tree and shipping-crate piece - #148
Merged
Merged
Conversation
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
12 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
Sibling
showcase/is a different content kind fromexamples/. Nesting would have listed a container as an example and inflated the example count. This PR adds the schema slot, the conventions, and one budget-gated crate so the category is real.Squash-merge subject should stay
feat:(minor bump). Three commits, all-s.Type
feat— new skill / rule / snippet / template / example (minor bump)Task 1 — six infrastructure changes (commit
f828299)plugin.jsonshowcasekey. Alongsideskills/rules/snippets/templates/examples. Why: the manifest is the closed list of shipped content; a sibling tree that is not an example cannot live underexamples.validate-manifest. Schema slot + globshowcase/*directories; every dir must be listed. Why: a decorative key would not catch a missing or extra piece.validate-counts. Countsshowcase/<dir>/README.mdseparately. README needle is{n} showcase piece(s), not folded into examples. Why: the example total must stay a count of examples.pages.yml.showcase/**added to the path filter; nothing else in that file. Why: gallery/site rebuilds when a piece orshowcase/gallery.jsonchanges.scripts/build_gallery.pymergesshowcase/gallery.jsonpieces[]intodocs/gallery/and tagsshowcase.scripts/site/build_site.pyreads the same file for a landing#showcasepanel. Each tree owns its index.gallery_framingimport. Helper not moved. The crate resolves repo root and imports fromexamples/with a comment naming why. inspection-only thatgallery_framing.pyis byte-identical tomain.catalog.json/run_example.pytake opaque paths — no change.blender-smoke.ymlhas no path filter — no change; the new catalog row is enough.Task 2 — conventions (commit
93ba58b)showcase/README.md: deterministic (no RNG here; DECIMATE COLLAPSE named as the cross-series non-match), budgets declared and recomputed, falsifier breaks one stage, file-local exits including 9, still + gallery (pathology exemption does not apply), composition list. "It rendered without error" is not an assertion.Task 3 —
showcase/shipping-crate/(commit6ba9a44)Procedural beveled body, lid + four-wall slats, iron corner wraps, two materials. Pipeline: unique-cell UVs, Cycles cage bake 256² samples=1, LOD COLLAPSE, convex hull, Unity glTF (
export_yup,export_apply).Composes skills
mesh-editing-and-bmesh,bake-high-to-low,depsgraph-and-evaluated-data,engine-export-presetsand snippetsbake_normal_high_to_low.py,setup_bake_target_image.py,lod_chain.py/decimate_to_budget.py,convex_hull_collider.py,export_preset_unity.py(copied, not imported as a package).Declared vs measured — live-run-proven
Binaries (each printed its own version line):
.scratch/blender-4.5.11-windows-x64/blender.exe4db51e9d1e1e.scratch/blender-5.1.2-windows-x64/blender.exeec6e62d40fa9.scratch/blender-5.2.1-windows-x64/blender.exe9e2066aef7ef[0,1], overlap ≤ 1e-5DECIMATE COLLAPSE is the named cross-series non-match — ratio band, not exact count. Bake pixels are stochastic — gate is
FINISHED+has_data, not byte-identity. Construction uses no RNG. Two consecutive 5.2.1 defaults printed identical552 / 234 / 86.Default and falsifier exits — live-run-proven
--skip-decimateFalsifier skips the LOD DECIMATE stage. Named budget: LOD1 ratio (
1.0000not in[0.32, 0.62]). The same bands that pass all three binaries fail the falsifier — not a design problem.--outputon 5.2.1, nodeviation=:framing_fill y=0.755in 0.70–0.90, margins ≥ 0.038,framing_ok, still written. live-run-proven.Task 4 — added smoke wall-clock — live-run-proven
Check-only (what CI runs). First invocation this session / later warm:
All well under ~90 s. Catalog order puts
bake-normal-high-to-lowbefore this row, so CI will already have compiled Cycles kernels. Recommendation: keep showcase on the default PR smoke path. A separate job /needs-5.1-style label / cron-only gate is not justified at this cost. Revisit when the second and third pieces land if their sum crosses 90 s.blender-smoke.ymlunchanged.Task 5 — canaries — live-run-proven
Local copies of the
validate.ymlinline Python. Windowsglobprints backslashes; CI Linux will printshowcase/shipping-crate. Canaries deleted; clean pass after.Inspection-only
split(".")[0]truncation);data-tagsincludesshowcase; witnesses callout matchesgallery.json.showcase/README.mdrequires framing + still, not those example-run gates. Framing was enforced live. If the crate is the least-designed object next tocollision-hull-proxy/custom-normals-shade, that is a follow-up, not a silent pass.use_nodesdeprecation warning on 5.2 — same as existing examples; not addressed here.Checklist
1 showcase piece(examples stay 59).showcaselistsshowcase/shipping-crate. Version line untouched.showcase/gallery.json, catalog row, README preview, hero/preview webp,python scripts/build_gallery.py, framing gate.--skip-decimate→ exit 9 on all three binaries.Test plan
--skip-decimateon 4.5.11, 5.1.2, 5.2.1.--outputstill + framing on 5.2.1.needs-5.1via REST). Socket Security pending as usual.Do not merge from this PR.