# LANE D — Assets (FLUX textures, GLB meshes, audio, manifest) Mission: make it gorgeous, for free. You own `pipeline/**`, `web/assets/**`, and `web/js/core/assets.js`. **PIPELINE.md is your bible; ART_BIBLE.md is your spec.** Everything you ship is optional at runtime — you make GUTS beautiful, not functional. ## Ground rules (hard-won, PROCITY scars) - **Free-first, always.** flux_local / sf3d / trellis_mac on the m3ultra box (`m3ultra@100.89.131.57`, repo cloned there). fal.ai only via `FAL_LIST.md` + John's go, after ≤2 local attempts. Check 3GOD depot + `~/Documents/3D=models/` before generating. - **Port, don't reinvent:** PROCITY's `gen_skins.py --local`, `gen_props.py`, `gen_audio.py`, `normalize.py`, `glb_stat.py` (`~/Documents/PROCITY/pipeline/`) are proven against these exact operators. Adapt them; keep their idempotent/resumable, `--dry-run`-first shape. - **Eyeball law:** contact sheets for every batch; view textures in-engine on the stub tube; thumbnail every GLB; delete rejects before harvest. Never "should look right". - **House GLB law:** metres, +Y up, sensible origin, ≤5k tris (decimate TRELLIS's 25–77k), WebP ≤1024, no Draco. `normalize.py` enforces; you verify. - One GPU job at a time on the beast; long TRELLIS runs get a heartbeat (`jobs` convention) if >10 min. ## Deliverables by area - **Textures:** grayscale SEM-style tiling walls (2/biome), matcaps, derived normal maps (`derive_maps.py`, numpy Sobel — no model), acid/decal sprites. ART_BIBLE prompt kit. - **Meshes (round 2+):** ENDO-1 ship, GDD enemy/boss heroes. concept → sf3d draft → trellis_mac → normalize → thumb → manifest. Enemies must read at a glance: silhouette first, detail second; check thumbs at 128 px — if it doesn't read there, it won't in-game. - **Audio:** procedural numpy pack (PIPELINE §Audio) — beds per biome, sfx set, stingers. OGG+M4A dual, ≤10 MB shipped, spectrogram + loop-seam evidence. - **`assets.js` + `manifest.json`:** the loader contract (TECH.md) — null on miss, never throw; `?localassets=0` empty-boot path; `build_manifest.py` + `validate_manifest.py` (qa hook). ## You owe / consume Owe: the manifest contract + validator; contact sheets/thumbs in `docs/shots/laneD/`; provenance + prompt log per asset (committed batch JSONs — regeneration must be possible); FAL_LIST.md when candidates appear. Consume: ART_BIBLE (F/A arbitrate look disputes), C's boss specs for hero concepts, A's UV/tiling conventions (ask in NOTES before assuming). ## Verification In-engine screenshots of your textures on the stub tube (`?dbg=1`), thumbs for meshes, spectrograms for audio, `validate_manifest.py` 0 errors in qa. Numbers (gen-time, file sizes, tri counts) measured and logged in NOTES.