Skip to content

fix(showcase): rebuild cart and stone-well joints, with eight new hygiene budgets - #206

Merged
TMHSDigital merged 4 commits into
mainfrom
quality/cart-stone-well-ngon
Sep 22, 2026
Merged

TMHSDigital merged 4 commits into
mainfrom
quality/cart-stone-well-ngon

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Quality pass over three items: two showcase pieces on Track A and one
check-only example on Track C. Both showcase pieces were the weakest in
the tree by budget coverage — 18 exit codes and two falsifiers each,
last touched in #171, before the joint-fit, named-support,
seat-conformance and mirror-symmetry convention classes existed.

Every defect below was found by rendering an inspection sheet to
.scratch/ (six orthographic views, two three-quarters, a clay pass, a
wireframe overlay, joint close-ups, a ground close-up) and looking at
the images
. None of them is visible in the script.


1. showcase/cart — Track A

Defects found

# Defect View that revealed it
1 The iron tyre's inner cylinder and the felloe's tread are the same surface — 32 coplanar cross-shell face pairs, 16 per wheel, every one at 0.0000 mm separation. Rendered as grey speckle on the rim. Clay three-quarter (speckle at 10 o'clock on the near wheel, in the same place in the clay, wireframe and material passes, so not shadow noise); confirmed by measurement
2 The felloe was a 16-gon. The chords read as a polygon at hero size, and the facet facing the key light rendered as a hard white plate. Committed hero; top orthographic (white rectangles on both tyres); clay three-quarter
3 The iron read as black plastic, not metal — base colour 0.13 at roughness 0.32, darker and glossier than every sibling piece (hitching-post 0.16/0.48, wooden-ladder 0.18/0.48). Committed hero; material three-quarter
4 Every run left a bdt_cart_*.glb in the repo root. git status after a run

Defect 1 is the one that matters: it is a construction bug
(r_mid = RIM_OUTER + TYRE_T/2, radial_t = TYRE_T/2 makes
r_in == RIM_OUTER exactly), it shipped, and no budget could see it.

Fixes, and why they are structural

  • Tyre: inner radius is now derived from the felloe's outer radius
    minus a named interference (TYRE_SEAT), and the tread from the
    felloe plus its own thickness. The band is hooped onto the rim and
    still owns the ground contact. A nudge to one radius would have
    reopened the moment RIM_RADIAL or TYRE_T changed; deriving both
    ends from the host surface survives that.
  • Silhouette: WHEEL_SEGMENTS = 24, named, used by both rings and
    by the seat-depth binning, so the budget and the geometry cannot
    drift apart.
  • Material: moved inside the range its sibling pieces already use,
    and the wear colour lifted off near-black so the noise varies the
    surface at all.

AABB is unchanged at (1.5393, 0.7486, 0.6400) — the tread radius
did not move.

New hygiene budgets

All recomputed from the generated mesh. Measured identically on
4.5.11 LTS / 5.1.2 / 5.2.1 LTS:

Budget Measured
Coplanar cross-shell face pairs (hay-bale's combinatorics and constants, copied not imported) 0 (was 32)
Named supports — each tyre's own zmin, not just the AABB's +Y 0.000000, −Y 0.000000
Tyre seat depth, banded, per angular station [0.00400, 0.00400] over 48 stations
Wheel mirror in Y — position and extent 0.00000 mm

Falsifiers

Proven on all three binaries. Magnitudes sized to stay inside
BBOX_TOL so the AABB gate (8) cannot steal the failure.

Flag Target budget 4.5.11 5.1.2 5.2.1
default — 0 0 0
--skip-decimate LOD1 ratio 9 9 9
--lift-z AABB grounded 16 16 16
--flush-tyre coplanar pairs (0 → 48) 15 15 15
--sink-tyre tyre seat band (0.0090) 18 18 18
--float-wheel named supports (+Y 0.003, AABB still grounded) 16 16 16
--skew-wheel wheel mirror (6.000 mm) 19 19 19

--flush-tyre restores exactly the bug this piece was rebuilt to
remove, so the budget is proven against the real defect and not a
synthetic one.

Triangles: 2600 → 2856. Band re-fitted to 2760–2960, which is
narrower than the 2470–2900 it replaces (200 wide vs 430) and
centred on the measurement — a tightening, not a widening.

Inspection rounds: 2.

Remains (not fixed, reported rather than hidden)

  • The far wheel is half-occluded by the bed and reads as floating in
    the hero.
  • The shafts are constant-section sticks with no taper and no crossbar.
  • The bed slats barely read; their ends show as small tabs under the
    bed frame.
  • The wood is one flat value across the whole prop.

None of these is measurable without inventing a budget that would fail
on a correct model, so none became an assertion.


2. showcase/stone-well — Track A

Defects found

# Defect View that revealed it
1 The four roof posts stood at 0/90/180/270° while the roof's 4-gon cone is rotated π/4, putting its corners on the diagonals. The posts were under the midpoint of each eave: the roof's four corners cantilevered 0.80 m unsupported, and one post stood dead centre in the well mouth from every orthogonal direction. Front orthographic showed three post columns where a four-post square shows two
2 Each post's bottom face landed exactly on the coping's top face — 4 coplanar cross-shell pairs, one per post. Measurement; front orthographic (post feet sitting on a pale slab)
3 EAVE_HALF was derived from the post ring plus an overhang, giving a 1.64 m roof over a 1.08 m drum (1.52×). It read as an umbrella, or a bird feeder. Clay three-quarter
4 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. The piece's whole subject was down the shaft. Clay three-quarter; front orthographic
5 Same .glb leak as the cart. git status

Fixes, and why they are structural

  • Posts move to the diagonals via a named POST_ANGLES, and the
    windlass, crank arm and grip turn with them, so the drum still spans
    an opposed pair of posts. Moving the roof instead would have been the
    nudge: the posts must be under the corners, not the corners moved to
    wherever the posts happen to be.
  • Tenon: POST_BOTTOM is derived from the coping top minus
    POST_SEAT, and POST_TOP is held fixed, so nothing above the posts
    moves and the eave, peak and overall height are untouched.
  • Roof: EAVE_HALF = R_OUTER + CURB_OUT + EAVE_CLEAR — derived from
    what the roof must cover, with the overhang falling out of it. AABB
    1.640 → 1.312 over a 1.08 m drum (1.21×).
  • Bucket: BUCKET_Z derived from the coping top plus a named
    clearance, so it cannot drift back down the shaft when the masonry
    changes.

The tenon and bucket budgets measure against the coping top read off
the generated mesh
(max z over the stone material), not against
CURB_TOP — an assertion that restates the builder's own constant
witnesses nothing.

New hygiene budgets

Budget Measured (all three binaries)
Coplanar cross-shell face pairs 0 (was 4)
Named supports — all 12 bottom-course stones, not just the lowest 12/12, worst 0.000000
Post tenon depth, banded, per post [0.01800, 0.01800] over 4 posts
Post-to-hip-corner plan offset, wrapped angular 0.00000 rad
Bucket clearance above the measured coping 0.10000 m

Falsifiers

Flag Target budget 4.5.11 5.1.2 5.2.1
default — 0 0 0
--skip-decimate LOD1 ratio 9 9 9
--lift-z AABB grounded 16 16 16
--stand-posts coplanar pairs (0 → 4) 15 15 15
--float-stone named supports 16 16 16
--shallow-tenon post tenon band (0.0040) 18 18 18
--drop-bucket bucket clearance (0.515) 18 18 18
--turn-posts post placement (0.52360 rad) 19 19 19

Two falsifiers had to be re-aimed, which is the point of declaring
the target:

  • --stand-posts seats the posts flush and returns them to the
    axis. Flush alone, at the corrected 45°, leaves no coping top face
    within COPLANAR_CENTRE_MAX of a foot, so it fell through to the
    tenon band (18) and witnessed nothing about z-fighting.
  • --turn-posts rotates by exactly one curb facet (30°). At 0.12 rad
    the feet land on different coping geometry and the stone–wood gap
    gate steals it (observed exit 17, gap 0.01439 > 0.008); at a
    full 45° the crank grip swings past the eave and the AABB gate steals
    it (observed exit 8, bbox (1.3600, 1.3120, 1.7606)). One facet
    is the only rotation whose local seat geometry is identical by
    symmetry. Same trap stone-archway's --flat-arch fell into.

I also had to abandon a --twin-coping falsifier: duplicating a coping
block reuses its UVs, so the UV-overlap gate (7) fires before the
z-fight gate. Recorded here so the next run does not retry it.

Triangles: 9380, unchanged. Collider ceiling 320 → 380: the
convex hull of the resized roof measures 346. That is a budget moving
with a deliberate geometry change, documented at the constant.

Inspection rounds: 2.

Remains

  • The top masonry course splays outward far enough that the well head
    reads as rubble rather than a dressed coping.
  • The crank is a thin stub at hero size.

3. examples/ngon-triangulate — Track C

Contract frozen. No assertion, no exit code and no witnessed
behaviour changed.

A falsifier that falsified nothing

--skip-triangulate printed an error and returned 4 from its own
branch
, before the repair and before the assertions it exists to
break. The flag announced a failure rather than causing one, and the
handling assertions never ran. It now skips bmesh.ops.triangulate and
lets those assertions catch the unrepaired mesh, which reports the real
measurement: triangulate handling failed ngons=1 tris=0 quads=4.

Exit codes, before and after

Identical on all three binaries:

Run 4.5.11 5.1.2 5.2.1
default 0 0 0
--no-dissolve 3 3 3
--skip-triangulate 4 4 4

Re-verification of the documented behaviour

Mesh.calc_tangents aborts on the constructed hexagon with a message
that is byte-identical on 4.5.11 LTS, 5.1.2 and 5.2.1 LTS:

Error: Tangent space can only be computed for tris/quads, aborting

TANGENT_ABORT = "tris/quads" is therefore correct and version-stable.
Default measurements also match on all three: ngons=1 loops=6 faces_before=5 tris=4 quads=4 loops_after=28 tangents=ok.

README

Adds the verified abort text, a falsifier table naming what each flag
breaks and the assertion it lands on, and 4.5/5.2 API links for
calc_tangents, bmesh.ops.dissolve_edges and bmesh.ops.triangulate
— it had no doc links at all.


4. showcase/README.md conventions

Seven conventions every future piece inherits, each from a defect above
that no existing budget could see:

  1. A band is hooped onto its host, never set flush against it. The
    obvious spelling makes the band's inner cylinder and the host's
    tread the same surface.
  2. A member is tenoned into its seat, never stood on it — and the
    seat is measured against the host surface read off the generated
    mesh, not the builder's constant.
  3. Posts go under a roof's corners, not the middle of its eaves —
    with the corners taken from the pooled eave vertices, because
    pulling them from one shell picks a fascia board whose own extremes
    sit 90° off the corners it is nailed to (this cost me a false
    failure of 1.549 rad on a correct model).
  4. A roof is sized from what it must cover, not from what carries
    it
    — and expect the collider budget to move with it.
  5. The subject hangs where it can be seen, as a banded clearance.
  6. Mirrored assemblies pair and compare, with the falsifier's
    displacement sized inside BBOX_TOL.
  7. Segment counts are a silhouette budget, not a triangle budget —
    and re-fit the triangle band narrower, centred on the new count.

Plus this pass's falsifier flags registered in the shared list.


Gates

  • Framing gate, 5.2.1, no deviation=: cart fill 0.806 (band
    0.70–0.90), margins 0.153/0.150/0.150/0.044, framing_ok; well fill
    0.861, margins 0.278/0.275/0.033/0.106, framing_ok.

  • Contact sheets committed at
    docs/gallery/contact-sheets/cart-contact-sheet.webp and
    stone-well-contact-sheet.webp, each against the pinned set
    (armature-bend, damped-track-aim, bmesh-gear).

    Criterion cart stone-well calibration range
    Mean luminance 46.50 49.03 43.89 – 77.66
    Saturation 0.1697 0.1369 0.1449 – 0.2386
    Stage darkness pass pass —
    Wedge warmth pass pass —
    Subject fill pass marginal — 0.861 in Y but 0.447 in X, the least-filling tile —
    Thumbnail legibility pass — reads as a two-wheel cart, rim now reads round pass — reads as a wishing well, bucket visible —

    stone-well's saturation is below the calibration floor (0.1369 vs
    0.1449): grey stone against one warm roof. Stated rather than
    massaged.

    The asset-sheet gate is scoped to asset-type examples; its
    pinned reference set is four examples, and every recent showcase pass
    (feat: add crate-stack and stone-archway showcase pieces #199, fix(showcase): hay-bale quality pass with five new hygiene budgets, and exit-pre-sidecar doc accuracy #205) shipped a contact sheet only. Followed that precedent.

  • Determinism: both pieces run twice per binary, six runs each, all
    exit 0 with byte-identical measurements within each binary. Base
    triangles identical across all three series (2856 / 9380). The only
    cross-version difference is cart LOD2 (628 on 4.5/5.1, 616 on 5.2 —
    DECIMATE COLLAPSE), r2 0.2199 vs 0.2157, both inside the declared
    band.

  • tests/check_falsifier_targets.py: 179 falsifiers across 28
    showcase pieces
    , passed.

  • Generated gallery HTML re-read after build_gallery.py: card
    alt text and the witnesses callouts on both detail pages are
    complete and untruncated (the teaches.split(".")[0] class of bug
    from fix: gallery alts truncate on dotted API paths + version example prompt #68).

Proven by live run vs. inspection

Live run on all three binaries (.scratch/blender-4.5.11-windows-x64/blender.exe
reporting 4.5.11 LTS, blender-5.1.2-windows-x64 reporting 5.1.2,
blender-5.2.1-windows-x64 reporting 5.2.1 LTS): every exit code in
every table above, every measured budget figure, the two mis-aimed
falsifier exits (17 and 8) quoted with their messages, the
calc_tangents abort text, determinism, the framing gate, and the
temp-export cleanup.

Inspection only: the contact-sheet verdicts other than the two
measured numbers are my judgement of the committed composites, and the
"remains" lists are judgement calls, not measurements.

Inspection renders stayed in .scratch/, which is gitignored.

🤖 Generated with Claude Code

TMHSDigital and others added 4 commits September 22, 2026 17:44
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>
…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>
`--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>
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>
@TMHSDigital TMHSDigital added the needs-5.1 Opt-in Blender 5.1 smoke on this PR. Default matrix stays 4.5 + 5.2. Auto-label will not apply this. label Sep 22, 2026
@github-actions github-actions Bot added examples Runnable smoke-gated examples under examples/ showcase Budget-conformance props under showcase/ documentation Improvements or additions to documentation labels Sep 22, 2026
@TMHSDigital
TMHSDigital merged commit 480a159 into main Sep 22, 2026
12 checks passed
@TMHSDigital
TMHSDigital deleted the quality/cart-stone-well-ngon branch September 22, 2026 21:52
TMHSDigital added a commit that referenced this pull request Sep 22, 2026
… pass (#207)

* docs(showcase): conventions for shading, material slots, fastener seats and section budgets

Adds four conventions from the chopping-block quality pass: equal facets on an organic or turned body read as staves, so smooth it and carry the surface in the material; one substance per material slot; fasteners aimed down the host's surface normal with a radial seat band (--float-rivets, exit 18); a recognisable cross-section asserted as a ratio band (--round-haft, exit 19). Also records that a thickening falsifier scales only the axis its budget measures.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>

* fix(showcase): chopping-block quality pass with rivet-seat and haft-section budgets

The log read as a tub: flat-shaded equal facets made staves, the hoop was a flat-shaded stripe with piano-key highlights, the end grain was a triangle-fan sunburst, a pale ring ran round the base, and the haft was a round dowel with a pencil-stub knob in the bark's material. The generator now smooth-shades the log and hoop and carries bark furrows, growth rings and drying checks in the materials, keeps bark down to the ground, builds the hoop as a lapped strip with two rivets aimed down the host normal, and sweeps an oval haft that hooks at the knob in its own material slot. New budgets: rivet seat band and proud minimum (exit 18, --float-rivets) and haft section ratio (exit 19, --round-haft). --fat-haft now thickens across the cheeks only so it still fails on eye clearance. Triangle band, AABB and collider ceiling re-fitted to the new measurements. The temp glTF is removed after measuring.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>

* fix(examples): gn-socket-rename renders its Random Value axis

Presentation only; the contract, assertions and exit codes are unchanged. The column shader now draws gauge graduations from the evaluated POINT gauge_h attribute, so an unwired Random Value renders a blank column where before the still looked identical either way. Brushed copper with engraved ticks from each corner, a steel plinth that no longer mirrors the dark stage into a void, the rim light cut so its floor reflection stops lifting the stage, and an 18 degree presentation turn so two faces show.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>

* fix(examples): gn-bundle-roundtrip exit-5 falsifier and re-verified version table

Exit 5 had no falsifier. --mismatch-mark renames only Separate's Float item, so count and bbox pass and bundle_mark reads 0.0, exit 5. The README now states the RNA per version as a table, re-verified by probe on 4.5.11, 5.0.1, 5.1.2 and 5.2.1: GeometryNodeCombineBundle is undefined on all of 5.x, not only 5.2; on 4.5 it exists with the experimental flag off and evaluates empty. --force-run on 4.5 is documented as exit 1, not under exit 3. Assertions and exit codes unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>

* docs(gallery): regenerate the index and the stale cart and stone-well pages

Output of scripts/build_gallery.py. The cart and stone-well detail pages were not regenerated after #206 changed their scripts and READMEs.

Co-Authored-By: Claude Opus 5.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.5 (1M context) <noreply@anthropic.com>
TMHSDigital added a commit that referenced this pull request Sep 23, 2026
…sifier-table check (#210)

All three READMEs gained falsifier tables in #205 and #206, and the
static checker already parses them (28 pieces, 181 falsifiers), but they
stayed listed in KNOWN_UNDOCUMENTED. That exemption is now a hole: if
one of those tables were deleted, the checker would skip the piece
silently instead of failing it.

Every falsifier was run, not read: the runtime mode reports 19/19 exits
matching their declared budgets on Blender 5.2.1, and a direct sweep
gives the same 19 codes on 4.5.11.

Closes #203

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation examples Runnable smoke-gated examples under examples/ needs-5.1 Opt-in Blender 5.1 smoke on this PR. Default matrix stays 4.5 + 5.2. Auto-label will not apply this. showcase Budget-conformance props under showcase/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant