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>
47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
# 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.
|