guts/docs/LANES/LANE_D_ASSETS.md
jing 34f84ab162 [lane F] Round 0 scaffold: docs, contracts, lane charters, bootable stub world
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>
2026-07-16 01:28:35 +10:00

2.7 KiB
Raw Permalink Blame History

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 2577k), 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.