GDD v1 (flow-locked hybrid movement, 5 biomes + secret, boss roster), TECH contracts (world API, level schema v0, bus events, manifest law), ART_BIBLE (synthetic scanner look), PIPELINE (MODELBEAST-first, fal gated), PROCESS (PROCITY lane/round law), charters A-F + ROUND1 instructions. Seed code: shell + boot + core (rng/bus/flags) + stub world (peristalsis shader tube, 1 draw / 102k tris, contract-complete) + qa.sh (GREEN). Verified in-browser; evidence docs/shots/laneF/round0_stub_tube.png. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.7 KiB
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 viaFAL_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.pyenforces; you verify. - One GPU job at a time on the beast; long TRELLIS runs get a heartbeat (
jobsconvention) 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=0empty-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.