HardYards/web/world/models
m3ultra 7cd25a5d2a Give the gum trees a canopy sway handle
world.js sways a tree by rotating a `canopy` group whose origin sits at the
trunk top, so the blobs swing about the trunk. The trees shipped canopy_01..03
as siblings of `trunk` with each origin at its own blob centre — rotating one
spins a sphere in place, which is visually nothing. Lane A could not have swayed
these trees, and the canopy lean is the gust telegraph the player reads a beat
before it hits the sail, so the tell would have gone missing rather than looked
wrong.

Adds the `canopy` empty at the trunk top with the blobs parented under it, so
A's existing code works unchanged, plus sway_amp / sway_phase / sway_pivot_y
for the per-tree tuning SPRINT2 §Lane E asks for (gum_01 is big and leans less
at 0.85; gum_02 is whippy at 1.20 and shows a gust first).

sway_phase draws from its own RNG stream: taking it from the shared one would
consume a value and shift every blob draw after it, resilhouetting a tree the
other lanes have already tuned against. Exported dims are identical to Sprint 1.

e.test.js asserts the pivot by rotating the handle and measuring that a blob
actually travels — red before this change, green after.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 00:42:30 +10:00
..
debris Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
textures Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
carabiner_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
fence_panel_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
fence_post_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
garden_bed_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
gate_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
house_yardside_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
ladder_01_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
MODELS.md Lane D: player rig assets — ped copy + anim-only clip pack 2026-07-16 21:27:04 +10:00
player_01.glb Lane D: player rig assets — ped copy + anim-only clip pack 2026-07-16 21:27:04 +10:00
player_anims.glb Bake M3 animation pack: 11 new Mixamo clips into player_anims.glb 2026-07-16 23:06:40 +10:00
ref_capsule_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
sail_post_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
shackle_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
shed_01_v1.glb Bake joined-node rotations so bounding boxes are tight 2026-07-16 21:43:06 +10:00
shed_table_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00
tree_gum_01_v1.glb Give the gum trees a canopy sway handle 2026-07-17 00:42:30 +10:00
tree_gum_02_v1.glb Give the gum trees a canopy sway handle 2026-07-17 00:42:30 +10:00
turnbuckle_v1.glb Add generated yard, hardware and debris GLBs 2026-07-16 21:39:52 +10:00