Lane D R15 (v3.0): guitar_amp up-stage per C's §3 ruling (ledger #4)

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 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-16 10:25:08 +10:00
parent a0b578477c
commit 66aec0f83c
2 changed files with 16 additions and 2 deletions

View File

@ -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) ## 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`. *PROCITY-D, 2026-07-16. The last charter promise. Behind `?gigs=1`; files `sim.js`, `band.js`, `queue.js`.

View File

@ -230,8 +230,10 @@ export class GigCrew {
if (!gltf || this._gen !== gen) return; if (!gltf || this._gen !== gen) return;
const amp = gltf.scene.clone(true); const amp = gltf.scene.clone(true);
amp.traverse((o) => { if (o.isMesh) { o.castShadow = false; o.frustumCulled = false; } }); 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. // R15 (C's §3 ruling): up-stage-right behind the front line — clears the bass rig and offsets from
amp.position.set(stage.x + (stage.w || 3) * 0.32, (stage.deckY || 0), stage.z + 0.15); // C's primitive ampStacks (at ±w·0.28, zd·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); roomGroup.add(amp);
this.props.push(amp); this.props.push(amp);
}); });