From 66aec0f83cf53ddf8f00208a573b8eb41cf78c01 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Thu, 16 Jul 2026 10:25:08 +1000 Subject: [PATCH] =?UTF-8?q?Lane=20D=20R15=20(v3.0):=20guitar=5Famp=20up-st?= =?UTF-8?q?age=20per=20C's=20=C2=A73=20ruling=20(ledger=20#4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The R13 backline plant sat down-stage (stage.z + 0.15), 0.29 m from the bass rig — it interpenetrated the bassist (C's R14 audit caught it). Move it up-stage-right to C's blessed pose (stage.x + w*0.36, deckY, stage.z - d*0.22): 0.75 m clear of the bass, behind the front line, flanking C's primitive ampStacks. Pose-only. Verified: draw/tri delta 0 (same GLB moved — pub 50 draws / ~183k tris, <=350); ?noassets unaffected (amp is fleet-gated dressing → 0 props, band placeholders, no crash). No other code — continuity + the ratified sit-clip deferral are closed. Co-Authored-By: Claude Opus 4.8 --- docs/LANES/LANE_D_NOTES.md | 12 ++++++++++++ web/js/citizens/band.js | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/LANES/LANE_D_NOTES.md b/docs/LANES/LANE_D_NOTES.md index 37b678d..40d6a7e 100644 --- a/docs/LANES/LANE_D_NOTES.md +++ b/docs/LANES/LANE_D_NOTES.md @@ -6,6 +6,18 @@ _rotOnly/head-bone normalize/upgradeStreetPeople). Measurements on the M3 Ultra --- +## ROUND 15 — v3.0 close: the amp one-liner (ledger #4) + +*PROCITY-D, 2026-07-16. Sole task: move `band.js _addBackline` to C's §3 pose. Everything else (continuity, +ratified sit-clip deferral) is closed.* The R13 amp sat at `z = stage.z + 0.15` (down-stage) — 0.29 m from +the bass rig, interpenetrating the bassist (C's audit caught it). Moved up-stage-right to C's blessed pose +**`(stage.x + w·0.36, deckY, stage.z − d·0.22)`** = (1.44, 0.32, −3.27) at the pub: **0.75 m clear** of the +bass, behind the front line, flanking C's primitive ampStacks. Verified: draw/tri delta **0** (same GLB +moved — pub interior 50 draws · ~183k tris), `?noassets` unaffected (amp is fleet-gated dressing → `props 0`, +band placeholders, no crash). + +--- + ## ROUND 14 — v3.0 release: identity continuity (the ped you followed is in the crowd) *PROCITY-D, 2026-07-16. The last charter promise. Behind `?gigs=1`; files `sim.js`, `band.js`, `queue.js`. diff --git a/web/js/citizens/band.js b/web/js/citizens/band.js index a85365d..eec55ea 100644 --- a/web/js/citizens/band.js +++ b/web/js/citizens/band.js @@ -230,8 +230,10 @@ export class GigCrew { if (!gltf || this._gen !== gen) return; const amp = gltf.scene.clone(true); amp.traverse((o) => { if (o.isMesh) { o.castShadow = false; o.frustumCulled = false; } }); - // off to stage-right of the drum riser, on the deck, facing the crowd (world +Z). Room-local coords. - amp.position.set(stage.x + (stage.w || 3) * 0.32, (stage.deckY || 0), stage.z + 0.15); + // R15 (C's §3 ruling): up-stage-right behind the front line — clears the bass rig and offsets from + // C's primitive ampStacks (at ±w·0.28, z−d·0.18), so GLB + primitive read as a flanking backline. + // The old z+0.15 was down-stage and interpenetrated the bassist. Room-local coords; grille to the crowd. + amp.position.set(stage.x + (stage.w || 3) * 0.36, (stage.deckY || 0), stage.z - (stage.d || 3) * 0.22); roomGroup.add(amp); this.props.push(amp); });