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>
4.3 KiB
PIPELINE — asset generation (Lane D)
Everything generates free and local on the m3ultra box via MODELBEAST; fal.ai is a paid,
gated fallback. Verified live 2026-07-16: m3ultra@100.89.131.57 (tailnet, key auth),
~/Documents/MODELBEAST/server/operators/ = flux_local (FLUX.2-klein-4B text→image on MPS,
~6 s/img, weights cached), mflux_image_edit (img2img/inpaint), sf3d (image→GLB, seconds,
draft quality), trellis_mac (TRELLIS image→GLB 1024_cascade, ~3–8 min, quality),
seedvr2_upscale. Venvs: ~/Documents/MODELBEAST/venvs/{mflux,rmbg,sf3d}.
Run pipeline scripts on the m3ultra box (clone this repo there) or drive over ssh the
PROCITY way — copy the working patterns from ~/Documents/PROCITY/pipeline/ (gen_skins.py --local drives flux_local/run.py directly, no server, one GPU job at a time; gen_props.py
chains concept→trellis; gen_audio.py is the procedural audio precedent; normalize.py is
the Blender house-law enforcer; glb_stat.py the dependency-free GLB parser). Don't reinvent
these — port them.
Textures (round 1)
pipeline/gen_textures.py --dry-runlists the pack (prompts live in the script, style stems from ART_BIBLE).--local→ flux_local →pipeline/.genraw/at 1024².- Tile check: script renders each result wrap-offset by 50% into a contact sheet —
seams are instantly visible. Fix seams by mirror-tiling or
mflux_image_editinpaint (≤2 attempts, then pick a different prompt). - Normals:
pipeline/derive_maps.py— grayscale → height (blur pyramid) → Sobel normal map, plus WebP conversion (≤1024, quality ~82). Pure numpy/PIL, no model. --harvest→web/assets/gen/*.webp+ entries inweb/assets/manifest.json(build_manifest.py), thumbs contact sheet →docs/shots/laneD/.- Eyeball in-engine (boot with
?dbg=1, check tiling scale on the stub tube) before committing. Delete rejects from.genraw/— committed junk is forever.
Meshes (round 2+, after concept sign-off)
concept (flux_local, ART_BIBLE stem) → sf3d draft (seconds — iterate the concept until
the silhouette reads) → trellis_mac final → normalize.py (Blender: metres, +Y up,
origin, decimate to ≤5k tris — TRELLIS outputs run 25–77k, always decimate — WebP ≤1024,
no Draco) → thumbnail → manifest. Eyeball every thumbnail.
Known TRELLIS weaknesses (PROCITY scars): transparent/glassy surfaces, thin wires/fins → don't burn attempts; straight to the fal list.
fal.ai fallback (the only money in the project)
Rules: ≤2 local attempts per asset, then it goes on pipeline/FAL_LIST.md with the
concept image attached — John personally approves and runs the batch (key is his; never
committed, never in env on shared boxes). Cost ~10¢/gen billed 30¢ (MeshGod law). Expected
fal candidates: tapeworm head (long thin body), anything translucent. Check the
3GOD depot (digalot.fyi/3god) + ~/Documents/3D=models/ first — never regenerate what
exists.
Audio (round 1 proof, round 2 full pack)
Procedural synthesis in numpy → WAV → ffmpeg OGG/Opus + M4A/AAC dual-ship (the PROCITY
gen_audio.py approach — $0, deterministic, seamless loops, parody-safe). GUTS pack:
biome ambience beds (wet cavernous drones, muffled heartbeat — tempo maps to danger, E's
hook), sfx (pellet, torpedo, squelch hits, boost, gate, pickup chime, alarm), boss stingers.
Beds loudnorm −16 LUFS, sfx peak-normalized, budget ≤10 MB shipped. Verification =
spectrogram sheet + numeric loop-seam check into docs/shots/laneD/; final ear-check is
John's.
Licensing
Everything generated here is ours (🟢 web-ok). Any sourced mesh must be Sketchfab CC0/CC-BY or CGTrader royalty-free; no ActorCore in web builds (house licensing zones). No humanoid characters planned, so the Mixamo fleet rule shouldn't apply — if a humanoid ever appears, use the character_kit base meshes, never a new rig.
Artifacts
Git-ignored (regenerable): pipeline/.genraw/, pipeline/.genprops/, pipeline/.genaudio/,
pipeline/_normalized/. Committed: scripts, prompt/batch JSONs, FAL_LIST.md,
web/assets/** shipped files, docs/shots/laneD/ evidence.
| step | cost |
|---|---|
| textures, normals, audio, drafts, TRELLIS meshes | free (local MPS) |
| fal.ai fallback meshes | ~30¢/asset, gated on John, expected ≤$3 total |