feat(theatre): marquee canopy and blade sign; fix two placement bugs

Tools/theatre_trim_build.py builds the El Capitan Theatre's signature features in
world coordinates - projecting marquee (12.0 x 2.60 m canopy, 4.60 m soffit),
illuminated fascia, recessed soffit, vertical blade sign (1.30 x 5.20 m) with frame
and bracket - with a JSON part report. Tools/ue_stage_theatre_trim.py imports and
stages one actor per piece with site materials, clearing a previous run first.

Two bugs, neither visible in a render:
- Axis sign: Blender +Y is Unreal -Y, so the theatre face at Unreal Y +1001 is
  Blender Y -10.01; using +10.01 mirrored the marquee across the boulevard.
- Absolute Z: trim heights ignored the 4.56 m pavement, leaving the canopy 5 cm above
  the ground. GROUND_Z now offsets every height.

QA wall probe: the Y 1000 scan row sat ~1 cm from the building line and grazed the
theatre wall after the kit's proud shopfronts; rows now sample the street envelope
only. Packaged QA back to PASS (transect 0 holes, wall probe 0/35, facade probe 0/9).
Screenshots re-rendered and verified 4/4.
This commit is contained in:
zwitschi committed 2026-11-08 20:03:34 +01:00
1 parent bd1f8a9c2e
commit ec5545b265
18 files changed
+432 -13

No files matched your search

+18
View File
@@ -650,3 +650,21 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO.
north buildings 0.34. Edge density is the dominant gap everywhere (0.04–0.11
against 0.20–0.32 in the references) — the render still lacks the relief the
photographs carry, which is exactly what the `0.1.4` façade work is for.
## 2026-11-09 — theatre marquee + blade sign
- `Tools/theatre_trim_build.py` builds the El Capitan Theatre's signature features in
**world coordinates**: marquee canopy 12.0 × 2.60 m at a 4.60 m soffit, illuminated
fascia, recessed soffit, vertical blade sign 1.30 × 5.20 m with frame and bracket.
`Tools/ue_stage_theatre_trim.py` imports to `/Game/Hollywood/Theatre` and stages one
actor per piece (single spawn at the origin — no placement arithmetic).
- **Two placement bugs, both invisible in a render:**
1. **Axis sign.** Blender +Y is Unreal −Y, so a face at Unreal Y +1001 is Blender
Y −10.01. Using +10.01 put the whole marquee on the far side of the boulevard.
2. **Absolute Z.** Trim heights were absolute while the pavement at the theatre is
4.56 m above the project datum, so the canopy hung 5 cm above the pavement — the
QA wall probe caught it as a knee-height blocker. `GROUND_Z` now offsets every
height.
- Wall probe: a scan row at Y 1000 sat ~1 cm from the frontage building line and
grazed the theatre wall once the kit's proud shopfronts went in. Rows now sample the
street envelope only (−1400, −167, 800, −1382, 718).