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>
95 lines
5.8 KiB
Markdown
95 lines
5.8 KiB
Markdown
# GUTS — Round 1 lane instructions (from Fable, integrator)
|
||
|
||
Date: 2026-07-16 · Repo state: F's round-0 scaffold is committed on `main` — docs complete
|
||
(README/PROCESS/GDD/TECH/ART_BIBLE/PIPELINE + charters), shell boots the **stub world**
|
||
(straight pulsing tube, flat shading) with a fly camera, `tools/qa.sh` GREEN. Everything
|
||
below builds against that scaffold. Read PROCESS.md §A-lane-session before starting.
|
||
|
||
## Integrator decisions (settled — don't relitigate in-round)
|
||
|
||
1. **Movement is the flow-locked hybrid** (GDD). **Look is synthetic scanner** (ART_BIBLE).
|
||
Wireframe-only and full-flesh-realism are both rejected.
|
||
2. **The world contract in TECH.md is v1.** Round 1 is its shakedown: A implements it, B
|
||
consumes it (via stub first). Friction → NOTES immediately; F freezes it at round end.
|
||
3. **Level schema v0 in TECH.md is C's to ratify** — C may amend it this round (it's young),
|
||
but must update the stub's sample level + notify A/B via NOTES in the same session.
|
||
4. **No mesh generation this round** (D). Textures + audio proof first; hero meshes need
|
||
C's boss specs and concept sign-off (round 2). Exception: sf3d drafts to *test* the
|
||
concept loop are fine (free, seconds).
|
||
5. **Vertical slice target = level 2 (esophagus)**, not level 1: the tube is the core tech
|
||
risk and the esophagus is the purest tube. Mouth/arena tutorial comes after the spine
|
||
works. Round 2 goal: fly the esophagus with 2 enemy types, HUD live, textured walls.
|
||
6. Dev port **8140**; evidence law and exact-path git staging are in force everywhere.
|
||
|
||
## Lane A — the canal, v0
|
||
|
||
Build `js/world/` per your charter, priority order:
|
||
1. Spline + parallel-transport frames + arclength LUT from level JSON (consume
|
||
`js/levels/L2_esophagus.json`; the stub's inline level shows the shape). Seeded, and
|
||
`world.hash()` + selfcheck wired for qa.
|
||
2. Chunked tube geometry with (s,θ) UVs, streaming window, dispose-clean (cite
|
||
renderer.info deltas in NOTES).
|
||
3. Wall ShaderMaterial: biome tint + fresnel rim + fog (flat-tint fallback path — D's
|
||
textures may land mid-round; integrate via `assets.get` if present).
|
||
4. Peristalsis vertex displacement + `world.flowPulse(s,t)` JS mirror.
|
||
5. `?fly=1` noclip camera. Screenshot set: esophagus straights, curves, a wave crest.
|
||
Stretch: stomach arena icosphere v0. Don't touch: player, HUD, levels' content values.
|
||
|
||
## Lane B — flight + first blood, on the stub
|
||
|
||
Work entirely against `?stub=1` (contract-identical); swap to A's world late in the round
|
||
if it's landed, but **don't block on A**.
|
||
1. `createPlayer`: tube-mode controller (s,x,y), mouse+WASD+gamepad, banking chase cam,
|
||
boost + i-frames, wall-graze damage + shove. Feel numbers documented in NOTES.
|
||
2. Weapons: lysozyme cannon (pooled, instanced, heat) + hit tests vs sphere targets.
|
||
3. Enemy framework + 3 archetypes (floater/seeker/turret) as emissive primitives, spawned
|
||
from `level:event` (the stub level includes sample spawns; C's L2 JSON is your real feed).
|
||
4. Damage/coat model + all bus emissions per TECH §Bus (E builds against these — emit
|
||
faithfully even with no listener).
|
||
Evidence: capture or screenshot sequence + DBG numbers. Arena-mode controller = round 2.
|
||
|
||
## Lane C — GDD ownership + the data spine
|
||
|
||
1. Ratify/amend level schema v0 (TECH.md) — you own it from now; sync stub sample + NOTES.
|
||
2. `js/levels/index.js` registry + headless selfcheck (qa.sh already calls
|
||
`node js/levels/index.js --selfcheck` — make it real).
|
||
3. **`L2_esophagus.json` complete** (the vertical-slice level): segments, flow, encounter
|
||
curve with B's three archetypes, reflux-surge finale as a `hazard` event, checkpoints,
|
||
par time. Fly it on the stub; pacing notes in NOTES.
|
||
4. Draft `L1_mouth.json` + `L3_stomach.json` skeletons (biomes/lengths/arenas only).
|
||
5. **Boss specs** (Pyloric Guardian, Tapeworm, Blockage) as one-pagers in your NOTES —
|
||
phases/telegraphs/windows — so A can shape lairs and D can concept in round 2.
|
||
|
||
## Lane D — pipeline online + first texture pack + audio proof
|
||
|
||
On the m3ultra box (clone the repo there; PIPELINE.md has the verified operator map):
|
||
1. Port PROCITY's script shapes: `gen_textures.py` (--dry-run/--local/--harvest),
|
||
`derive_maps.py`, `build_manifest.py`, `validate_manifest.py`.
|
||
2. **First pack:** esophagus ×2, stomach ×2, small-intestine ×2 walls (grayscale, tiling,
|
||
ART_BIBLE prompts) + 1 wet-tissue matcap → normals → WebP → manifest. Contact sheet +
|
||
in-engine stub screenshots to `docs/shots/laneD/`.
|
||
3. `js/core/assets.js` per the manifest contract (null-on-miss, `?localassets=0`).
|
||
4. **Audio proof (small):** port `gen_audio.py` shape; synthesize 1 esophagus bed (loop-
|
||
clean) + 4 sfx (pellet, hit-squelch, boost, pickup). Spectrogram evidence. Full pack =
|
||
round 2.
|
||
|
||
## Lane E — instrument panel v0
|
||
|
||
1. HUD overlay (DOM/canvas): coat/hull bars, heat, speed/flow, score — bus-driven only,
|
||
against B's emissions (they land this round; stub-emit fake events for dev via a
|
||
`?fakebus=1` helper you own).
|
||
2. **Gut-map v1**: draw the alimentary silhouette once (SVG path), show it as progress bar
|
||
with player blip. This is the game's signature UI — spend the taste budget here.
|
||
3. Title screen (over the stub drift) + pause + respect `?shots=1`/`?mute=1`.
|
||
4. `js/audio/engine.js`: bed crossfade + sfx pool + autoplay unlock + **procedural fallback
|
||
beeps** (D's pack may land mid-round; handle both paths).
|
||
Screenshots of every state to `docs/shots/laneE/`.
|
||
|
||
## Lane F (Fable) — done in round 0, then on-call
|
||
|
||
Scaffold committed. During the round: answer contract questions in NOTES daily-ish; end of
|
||
round: boot matrix, verify evidence, freeze world contract, write ROUND2.
|
||
|
||
## Round-2 preview (so you can aim): textured esophagus slice playable start-to-finish —
|
||
A's world + B's flight/enemies + C's L2 + D's pack + E's HUD, integrated by F, tagged v0.2.
|