Skip to content

Commit 4dcb601

Browse files
TMHSDigitalclaude
andcommitted
fix(showcase): remodel pine-tree as a dense, plated-bark mature Scots pine
The pine was the weakest nature piece. It sat small in the frame, its crown was a sparse stack of bottlebrush shoots that read as holly, and the branch skeleton showed through. It is rebuilt as a mature Scots pine: - a taller bare bole (to ~3 m) with twelve deep plate ridges fading out between 1.9 and 3.0 m, and bark shifting from grey-brown plates to fox-red over 1.9-3.4 m, so the upper bole and every limb are red - eight whorls of 3-5 heavy crooked limbs (was ten of 4-6), long and near level low down and shorter and steeper above, so the crown is broad and rounded (9.3 x 7.9 m) with a flattened top - 113 needle brushes. Each is one closed shell: a small dark cube-sphere core (3x3 a side) whose 108 split facets are each drawn out into one long, thin tapered strand. Strands aim outward plus a hashed scatter, so they splay through a dome, not a plane. Every limb, one to three side twigs per limb and the leader end inside their own brush. A Tip point attribute shades each strand from base to point, and a NeedleUV map lays a line down each strand. The soft blue-green tone varies per brush, lighter outside and high. Strands are stylised sprays (~0.4-0.8 m long, a few cm wide); botanical 1-2 mm needles would need ~10x the triangle budget. - five dead stubs and two longer, thicker dead limbs on the bole - a needle-litter soil disc (humus with rust and grey needle streaks): the trunk foot and five roots are bedded in it, with five fallen cones, two mossy cleaved stones and two dead sticks lying on it - six materials (bark, needles, cone, deadwood, soil, stone) - relit: key 3000 -> 5200 W, fill 170 -> 520 W, wedge 1900 -> 2250 W and slightly more saturated, world 0.02 -> 0.052, so luma is in the calibration band Two foliage drafts were rejected in review. Pyramid-faceted pads read as crystal shingles. Wide-facet pom-poms read as flat star rosettes (holly or maple at thumbnail). The small core with scattered thin strands replaced both. New budgets and falsifiers: - Clump seat (exit 22): every brush's own carrier, tagged via a Carry face attribute, has its deepest vertex >= 0.040 m inside the brush (ray-parity signed depth; measured 0.0592-0.1366, 113 brushes). --short-twigs stops every carrier at 0.64 of its pad's radius, same point count: shallowest -0.1955, exit 22. - Ground bedding (exit 23): cones and sticks 0.004-0.040 m under the soil (measured ~0.010), stones 0.015-0.120 (0.045), roots >= 0.030 (0.091), trunk foot >= 0.050 (0.1175). --float-litter lifts the cover 0.08 m: exit 23. - Checks 22 and 23 run before the component check (21), so a falsifier that also detaches parts still names its own budget. - The asset-quality remap moves from 22 to 24. Budget changes: - Base tris 32500-36000 -> 43500-46000 (measured 45852; LOD 0.5000/0.2200) - Outer AABB -> (9.284, 7.932, 7.659) m; DBH 0.266 -> 0.377 (0.3768) - Whorls 10 -> 8, limbs 3-5 per whorl, gap band 0.40-0.68 -> 0.32-0.60 (measured 0.4037-0.4479); 33 limbs + 7 dead members seated 0.4259-0.4656 - Lean 0.489 deg, balance 0.0466 m (bands unchanged) - Collider hull from a 14-sided trunk: 56 tris (20 sides gave 58-62, 10 gave 80) under the unchanged ceiling of 60 - --lean-crown now bends only the bole below the lowest whorl and carries the crown over rigidly. The old whole-axis bend grew the X extent 17.7 mm and exited 8; the bend was moved, no band was widened. 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 --float-branches seat ratio 1.2447 17 --lean-crown lean 1.205 deg, envelope unchanged 19 --bunch-whorls 7 tiers, gap 0.7121 20 --drop-cones 10 components 21 --short-twigs brush bite -0.1955 22 --float-litter cones -0.0705, stones -0.0352 23 tests/check_falsifier_targets.py --run --only pine-tree 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; one connected assembly of 266 shells. - Framing: fill x 0.509 (was ~0.33), y 0.794; margins l .247 r .244 b .083 t .122. - Contact sheet: luma 0.2399 (before 0.193; band 0.237-0.243), stage 0.2508, sat 0.1546 (band 0.1525-0.2367), warmth +0.153 (the old hero was +0.12; both are warmer than the calibration set). - Asset sheet: the tree now reads as a pine of needle brushes over red limbs on a soil disc. It is not the least-designed object in the lineup; the hydrant is simpler. - 4.5 LTS and 5.1 were not run locally. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 460477a commit 4dcb601

11 files changed

Lines changed: 2335 additions & 993 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
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>
148148
<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>
149-
<a href="showcase/pine-tree/"><img src="showcase/pine-tree/preview.webp" width="24%" alt="Pine tree: a 7 m Scots pine with a red-barked trunk on a flared, rooted base and ten tiers of drooping branches carrying spiky needled shoots, on a dark studio floor" /></a>
149+
<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>
152152
<a href="showcase/soccer-goal/"><img src="showcase/soccer-goal/preview.webp" width="24%" alt="Soccer goal: a white 5 by 2 m youth goal with sloped rear supports and a sagging diamond-mesh net edged in red rope, on a turf patch with a painted goal line, on a dark studio floor" /></a>
@@ -241,7 +241,7 @@ Budget-conformance props. Not examples. Conventions: [`showcase/README.md`](show
241241

242242
[`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.
243243

244-
[`pine-tree`](showcase/pine-tree/) — the first `nature` piece: procedural Scots pine (buttressed trunk from root flare to leader, ten seeded whorls of crooked limbs, faceted needled shoots, dead stubs, hanging cones), whose every limb's seat in the bark, whorl spacing, trunk plumb and crown balance are recomputed from the mesh, through the same pipeline. Falsifiers `--float-branches` exits 17, `--lean-crown` 19, `--bunch-whorls` 20.
244+
[`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

246246
[`desk-lamp`](showcase/desk-lamp/) — the first `household` piece: procedural balanced-arm desk lamp (stepped cast base, two parallelogram arm sections pinned through knuckle bosses, three tension springs hung on cross bars, domed shade with reflector and lamp, draped flex and plugged cable), whose every joint pin coaxial through the eyes it joins, every spring end seated on its bar, and mass centre over the base footprint are recomputed from the mesh, through the same pipeline. Falsifiers `--offset-pin` exits 17, `--unhook-spring` 18, `--hollow-base` 19, `--unscrew-bulb` 20.
247247

‎ROADMAP.md‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
6.84 KB
Loading
19 KB
Loading
5.27 KB
Loading

‎docs/gallery/index.html‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,12 +1433,12 @@ <h2><a href="basketball-hoop/">basketball-hoop</a></h2>
14331433
</article>
14341434
<article class="card" data-tags="mesh export showcase" data-kind="showcase" data-category="nature" data-name="pine-tree">
14351435
<a class="card-media" href="pine-tree/" tabindex="-1" aria-hidden="true">
1436-
<img src="assets/pine-tree-hero.webp" alt="A 7 m pine on a dark studio floor: a red-barked trunk on a flared, rooted base, ten tiers of drooping branches carrying spiky dark-green needled shoots, narrowing to a leader." width="1280" height="720" loading="lazy" decoding="async" />
1436+
<img src="assets/pine-tree-hero.webp" alt="A mature Scots pine on a dark studio floor: a bare grey-plated bole with dead lower limbs under a broad crown of soft blue-green needle brushes, on a soil disc with mossy stones." width="1280" height="720" loading="lazy" decoding="async" />
14371437
</a>
14381438
<div class="card-body">
14391439
<h2><a href="pine-tree/">pine-tree</a></h2>
1440-
<p class="teaches">A procedural Scots pine — buttressed trunk lathed from root flare to leader, ten seeded whorls of crooked limbs seated in the bark, faceted needled shoots on the outer branches, dead stubs and hanging cones — through UVs, bake, LOD, trunk collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1441-
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 34210 tris, four materials with 4348 bark, 22800 needle, 1664 cone and 172 deadwood faces, UVs in 0..1 with zero AABB overlap, outer AABB 4.775×5.261×7.226 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, all 50 limbs and 6 dead members seated in the trunk (base 0.43–0.47 of the bark radius from the axis, band 0.25–0.75), 10 whorls of 4–6 limbs with gaps 0.45–0.57 m (band 0.40–0.68), trunk lean 0.355°, needle mass 0.019 m off the base axis, breast-height diameter 0.2665 m, one connected assembly of 671 shells, LOD ratios in band, trunk collider 48 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-branches 17; --lean-crown 19; --bunch-whorls 20; --drop-cones 21.</p>
1440+
<p class="teaches">A procedural mature Scots pine — a buttressed trunk with plated lower bark bedded in a needle-litter soil disc, eight seeded whorls of heavy limbs seated in the bark, 113 overlapping brushes of long thin needle strands each on its own twig, dead limbs, hanging cones, fallen cones, mossy stones and sticks — through UVs, bake, LOD, trunk collider, and Unity glTF, asserting recomputed budgets rather than an API contract.</p>
1441+
<p class="witnesses"><span class="tag">witnesses</span> Recomputed: 45852 tris, six materials with 3026 bark, 36612 needle, 1024 cone, 274 deadwood, 878 soil and 192 stone faces, UVs in 0..1 with zero AABB overlap, outer AABB 9.284×7.932×7.659 m, zmin 0, hygiene 0 including zero coplanar cross-shell pairs, all 33 limbs and 7 dead members seated in the trunk (base 0.43–0.47 of the bark radius from the axis, band 0.25–0.75), 8 whorls of 3–5 limbs with gaps 0.40–0.45 m (band 0.32–0.60), trunk lean 0.489°, needle mass 0.047 m off the base axis, breast-height diameter 0.3768 m, every one of 113 needle brushes holding its own carrier at least 0.059 m deep (min 0.040), fallen cones and sticks 0.010 m and stones 0.045 m into the soil, roots at least 0.091 m under it, one connected assembly of 266 shells, LOD ratios in band, trunk collider 56 tris, non-empty glTF. --skip-decimate exits 9; --stray-vert 15; --lift-z 16; --float-branches 17; --lean-crown 19; --bunch-whorls 20; --drop-cones 21; --short-twigs 22; --float-litter 23.</p>
14421442
<a class="card-link" href="pine-tree/">View showcase piece<span class="sr-only"> pine-tree</span> <span aria-hidden="true">&rarr;</span></a>
14431443
</div>
14441444
</article>

0 commit comments

Comments
 (0)