All 27 shipped GLBs run through gltf-transform (meshopt + webp + 1024 textures). Measured per-asset, no failures: 27,304 KB -> 7,132 KB (74% off) with PBR intact. The biggest wins are the wave-1/wave-2 assets that shipped raw (artifact-bottler 1453->329, chroma-keyer 1928->301, mv-extractor 1376->190); the six baked through the new farm script were already lean and barely moved, which is the check that the farm-side step is doing its job. tools/optimize-assets.mjs: idempotent gate wired into deploy.sh BEFORE vite build. Skips anything already carrying EXT_meshopt_compression (so it costs ~0s when nothing is new) and FAILS THE BUILD on any asset over 900 KB — a farm regression that emits trellis2-dense meshes now stops the deploy instead of shipping 36 MB. deploy.sh verify gap closed: it tested exactly one .js file, so a deploy that shipped ZERO models would have reported success. Now checks the JS bundle, a real GLB endpoint, and asserts live model count == built model count. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
238 KiB
238 KiB