HardYards/web/world/models
m3ultra 47d4f3d3af lawn: the biggest surface in the game gets grain, and dispose() stops leaking maps
The ground plane is 25-50% of frame and was one flat colour, which is
also why the sail's shadow read as a blob rather than a shape. New
build_lawn_texture(): a 512 seamless luminance multiplier (blade grain,
thatch mottle, anti-repeat blotches, 4 cycles of mower stripe, yellow-
shifted dry patches) that modulates COLORS.grass instead of replacing
it. Seam asserted against the interior-max control (14x margin) and
byte-identical across two runs.

world.dispose() freed geometry and material but not material.map — the
exact leak main.js:705 documents for the sail weave, harmless until the
lawn got a map, and a seven-night week rebuilds the world per site.
Closed.

a.test pins the wiring end to end: map present, lawn_grass, sRGB,
RepeatWrapping, and repeat DERIVED from the yard's size (a literal would
pass on any yard). Mutation-checked: hide the PNG and it reds with 'the
grass texture is an orphan again'. 524/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 21:42:29 +10:00
..
debris factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
textures lawn: the biggest surface in the game gets grain, and dispose() stops leaking maps 2026-07-28 21:42:29 +10:00
bike_kid_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
broom_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
carabiner_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
carport_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
carport_01_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
fence_panel_snapped_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
fence_panel_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
fence_post_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
garden_bed_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
garden_gnome_01_broken_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
garden_gnome_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
gate_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
glasshouse_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
glasshouse_01_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
hail_stone_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
house_yardside_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
house_yardside_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
ladder_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
MODELS.md Lane D: player rig assets — ped copy + anim-only clip pack 2026-07-16 21:27:04 +10:00
pergola_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
pergola_01_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +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
pool_kit_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
ref_capsule_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
sail_post_corroded_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
sail_post_corroded_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
sail_post_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
shackle_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
shed_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
shed_table_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
swing_set_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
swing_set_01_wrecked_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
tree_gum_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
tree_gum_02_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
tree_jacaranda_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
turnbuckle_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00
washing_line_01_v1.glb factory: palette hexes reach the screen — sRGB->linear in hex_to_rgba, pinned 2026-07-28 21:26:26 +10:00