// 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: [], };