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>
32 lines
1.5 KiB
JavaScript
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: [],
|
|
};
|