Commit d6fa235
authored
feat: measurable framing gate + restage hygiene/origin heroes into the band (#107)
* feat: add shared framing-measurement helper for gallery renders
Layer 1 framing was the only mandatory render rule with no number
attached, so agents eyeballed it and overshot in both directions.
examples/gallery_framing.py measures hero fill (0.70-0.90 of frame in
at least one axis) and all-elements edge margins (>= 0.02) on a staged
scene, defaulting to a silhouette alpha matte (exact for round or
angled subjects) with a bbox-projection strategy documented as the
cheap alternative for boxy subjects. check_framing prints the measured
values in the house log style and exits 10 on violation, render path
only, so check-only smoke runtimes are untouched. It also establishes
the repo's cross-example sharing mechanism: a __file__-relative
sys.path shim that keeps every example standalone-runnable from the
repository root.
Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
* fix: restage hygiene and origin heroes into the framing band
Both renders sat outside the Layer 1 band in opposite directions, the
failure mode the new helper exists to catch. mesh-hygiene-audit was at
0.391 fill (two small valves in a large empty stage); the camera moves
from 38mm at (0,-7.8,1.9) to 50mm at (0,-5.0,1.5), landing fill at
0.803x0.733 with all margins >= 0.05. The backlit through-hole and
loose-vert bead staging is untouched and no light shape re-enters the
frame. prop-origin-transform was at 0.906 fill with the shipped asset
cropped at both side edges and the tops; the camera pulls back from
(1.15,-5.35,1.45) to (1.15,-5.9,1.55) only until margins clear, landing
fill at 0.816x0.678 with margins >= 0.072. Both render paths now call
gallery_framing.check_framing before the beauty render (exit 10, no
artifact on violation); check code and closed forms are unchanged, and
check-only output is byte-identical to main on 5.1.2 and 4.5.11.
Contact sheets recomposited against the pinned calibration set.
Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
* docs: codify the framing band in VISUAL-STYLE and CLAUDE gates
Layer 1 framing now carries its numbers where every run reads them:
the 0.70-0.90 fill band in at least one axis, the 2 percent minimum
edge margin, the hero-fill versus all-elements-margin distinction, and
the instruction to measure with examples/gallery_framing.py rather
than eyeball. CLAUDE.md's quality gates gain the matching framing-gate
bullet so the standard example prompt inherits the rule by reference,
plus one line naming the cross-example import shim. A read-only survey
of every shipped hero with the helper found 13 examples outside the
band (worklist for a future pass, not fixed here).
Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
* docs: note the shared framing helper in AGENTS.md structure
Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
---------
Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>1 parent 14ed3ed commit d6fa235
17 files changed
Lines changed: 497 additions & 52 deletions
File tree
- docs
- gallery
- assets
- contact-sheets
- mesh-hygiene-audit
- prop-origin-transform
- examples
- mesh-hygiene-audit
- prop-origin-transform
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
97 | 100 | | |
98 | 101 | | |
99 | 102 | | |
| |||
118 | 121 | | |
119 | 122 | | |
120 | 123 | | |
| 124 | + | |
121 | 125 | | |
122 | 126 | | |
123 | 127 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
668 | 668 | | |
669 | 669 | | |
670 | 670 | | |
671 | | - | |
| 671 | + | |
672 | 672 | | |
673 | 673 | | |
674 | 674 | | |
| |||
686 | 686 | | |
687 | 687 | | |
688 | 688 | | |
689 | | - | |
| 689 | + | |
690 | 690 | | |
691 | 691 | | |
692 | 692 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
54 | 64 | | |
55 | 65 | | |
56 | 66 | | |
| |||
Loading
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | | - | |
| 199 | + | |
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
229 | 234 | | |
230 | 235 | | |
231 | 236 | | |
| |||
531 | 536 | | |
532 | 537 | | |
533 | 538 | | |
| 539 | + | |
534 | 540 | | |
535 | 541 | | |
536 | 542 | | |
| |||
694 | 700 | | |
695 | 701 | | |
696 | 702 | | |
697 | | - | |
698 | | - | |
| 703 | + | |
| 704 | + | |
699 | 705 | | |
700 | | - | |
| 706 | + | |
701 | 707 | | |
702 | 708 | | |
703 | 709 | | |
| |||
718 | 724 | | |
719 | 725 | | |
720 | 726 | | |
721 | | - | |
| 727 | + | |
722 | 728 | | |
723 | | - | |
| 729 | + | |
724 | 730 | | |
725 | 731 | | |
726 | | - | |
| 732 | + | |
727 | 733 | | |
728 | 734 | | |
729 | 735 | | |
| |||
746 | 752 | | |
747 | 753 | | |
748 | 754 | | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
749 | 766 | | |
750 | | - | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
751 | 771 | | |
752 | 772 | | |
753 | 773 | | |
| |||
772 | 792 | | |
773 | 793 | | |
774 | 794 | | |
775 | | - | |
776 | | - | |
777 | | - | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
778 | 798 | | |
779 | 799 | | |
780 | 800 | | |
| |||
0 commit comments