Skip to content

Commit ddde8ce

Browse files
TMHSDigitalclaude
andcommitted
fix(showcase): remodel basketball-hoop as a court-side hoop on a painted concrete pad
At thumbnail size the hoop read as a thin line drawing: horizontal fill 0.20, a 4.5 in round pole and thin braces, and a plain board face with nothing around it. It is rebuilt as a driveway hoop standing on its own patch of court: - a two-pour concrete pad (5.2 x 6.6 m, 100 mm) with a sealed expansion joint; the second pour sits 1.5 mm under the first - faded, worn court paint set into the slabs: baseline, a filled green key with lane lines, a block and three ticks each side, free-throw line and circle, and part of a three-point arc cut off by the pad (a driveway layout scaled to the pad, not regulation) - two pebbled size-7 basketballs with black seam tori, each resting on the concrete, one on the court and one by the pole's foot - a 6 in rounded-square pole swept in one piece through the gooseneck, with a welded gusset web inside each bend; its plate is sunk 4 mm into the slab, with four gussets and four anchor bolts set 70 mm into it - a square pad with seam grooves and a hook-and-loop flap; bolted square clamp sleeves; thicker braces (44 mm) - a 50 mm satin aluminium board frame, a thicker navy edge pad - a breakaway rim mount: bigger flange plate, hinge barrel and spring housing on the bracket - a knot at each of the 72 net crossings - twelve materials (was six): powder-coat steel and aluminium carry a studio reflection term (after espresso-machine), concrete with stains and speckle bump, worn line and key paint, pebbled ball leather, seams - a long-lens hero (70 mm from 20 m) so the court runs toward the camera without its near corner swelling; relit to the calibration luma Coplanar hygiene was fixed by staggering parts, not by widening bands: each overlapping paint group has its own top and sink, the free-throw circle is 6 mm wider than the lane, the plate is sunk rather than laid on the slab, the border line narrows to 44 mm so it clears the square's bottom line, and the two bolt heads on each clamp face stand 1 mm apart. New budgets and falsifiers (checked before the component check, so a floated part names its own budget): - Ball seat (exit 21): 2 balls, fitted radius 0.1194 +/- 0.002, lowest vertex 0.5-4 mm into the slab under it (measured 0.1194 / 2.0 mm). - Anchor bolts (exit 22): 4 bolts, foot >= 50 mm under the slab top, head >= 30 mm over the plate (70 / 62 mm). - Court paint (exit 23): 18 shells, top 0.5-3 mm over their slab, sink 1-4 mm under it (1.0-2.2 / 1.4-3.0 mm). - Asset-quality remap moves from 21 to 24. Kept: brace bite, net seat, rim height (now measured over the slab under the ring), level, size, board gap, one connected assembly. Budget changes: - Base tris 8700-10000 -> 18500-20500 (measured 19564; LOD 0.4984/0.2183) - Materials 6 -> 12, face floors per material - Outer AABB -> (5.200, 6.600, 4.050) m; collider 58 tris (ceiling 220) - Shells 93 -> 209, one connected assembly Falsifiers (flag -> measured -> exit), all on the final code: --skip-decimate LOD1 1.0000 9 --stray-vert loose_v 1 15 --lift-z zmin 0.05000 16 --short-brace rail bite -0.02150 17 --drop-net worst eye-to-loop 0.03200 18 --tilt-rim tilt 3.000 deg 19 --loose-pad 2 components 20 --float-ball sink -0.01800 21 --short-bolts embed -0.0125 22 --float-paint sink -0.00460..-0.00300, top 0.0070+ 23 tests/check_falsifier_targets.py --run --only basketball-hoop passes. Evidence (live runs, local): - .scratch/5.2/blender-5.2.1-windows-x64/blender.exe (Blender 5.2.1 LTS). Two default runs exit 0 with identical measured lines; hygiene all 0 including coplanar cross-shell pairs. - Framing: fill x 0.800 (was 0.20), y 0.856; margins l .113 r .088 b .072 t .072. - Contact sheet: luma 0.2419 (calibration 0.2369-0.2428), stage 0.2276, warmth +0.044, sat 0.2126 (band 0.1525-0.2367). Before, the hoop was a thin silhouette in the left third of a dark frame; now the board, net, pole and court all read at thumbnail size. - Asset sheet: the hoop now reads as a hoop on a painted court with balls; it is not the least-designed object in the lineup (the hydrant is simpler). Before it was a thin stick figure beside the others. - build_gallery, check_site_links and every tests/check_*.py pass. - 4.5 LTS and 5.1 were not run locally. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 9be99b7 commit ddde8ce

11 files changed

Lines changed: 2537 additions & 778 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
145145
<a href="showcase/butter-churn/"><img src="showcase/butter-churn/preview.webp" width="24%" alt="Butter churn: a tall staved oak churn narrowing toward the top, bound by three iron hoops, with a two-board lid and a maple dasher handle rising through it, on a dark studio floor" /></a>
146146
<a href="showcase/bookshelf/"><img src="showcase/bookshelf/preview.webp" width="24%" alt="Bookshelf: a stained wooden bookcase of cloth and leather hardbacks, some standing, some stacked flat and two leaning on their neighbours, on a dark studio floor" /></a>
147147
<a href="showcase/book-trolley/"><img src="showcase/book-trolley/preview.webp" width="24%" alt="Book trolley: a double-sided wooden library book truck on four casters, two sloped troughs of hardbacks leaning back spines out and loose books stacked on its deck, on a dark studio floor" /></a>
148-
<a href="showcase/basketball-hoop/"><img src="showcase/basketball-hoop/preview.webp" width="24%" alt="Basketball hoop: an outdoor in-ground goal with a padded steel gooseneck pole, a framed backboard with a red shooter's square, an orange rim and a white corded net, on a dark studio floor" /></a>
148+
<a href="showcase/basketball-hoop/"><img src="showcase/basketball-hoop/preview.webp" width="24%" alt="Basketball hoop: an in-ground goal with a padded square gooseneck pole, a framed backboard with a red shooter's square, an orange rim and a white net, standing on a concrete court pad with a faded green key, free-throw circle and three-point arc, two basketballs on the concrete" /></a>
149149
<a href="showcase/pine-tree/"><img src="showcase/pine-tree/preview.webp" width="24%" alt="Pine tree: a mature Scots pine with a tall bare bole, dead lower limbs and a broad, rounded crown of soft blue-green needle brushes over red limbs, on a small disc of needle-litter soil with mossy stones, on a dark studio floor" /></a>
150150
<a href="showcase/desk-lamp/"><img src="showcase/desk-lamp/preview.webp" width="24%" alt="Desk lamp: a red balanced-arm lamp with a stepped base, parallel-rod arms, chrome springs and knurled knobs, and a domed shade glowing around its bulb, on a dark studio floor" /></a>
151151
<a href="showcase/quad-drone/"><img src="showcase/quad-drone/preview.webp" width="24%" alt="Quad drone: a white-and-graphite camera quadcopter on four carbon arms with red lock rings, twin-blade props, rubber-footed skids and a three-axis gimbal camera, on a dark studio floor" /></a>
@@ -239,7 +239,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
239239

240240
[`book-trolley`](showcase/book-trolley/) — procedural double-sided library book truck on four casters, forty-seven hardbacks in four sloped troughs, whose every book's fore-edge depth in its backrest is recomputed as a band beside its shelf seat, through the same pipeline. Falsifiers `--off-back` and `--deep-back` exit 21, `--skew-caster` exits 19.
241241

242-
[`basketball-hoop`](showcase/basketball-hoop/) — the first `sports` piece: procedural in-ground basketball goal (gooseneck pole swept in one piece, braced board, regulation rim, twelve-loop tapered net), whose rim top height, inside diameter, board gap and level, and every net loop threaded on its rim hook, are recomputed from the mesh, through the same pipeline. Falsifiers `--drop-net` exits 18, `--tilt-rim` 19, `--loose-pad` 20.
242+
[`basketball-hoop`](showcase/basketball-hoop/) — the first `sports` piece: procedural in-ground basketball goal on a patch of driveway court (square gooseneck pole swept in one piece with bend webs, bolted into a two-pour concrete pad, braced board in an aluminium frame, breakaway regulation rim, knotted twelve-loop net, faded court paint, two basketballs), whose rim height over the court, inside diameter, board gap and level, every net loop threaded on its rim hook, each ball resting on its slab, the anchor bolts set through the plate into the slab, and every paint line set into its slab, are recomputed from the mesh, through the same pipeline. Falsifiers `--drop-net` exits 18, `--tilt-rim` 19, `--loose-pad` 20, `--float-ball` 21, `--short-bolts` 22, `--float-paint` 23.
243243

244244
[`pine-tree`](showcase/pine-tree/) — the first `nature` piece: procedural mature Scots pine on a needle-litter soil disc (a buttressed trunk with plated lower bark bedded in the soil, surface roots, eight seeded whorls of heavy crooked limbs, 113 overlapping brushes of long thin needle strands each on its own twig, dead stubs and limbs, hanging cones, fallen cones, mossy stones and sticks), whose every limb's seat in the bark, whorl spacing, trunk plumb and crown balance, every clump seated on its own carrier and the ground cover bedded in the soil are recomputed from the mesh, through the same pipeline. Falsifiers `--float-branches` exits 17, `--lean-crown` 19, `--bunch-whorls` 20, `--short-twigs` 22, `--float-litter` 23.
245245

‎ROADMAP.md‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
2.57 KB
Loading
5.8 KB
Loading

0 commit comments

Comments
 (0)