HardYards/web/world/js
m3ultra d3e849fcc3 Add sail cloth textures and the storm dressing set
Textures (SPRINT2 §Lane E-2). sail_weave.png is a seamless 512² knitted
shade-cloth weave with the stripe banding real cloth has; the script proves the
wrap by evaluating a second tile and requiring an exact match, because Lane B is
being told to set RepeatWrapping and a bad wrap would seam across the whole
sail. Luminance rides in a narrow band so it multiplies the base colour instead
of replacing it — high contrast reads as burlap, not HDPE. Dropped the per-pixel
noise: invisible at ±0.012 and incompressible, it cost 305 KB of the 323.

sail_tears.png is a strip of 4 escalating rips. Each is a lens, not a slit —
fabric under tension parts widest in the middle and tapers to a point, and a
constant-width gap reads as a drawn line. Threads bridge the gap, scaled to the
local width; without them a dark lens is a hole rather than a tear.

Dressing (§Lane E-3): wheelie_bin_01 (240 L, 12 kg, `lid` on its own node so it
flaps before the bin goes over), washing_line_01 (a Hills Hoist — the `head`
freewheels, giving a second wind tell at head height), garden_gnome_01
(collateral bait: a smashed gnome reads where a damage number doesn't).

Bin and tramp land in models/debris/ for Lane C to glob. All 19 assets pass, 28
output files byte-identical across two runs, selftest 129/0/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 00:51:51 +10:00
..
tests Add sail cloth textures and the storm dressing set 2026-07-17 00:51:51 +10:00
camera.js Add graybox yard, third-person camera and game shell 2026-07-16 21:33:42 +10:00
contracts.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
debris.js Fix debris ground friction, cloud seam and yard coords 2026-07-16 21:50:41 +10:00
interact.js Lane D: the small person — player, interactions, selftests 2026-07-16 21:55:16 +10:00
main.js Assemble the game: real wind, player, sail, sky and debris (gate 1) 2026-07-16 23:38:03 +10:00
player.js Merge all lanes; add importmap; fix /world/ absolute paths 2026-07-16 22:23:20 +10:00
player.sim.js Lane D: the small person — player, interactions, selftests 2026-07-16 21:55:16 +10:00
rigging.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
rigging.selftest.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
sail.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
sail.selftest.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
skyfx.js Expose audio state and levels 2026-07-16 21:56:22 +10:00
testkit.js Add selftest harness with one suite per lane 2026-07-16 21:33:42 +10:00
weather.core.js Fix debris ground friction, cloud seam and yard coords 2026-07-16 21:50:41 +10:00
weather.js Add debris, skyfx and the Lane C bench; align to landed contracts 2026-07-16 21:38:21 +10:00
world.js Expose the yard's hemisphere light for skyfx 2026-07-16 23:38:03 +10:00