Commit 480a159
fix(showcase): rebuild cart and stone-well joints, with eight new hygiene budgets (#206)
* fix(showcase): hoop the cart's tyre onto the felloe and round the rim
The tyre's inner radius was set equal to the felloe's outer radius
(`r_mid = RIM_OUTER + TYRE_T/2, radial_t = TYRE_T/2`), which put both
surfaces on one plane for every segment: 32 coplanar cross-shell face
pairs, 16 per wheel. It was visible as speckle on the committed hero
and in a clay pass, and no budget could see it.
Derive the tyre's inner radius from the felloe's outer radius minus a
named interference (TYRE_SEAT) and its tread from the felloe plus its
own thickness, so the band bites into the rim and still owns the ground
contact. Wheel segments 16 -> 24: at 16 the rim read as a polygon and
the facet facing the key light rendered as a hard white plate. Iron
raised from (0.13, rough 0.32) to (0.20, rough 0.50), inside the range
its sibling pieces use, because the tyre was reading as black plastic.
Four new budgets, each recomputed from the generated mesh:
- coplanar cross-shell face pairs = 0 (hay-bale's combinatorics, copied)
- each tyre's own zmin on the floor, not just the AABB's
- tyre seat depth banded per angular station, 48 stations
- the two wheels mirrored in Y within 5e-5 m
Four new falsifiers, each landing on its own code and sized to stay
inside BBOX_TOL so the AABB gate cannot steal the failure: --flush-tyre
(15), --sink-tyre (18), --float-wheel (16), --skew-wheel (19).
Also drops the temp .glb once measured — the leak PR #205 found in
hay-bale is in this piece too.
Base triangles re-fitted to 2760-2960: narrower than the 2470-2900 it
replaces and centred on the measured 2856.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix(showcase): put the well's posts under the roof corners and tenon them in
Three structural defects, all found by looking at an inspection sheet:
1. The four roof posts stood at 0/90/180/270 degrees while the roof's
4-gon cone is rotated pi/4, so its corners sit on the diagonals. The
posts were under the midpoint of each eave: the roof's corners
cantilevered 0.80 m unsupported, and one post stood dead centre in
the well mouth in every orthographic view. Posts moved to the
diagonals, and the windlass, crank and grip turn with them.
2. Each post's bottom face landed exactly on the coping's top face —
4 coplanar cross-shell face pairs, one per post. Posts are now
tenoned POST_SEAT into the coping, with POST_TOP held fixed so
nothing above them moves.
3. EAVE_HALF was derived from the post ring plus an overhang, giving a
1.64 m roof over a 1.08 m drum: an umbrella, not a well house. It is
now derived from what the roof must cover — the curb's own radius
plus a named clearance — which brings the AABB to 1.312 m.
The bucket hung at z=0.68 with only its rim level with the coping:
invisible in the hero and in all six orthographic views. It now hangs
BUCKET_CLEAR above the measured coping top and reads in the still.
Five new budgets, each recomputed from the generated mesh — the tenon
and the bucket clearance measure against the coping top read off the
stone material, not against the constant the builder used:
- coplanar cross-shell face pairs = 0
- all 12 bottom-course stones on the floor, not just the lowest
- post tenon depth banded, per post
- each post within 0.02 rad in plan of a roof hip corner
- bucket clearance banded above the coping
Five new falsifiers. Two needed re-aiming to hit their own budget:
--stand-posts also returns the posts to the axis, because flush alone
at 45 degrees leaves no coping face within COPLANAR_CENTRE_MAX of a
foot; --turn-posts rotates by exactly one curb facet, because any other
angle sets the feet on different coping geometry and the gap gate (17)
steals the failure, and a full 45 degrees swings the crank past the
eave and fails the AABB gate (8).
Collider ceiling 320 -> 380: the convex hull of the resized roof
measures 346. Also drops the temp .glb once measured.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* fix(examples): make ngon-triangulate's falsifier actually falsify
`--skip-triangulate` printed an error and returned 4 from its own
branch. The flag announced a failure rather than causing one, and the
handling assertions it exists to falsify never ran. It now skips the
repair and lets those assertions catch the unrepaired mesh, which
reports the real measurement (`ngons=1 tris=0 quads=4`).
The contract, the assertions and the exit codes are unchanged. Proven
identical before and after on 4.5.11 LTS, 5.1.2 and 5.2.1 LTS: default
0, --no-dissolve 3, --skip-triangulate 4.
README: adds the verified `calc_tangents` abort text, which is
byte-identical on all three binaries, a falsifier table naming what
each flag breaks, and 4.5/5.2 API links for calc_tangents,
dissolve_edges and triangulate.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
* docs(showcase): fold this pass's defects into the shared conventions
Seven conventions every future piece inherits, each from a defect in
this pass that no existing budget could see: a band is hooped onto its
host and never set flush against it; a member is tenoned into its seat
and never stood on it, measured against the host read off the mesh;
posts go under a roof's corners, with the corners taken from the pooled
eave vertices rather than one fascia board; a roof is sized from what
it covers, not from what carries it; the subject hangs where it can be
seen; mirrored assemblies pair and compare, with the falsifier sized
inside BBOX_TOL; and segment counts are a silhouette budget.
Also registers this pass's falsifier flags in the shared list and
regenerates the gallery for the two rebuilt pieces.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
---------
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 4e58049 commit 480a159
17 files changed
Lines changed: 1764 additions & 119 deletions
File tree
- docs/gallery
- assets
- cart
- contact-sheets
- stone-well
- examples/ngon-triangulate
- showcase
- cart
- stone-well
Loading
Loading
Large diffs are not rendered by default.
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
903 | 903 | | |
904 | 904 | | |
905 | 905 | | |
906 | | - | |
| 906 | + | |
907 | 907 | | |
908 | 908 | | |
909 | 909 | | |
| |||
1002 | 1002 | | |
1003 | 1003 | | |
1004 | 1004 | | |
1005 | | - | |
| 1005 | + | |
1006 | 1006 | | |
1007 | 1007 | | |
1008 | 1008 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
25 | 57 | | |
26 | 58 | | |
27 | 59 | | |
| |||
41 | 73 | | |
42 | 74 | | |
43 | 75 | | |
44 | | - | |
| 76 | + | |
45 | 77 | | |
46 | 78 | | |
47 | 79 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
117 | 119 | | |
118 | 120 | | |
119 | 121 | | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
127 | 128 | | |
128 | 129 | | |
129 | 130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
45 | 52 | | |
46 | 53 | | |
47 | 54 | | |
| |||
187 | 194 | | |
188 | 195 | | |
189 | 196 | | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
190 | 254 | | |
191 | 255 | | |
192 | 256 | | |
| |||
0 commit comments