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>
73 lines
6.1 KiB
XML
73 lines
6.1 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 720" font-family="ui-monospace, Menlo, monospace">
|
||
<!-- Lane A round 2, task #7: stomach-arena shape read for C (L3 acid sea, round 3).
|
||
Companion paragraph: LANE_A_NOTES.md §-> Lane C. Palette = ART_BIBLE stomach. -->
|
||
<rect width="1200" height="720" fill="#0b0d10"/>
|
||
<text x="600" y="40" fill="#e8f4f0" font-size="22" text-anchor="middle">L3 stomach body — what shape is the acid sea? (Lane A → Lane C, round 2)</text>
|
||
|
||
<!-- ============ PANEL A: spline-swept room (recommended) ============ -->
|
||
<text x="330" y="74" fill="#5affd2" font-size="17" text-anchor="middle">A. SPLINE-SWEPT ROOM — recommended</text>
|
||
<g transform="translate(60,90)">
|
||
<!-- centreline: cardia top -> body sweeps down-left -> curls right -> antrum climbs to pylorus -->
|
||
<path d="M 240 40 C 200 130, 180 220, 210 300 C 240 380, 330 420, 400 400 C 450 385, 480 350, 500 320"
|
||
fill="none" stroke="#5affd2" stroke-width="2" stroke-dasharray="7 6" opacity="0.9"/>
|
||
<!-- swept rings along the same centreline: the tube pipeline at room radii -->
|
||
<ellipse cx="240" cy="40" rx="34" ry="26" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="205" cy="130" rx="62" ry="47" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="186" cy="215" rx="80" ry="60" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="210" cy="300" rx="84" ry="62" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="268" cy="365" rx="76" ry="55" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="340" cy="405" rx="60" ry="44" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="410" cy="398" rx="44" ry="33" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="465" cy="360" rx="30" ry="23" fill="none" stroke="#b0571e" stroke-width="2" opacity="0.75"/>
|
||
<ellipse cx="500" cy="320" rx="17" ry="13" fill="none" stroke="#ffb13a" stroke-width="2.5"/>
|
||
<!-- fundus dome: the one welded icosphere that stays -->
|
||
<circle cx="150" cy="55" r="58" fill="none" stroke="#ffb13a" stroke-width="2" stroke-dasharray="4 5"/>
|
||
<text x="-46" y="14" fill="#ffb13a" font-size="13">fundus dome — stays a</text>
|
||
<text x="-46" y="30" fill="#ffb13a" font-size="13">welded icosphere</text>
|
||
<text x="-46" y="46" fill="#ffb13a" font-size="13">(existing primitive)</text>
|
||
<!-- acid plane -->
|
||
<line x1="96" y1="330" x2="410" y2="330" stroke="#c8ff3a" stroke-width="3"/>
|
||
<path d="M 100 338 l 300 0 M 112 348 l 276 0 M 128 358 l 244 0" stroke="#c8ff3a" stroke-width="1" opacity="0.35"/>
|
||
<text x="420" y="334" fill="#c8ff3a" font-size="13">acid plane: horizontal chord,</text>
|
||
<text x="420" y="350" fill="#c8ff3a" font-size="13">height ← C's level events</text>
|
||
<!-- mucus shallows band along greater curvature -->
|
||
<path d="M 112 250 C 108 300, 130 350, 172 388 C 210 420, 260 442, 310 450"
|
||
fill="none" stroke="#5affd2" stroke-width="12" opacity="0.28" stroke-linecap="round"/>
|
||
<text x="30" y="470" fill="#5affd2" font-size="13">mucus shallows hug the greater curvature —</text>
|
||
<text x="30" y="486" fill="#5affd2" font-size="13">authored as a (s, theta) band, drain pauses there</text>
|
||
<!-- labels -->
|
||
<text x="292" y="40" fill="#e8f4f0" font-size="13">cardia (r≈14, teal — the reveal)</text>
|
||
<text x="292" y="215" fill="#e8f4f0" font-size="13">body: C's segments AS AUTHORED</text>
|
||
<text x="292" y="231" fill="#e8f4f0" font-size="13">(r 40–45 base + wobble = lobes,</text>
|
||
<text x="292" y="247" fill="#e8f4f0" font-size="13">curviness = the J-bend)</text>
|
||
<text x="520" y="300" fill="#e8f4f0" font-size="13">pylorus gate</text>
|
||
</g>
|
||
|
||
<!-- ============ PANEL B: chained spheres (not recommended) ============ -->
|
||
<text x="900" y="74" fill="#ff6a6a" font-size="17" text-anchor="middle">B. CHAINED SPHERES — not recommended</text>
|
||
<g transform="translate(660,90)">
|
||
<path d="M 240 40 C 200 130, 180 220, 210 300 C 240 380, 330 420, 400 400 C 450 385, 480 350, 500 320"
|
||
fill="none" stroke="#5affd2" stroke-width="1.5" stroke-dasharray="7 6" opacity="0.5"/>
|
||
<circle cx="215" cy="120" r="78" fill="none" stroke="#b0571e" stroke-width="2.5"/>
|
||
<circle cx="200" cy="255" r="95" fill="none" stroke="#b0571e" stroke-width="2.5"/>
|
||
<circle cx="290" cy="370" r="85" fill="none" stroke="#b0571e" stroke-width="2.5"/>
|
||
<circle cx="430" cy="380" r="55" fill="none" stroke="#b0571e" stroke-width="2.5"/>
|
||
<!-- crease seams at the lens intersections -->
|
||
<path d="M 148 205 C 190 190, 240 190, 272 208" fill="none" stroke="#ff6a6a" stroke-width="3"/>
|
||
<path d="M 205 340 C 235 320, 262 312, 292 318" fill="none" stroke="#ff6a6a" stroke-width="3"/>
|
||
<path d="M 352 340 C 372 352, 384 368, 390 388" fill="none" stroke="#ff6a6a" stroke-width="3"/>
|
||
<text x="40" y="420" fill="#ff6a6a" font-size="13">✕ visible crease ring where displaced shells intersect (×3)</text>
|
||
<text x="40" y="438" fill="#ff6a6a" font-size="13">✕ union collide() + union project() = new code, new selfchecks</text>
|
||
<text x="40" y="456" fill="#ff6a6a" font-size="13">✕ spherical UVs: pole pinch ×4, tile scale jumps per sphere</text>
|
||
<text x="40" y="474" fill="#e8f4f0" font-size="13">✓ zero schema change (arenas[] already spheres)</text>
|
||
</g>
|
||
|
||
<!-- ============ caption ============ -->
|
||
<g transform="translate(60,628)">
|
||
<text x="0" y="0" fill="#e8f4f0" font-size="14">A = the tube pipeline itself at room radii over an s-span, gameplay flagged 6DOF ("open"): collision is the existing</text>
|
||
<text x="0" y="20" fill="#e8f4f0" font-size="14">project()/wallRho path (varying radius already supported), UVs stay (theta, s) so D's gastric pits tile with no pole</text>
|
||
<text x="0" y="40" fill="#e8f4f0" font-size="14">pinch, and C's L3 segments already author it (radius 40–45 + wobble). Cost: radius-scaled radial resolution + cap</text>
|
||
<text x="0" y="60" fill="#e8f4f0" font-size="14">geometry + one schema flag. Full argument + schema sketch: LANE_A_NOTES.md §→ Lane C.</text>
|
||
</g>
|
||
</svg>
|