guts/web/js/world/_fixture.js
jing ecf43940ec [lane A] Round 2 close-out: colorspace re-eyeball, stomach shape read, ruling #5
Finishes the lane A round-2 list that f0982e7 (the rescued first half) left open:

- Biome-tint re-eyeball under the colorspace law (#4 second half). Verdict: all
  six ART_BIBLE tints stand, biomes.js untouched — the wash was wall_material's
  round-1 constants, tuned on the raw framebuffer. Retuned: rim pow 2.2->3.0,
  rim gain 0.9->0.35, textured curve (0.35+d*.95)*.9 -> 0.12+d*0.60, procedural
  d*.8 -> d^2*.65, sheen .10->.04, matcap .22->.14. Rationale documented
  in-shader. Verified on a new six-biome contact sheet (?lvl=biomes, SIX_BIOMES
  fixture — kept as permanent kit), the real L2 hiatus, and an arena interior.
  Evidence: round2_tint_*.png x6 + two *_retuned frames. qa GREEN.

- Stomach-arena shape read for C (#7): recommend the spline-swept room (arena =
  "open" mode over an s-span; fundus dome stays a welded icosphere; chained
  spheres rejected — crease rings + union collision for a worse look). Full
  argument NOTES §-> Lane C + round2_stomach_arena_sketch.svg. Triplanar
  deliberately deferred: the swept room obsoletes it where it mattered.

- Ruling #5: harness -> web/dev/laneA_world.html (+DBG.post to the house shot
  sink); _fixture.js stays — the spline selfcheck asserts against it, now
  documented in-file. launch.json: guts-a on 8145.

- NOTES + progress written for both halves; ROUND2 mid-round box updated: lane
  A's round-2 list is closed, only round-3 items remain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 17:14:30 +10:00

32 lines
1.5 KiB
JavaScript

// world/_fixture.js (Lane A) — DEV FIXTURES, not shipping content.
// Lane C owns real levels (js/levels/*.json). FIXTURE survives C's levels landing because the
// spline selfcheck (a qa gate) asserts against its exact shape — headless, no three.js, no
// levels registry. Do not edit FIXTURE's segments without re-reading spline.js --selfcheck.
export const FIXTURE = {
id: 'A_FIXTURE',
name: 'Lane A fixture canal',
seed: 20260716,
segments: [
{ biome: 'esophagus', length: 300, radius: { base: 10, wobble: 0.25 }, curviness: 0.55, flow: 14 },
{ biome: 'esophagus', length: 240, radius: { base: 12, wobble: 0.35 }, curviness: 0.95, flow: 11 },
{ biome: 'stomach', length: 120, radius: { base: 16, wobble: 0.30 }, curviness: 0.20, flow: 4 },
],
arenas: [{ at: 620, radius: 55, biome: 'stomach' }],
events: [],
};
// The tint contact sheet (?lvl=biomes in the harness): one straight-ish segment per registry
// biome, in registry order, generous radius so the wall — not the curve — is what you judge.
// Exists for the eyeball law: every biome tint gets re-checked against D's current pack in one
// fly-through whenever either side changes (tints, textures, colorspace, TBN…).
export const SIX_BIOMES = {
id: 'A_SIX_BIOMES',
name: 'Lane A biome contact sheet',
seed: 20260716,
segments: ['oral', 'esophagus', 'stomach', 'small_intestine', 'large_intestine', 'appendix']
.map((biome) => ({ biome, length: 200, radius: { base: 10, wobble: 0.2 }, curviness: 0.25, flow: 8 })),
arenas: [],
events: [],
};