fix(gallery): regenerate the 25 drifted heroes from their code, with contact sheets - #225
Merged
Merged
Conversation
…contact sheets #200's full sweep found 25 committed heroes that no longer matched what their scripts render (3.8-77% of pixels past 2% against a q90 re-encode of the fresh render); the other 54 matched at the encode floor. Several scenes had been edited after their still was made, and the PNG-to-webp step lived in uncommitted scratch scripts, so nobody could regenerate a still and get the committed result. - scripts/render_hero.py: the one committed path. Renders an entry's README --output command (the script's own framing/asset gates run first) and writes the hero (1280x720) and preview (1200x675) as webp q90. - scripts/contact_sheet.py: builds the contact sheet in the committed format and prints each tile's luma, stage, wedge warmth and saturation. - The 25 heroes and their previews are regenerated on Blender 5.2.1 LTS; re-measured, all 25 now match their code (0.00-0.04%). - Contact sheets for those 25, plus the 8 matching showcase pieces that had none (#202), against the regenerated calibration set. - assets/og-card.jpg rebuilt from the regenerated heroes. - CLAUDE.md names the three tools under the contact-sheet gate. Closes #200 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
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
Closes #200 and does the unblocked part of #202.
scripts/render_hero.py.Type
featfix— committed stills disagreed with the codedocs/chore/ci/refactorChanges
scripts/render_hero.py: renders an entry's README--outputcommand. The script's own framing (exit 10) and asset-quality (exit 11) gates run first. It then writes the hero at 1280×720 and the preview at 1200×675, both webp q90, the quality the showcase scripts already use.scripts/contact_sheet.py: writesdocs/gallery/contact-sheets/<name>-contact-sheet.webpin the committed format (2610×402; candidate plus the pinnedarmature-bend,damped-track-aim,bmesh-gear). It prints mean luma, stage (frame-border luma), wedge warmth (R−B over the brightest tenth of the lower half) and saturation per tile. Checked against the committedcartsheet: same size, tiles within encode noise (mean abs diff 0.003).assets/og-card.jpgrebuilt; two of its four tiles were regenerated.CLAUDE.md: one sentence naming the three tools under the contact-sheet gate.Evidence
E:\Blender-Developer-Tools\.scratch\blender-5.2.1-windows-x64\blender.exe(reportsBlender 5.2.1 LTS).render_hero.py:# 25 regenerated, 0 failed. Every script's own render-path gates passed.measure_hero_drift.py: all 25 nowmatchesat 0.00–0.04% against a q90 re-encode. They were 3.8–77% before.damped-track-aim's re-measure hit Three examples write a relative --output to the drive root, not the working directory #222, a relative--outputwritten to the drive root; that fix is in fix(examples): resolve --output against the working directory in three render paths #223. Its committed hero, rendered through an absolute temp path, equals a fresh render exactly (mean abs 0.00000).python tests/check_gallery_images.py→158 image(s)ok.build_gallery.pyleaves every gallery HTML file unchanged; only the image bytes changed.damped-track-aimrenders at 0.1511, not the 0.1722 it had as committed. The band from code is 0.151 … 0.305;armature-bend0.2787 andbmesh-gear0.3048 are unchanged.Contact-sheet verdicts
The criteria are stage darkness, wedge warmth, subject fill, saturation and thumbnail legibility, judged by eye from the sheets, with the measured numbers below. The luma band is 0.151–0.305. Calibration tiles: armature-bend 0.2787 / stage 0.2132 / sat 0.1436; damped-track-aim 0.1511 / 0.1448 / 0.2305; bmesh-gear 0.3048 / 0.2368 / 0.1948.
damped-track-aimhand-pumpstreet-lanternsignpostwooden-bucketwheelbarrowtreasure-chestiron-cauldronwooden-ladderhitching-postanvilshipping-cratepark-benchgrindstonetavern-stoolwooden-barrelfence-kitwatchtowerwater-troughmarket-stallterrain-scattervse-cut-listcampfiregn-modifier-inputswave-displacelight-link-studiocollision-hull-proxycustom-normals-shadetext-version-stamp5.2.1 LTS, the site's primary versionbake-normal-high-to-lowtemp-override-joinwall-torchcompositor-glareSystemic observation, not a per-piece failure: the showcase props, as a family, are less saturated (0.07–0.18) than the calibration set and often thinner in frame. They read as a consistent muted-wood set rather than any single one being the odd one out. That is a style question for the showcase as a whole, so I'm recording it here rather than failing pieces.
Out of band by design, or flagged:
compositor-glare,wall-torch,bake-normal-high-to-lowandtext-version-stampare emissive or deliberately bright. Every one was already above the band as committed, and each is now darker, closer to the band.temp-override-joinis the one stage-darkness flag, filed as temp-override-join hero: stage renders brighter than the calibration set #224. Relighting its script is a separate content change.Not done
Checklist
CLAUDE.mdedit is deliberate and one sentence.Signed-off-by:present.🤖 Generated with Claude Code