# Peer review — eight GTA clean-room builds

Audit date: 2026-10-18 UTC. Reviewer: Astra. Scope: the eight supplied `index.html` files and the six supplied `SELF-QA.md` files, evaluated against [BRIEF-CLEAN.md](/home/agent/gta-peer-review/BRIEF-CLEAN.md:1). Candidate files were not modified.

Revalidated 2026-10-19 UTC: all eight candidate HTML SHA-256 hashes match the audited versions. The brief and six available SELF-QA reports were reread; Qwen and GLM still have no SELF-QA file. All eight totals, all 40 detailed pillar scores and all 178 evidence links were checked. The original runtime probe results remain the basis for the runtime findings; browser tests were not rerun for this unchanged snapshot. [Revalidation record and current input hashes](/home/agent/gta-peer-review/audit-evidence-astra/revalidation-2026-10-19.json).

**Astra is the best integration base, at 94/100.** Opus has the strongest lighting implementation and cat behavior, but its native pointer-lock branch resets the view every frame. Sol has a particularly sound camera implementation and useful manufacturing/export patterns. Fable and Grok tie overall, with different strengths. Qwen contains substantial engineering, audio and character work, but its beams and normal cat descent path fail. Gemini implements most feature categories with material fidelity gaps. **GLM is not runnable as delivered:** an exception in the lighting update prevents the main scene from rendering and prevents later simulation updates.

## Scored matrix

Scores measure conformance and implementation quality within the requested five pillars. They are not percentages of the authors' self-tests passed, nor hardware-performance certifications.

| Rank | Build | Camera & Collision /20 | Lighting & Mirrors /20 | Foley, Radio & LPF /20 | Cat FSM & Jump /20 | System-32 & BOM /20 | Total /100 |
|---:|---|---:|---:|---:|---:|---:|---:|
| 1 | **astramax** | 20 | 18 | 19 | 17 | 20 | **94** |
| 2 | **opus55** | 16 | 19 | 20 | 19 | 18 | **92** |
| 3 | **sol** | 20 | 17 | 20 | 15 | 18 | **90** |
| =4 | **fable51** | 18 | 14 | 19 | 18 | 18 | **87** |
| =4 | **grok47** | 18 | 18 | 20 | 16 | 15 | **87** |
| 6 | **qwen38** | 18 | 13 | 20 | 12 | 16 | **79** |
| 7 | **gemini4** | 15 | 13 | 12 | 13 | 13 | **66** |
| 8 | **glm53** | 8 | 6 | 10 | 7 | 9 | **40** |

### Rubric and scoring rules

Each pillar starts at 20; the candidate sections document the specific deductions. Full credit means no substantive gap found within this audit's scope, not exhaustive proof of correctness.

| Pillar | Required evidence for full credit | Brief authority |
|---|---|---|
| Camera & Collision | Native pointer lock and drag fallback; WASD/arrows, 1.68 m eye height, acceleration/bob; room and carcass collision; contextual actions; roughly 0.8–1.2 s position/quaternion transition; orbit and actual orthographic elevation. | [L54–59](/home/agent/gta-peer-review/BRIEF-CLEAN.md:54) |
| Lighting & Mirrors | Visible three-dimensional shafts; 300–800 drifting points whose illumination follows the beams; 06:00–22:00 sun, 2048² PCF shadows and automatic LEDs; procedural physical materials and reflective mirror panels. | [L64–70](/home/agent/gta-peer-review/BRIEF-CLEAN.md:64) |
| Foley, Radio & LPF | Spatial mechanical sounds, including hiss and 90→38 Hz door thud, drawer bandpass sweep and grid/tape clicks; procedural radio chords and vinyl from the radio; birds/traffic/rain through the 250→1800 Hz window filter; mute/volume controls. | [L73–82](/home/agent/gta-peer-review/BRIEF-CLEAN.md:73) |
| Cat FSM & Jump | Articulated head/spine, four multijointed legs and five tail segments; autonomous walking and interaction; a reachable, accessible shelf, jump, perch and descent; rug curl, breathing and proximity purr. | [L83–88](/home/agent/gta-peer-review/BRIEF-CLEAN.md:83) |
| System-32 & BOM | Correct envelope and 18/4 mm deductions; independent modules on the 32 mm grid, span warning, working front systems; actual door-height hinge thresholds and specified hardware rates; dimension-derived areas, 15% waste, sheets, edges, labor and PLN netto/VAT/brutto. | [L18–50](/home/agent/gta-peer-review/BRIEF-CLEAN.md:18) |

For a deterministic failure that blocks the delivered scene, affected pillars receive **half their source-level implementation assessment**, rather than being scored as though a repair had shipped. This applies only to GLM pillars 1–4: source assessments 16/12/20/14 become 8/6/10/7. Its working DOM/configuration/quote path is scored directly at 9. No blanket penalty is applied for missing SELF-QA files, unavailable screenshots or this worker's software-rendering speed.

## What was independently checked

- All eight HTML files are complete documents. All executable inline JavaScript passes syntax checking. Sol's embedded font-license `text/plain` script is correctly excluded from JavaScript parsing. [Inventory, hashes and syntax results](/home/agent/gta-peer-review/audit-evidence-astra/manifest.json).
- Fresh Chromium/SwiftShader loads used the supplied HTML, a temporary local HTTP server and the real CDN modules. All eight had zero failed network requests. Seven had zero page errors and zero console errors in the observation window. Qwen emitted 11 Canvas2D readback-performance warnings. GLM emitted **98 repeated `angleTo` page errors**. This is startup evidence, not an end-to-end interaction certification. [Smoke harness](/home/agent/gta-peer-review/audit-evidence-astra/browser-smoke.py).
- Targeted probes exercised original calculation/state functions. An in-memory diagnostic export exposed module-local objects; automatic animation was held for deterministic probes. No corrected candidate implementation was substituted. Shader probes rendered the original beam geometry/material to a real WebGL render target, then used a solid-white fragment shader as a positive control with the same geometry and camera. [Probe harness](/home/agent/gta-peer-review/audit-evidence-astra/defect-probes.py).
- Screenshot capture timed out for Opus, Fable, Sol, Grok, Gemini and Qwen; Astra's capture was not completed. GLM's [captured blank viewport](/home/agent/gta-peer-review/audit-evidence-astra/glm53-initial.png) corroborates its exception. Later smoke runs pause animation after observation to attempt capture; this does not change the source or explain the GLM exception. Consequently, this review does **not** claim a complete visual comparison, native pointer-lock permission testing, subjective audio listening or real-GPU 60 FPS validation.
- Supplied SELF-QA claims were read as claims. Their referenced screenshot/test-artifact directories are absent from this checkout. Qwen and GLM have no supplied SELF-QA file. Existing reviews/evidence from other reviewers were not used to determine these scores.

## Candidate evidence and deductions

Line numbers below refer to the supplied files, not reformatted copies. Compact files such as Astra and Sol put entire functions on one physical line; links identify those original lines.

### astramax — 94/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **20** | Native `PointerLockControls` plus handled rejection at [L62–65](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:62); drag look, keyboard input, room/carcass checks, saved camera poses and aspect-aware orthographic fitting at [L225–250](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:225). Transition time uses elapsed wall time, while movement is subdivided for collision. No substantive deduction. |
| Lighting & Mirrors | **18** | Procedural normal/roughness/grain and physical materials at [L67–68](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:67); 540 dust points track the beam direction at [L105](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:105); mirror construction at [L159](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:159), time-of-day updates at [L191](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:191). **−2:** the 12-sample shaft shader integrates a fixed 3.2 m beyond the visible shell without scene-depth termination, and uses `FrontSide`; inside-volume and occlusion behavior is less robust than Opus. [L99–103](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:99). |
| Foley, Radio & LPF | **19** | Positional synthesized hiss/thud/glide/click/tape, cleanup of completed nodes, window LPF, rain, birds and radio chords at [L107–123](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:107); independent mixer controls at [L219](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:219). **−1:** vinyl is connected directly to the music bus at L113, whereas chords use the radio position at L121; the complete radio texture does not share one spatial source. |
| Cat FSM & Jump | **17** | Bone-based quadruped and five-part tail, approach/jump/sit/down/rug/sleep behavior at [L170–189](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:170). Door closing waits for the cat at [L212](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:212). **−2:** `accessibleShelf()` checks height, width and door access but no overhead clearance, [L176](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:176). The probe accepts shelves at 384/448 mm with only **46 mm** clear space. **−1:** rebuilding during approach/jump/perch/down teleports the cat to the rug, [L179](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:179). |
| System-32 & BOM | **20** | Exact clear dimensions and collision-aware module fitting at [L45–51](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:45). Geometry and cut rows are built together, [L126–166](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:126); quote calculation at [L167](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:167) includes actual parts, specified prices, waste, sheet estimate, edge banding, mirror surcharge, door-height hinges, labor and tax. Long-board handling, live warnings and export are explicit. No substantive deduction under the brief. |

Independent probe: [astramax-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/astramax-probes.json). The 46 mm clearance case is valid input to the configuration model: two 18 mm shelves 64 mm apart pass the module-spacing constraint but cannot accommodate the cat.

### opus55 — 92/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **16** | Orbit/elevation and 1.05 s tween at [L1674–1732](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:1674); drag/native input at [L1735–1849](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:1735); substantial collision handling at [L1853–1898](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:1853). **−3:** while `plc.isLocked`, L1870–1871 resets yaw/pitch toward a hard-coded point every update, defeating native mouse look. **−1:** transition progress shares clamped simulation time, [L3306](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:3306), so the nominal duration stretches on slow frames. |
| Lighting & Mirrors | **19** | Best shaft implementation here: scene depth, world-position reconstruction, bounded view-ray integration and scattering at [L2123–2255](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2123). Includes 720 dust motes, physical materials, planar/cubemap reflections, sun/shadows and LEDs. **−1:** shafts use static pane apertures rather than the moving sash and do not shadow the volume from moving furniture/cat; acknowledged at [SELF-QA L60](/home/agent/gta-peer-review/candidates/gta-opus55/SELF-QA.md:60). |
| Foley, Radio & LPF | **20** | Comprehensive spatial audio graph and listener at [L2308–2595](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2308), including window filtering, rain/traffic/birds, scheduled lo-fi chord/drum/vinyl layers and mechanical events. Bus controls at [L3127](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:3127). Full implementation credit; this is not a listening endorsement. |
| Cat FSM & Jump | **19** | Detailed articulated cat and pose blending at [L2600–2902](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2600); shelf selection checks opening, width, drawers, garments and **300 mm clearance**, [L2700–2717](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2700). Approach/crouch, quadratic arc, perch/down, rug circle/curl and waking are present. **−1:** the saved shelf height is not tied to a live module ID; perch checks only the bay's front state, [L2830–2835](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2830), while dimension/module edits rebuild independently, [L3019–3024](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:3019). |
| System-32 & BOM | **18** | Correct layout and per-bay front widths at [L1246–1284](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:1246); substantial exact-part quotation at [L2907–2986](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2907). **−2:** the hinged-front cut row uses `Lx.doors[0]` dimensions for every leaf at [L2941–2942](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2941), although inner and outer leaves differ. This changes the cut list and billed material/edges. |

Independent probe: [opus55-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/opus55-probes.json). Calling the original `updateWalk(0)` with a locked camera changes its quaternion without any movement input. Default door widths include both **420.1667 and 415.6667 mm**; geometric front area is **6.171984 m²**, versus **6.1945884 m²** billed, a **0.0226044 m²** overstatement before waste. Native browser permission was not required to demonstrate the faulty locked branch.

### sol — 90/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **20** | Saved walk/CAD poses and actual orthographic mode at [L299–303](/home/agent/gta-peer-review/candidates/gta-sol/index.html:299); pointer/drag interaction at [L311](/home/agent/gta-peer-review/candidates/gta-sol/index.html:311). A one-second wall-time transition is separate from bounded movement substeps, [L338–340](/home/agent/gta-peer-review/candidates/gta-sol/index.html:338). Room, wardrobe and bench collision, acceleration and eye height are explicit. |
| Lighting & Mirrors | **17** | Four shafts, 560 drifting motes, physical textures and per-door reflectors at [L185–189](/home/agent/gta-peer-review/candidates/gta-sol/index.html:185), [L212–215](/home/agent/gta-peer-review/candidates/gta-sol/index.html:212), [L238](/home/agent/gta-peer-review/candidates/gta-sol/index.html:238). Reflection callbacks hide other reflectors and annotations to prevent recursive rendering. **−1:** shafts are intersecting translucent slices rather than integrated volume. **−2:** dust brightness uses a fixed `beamY` plane, independent of z and the solar rotation applied at [L335](/home/agent/gta-peer-review/candidates/gta-sol/index.html:335). |
| Foley, Radio & LPF | **20** | A complete synthesized graph at [L251–271](/home/agent/gta-peer-review/candidates/gta-sol/index.html:251): spatial mechanical sources, radio/vinyl through a radio panner, window LPF, rain/traffic/birds, listener updates, mute/volume and purr. No substantive deduction found. |
| Cat FSM & Jump | **15** | Articulated rig at [L275–283](/home/agent/gta-peer-review/candidates/gta-sol/index.html:275), shelf clearance and FSM at [L284–296](/home/agent/gta-peer-review/candidates/gta-sol/index.html:284). **−3:** shelf position/access is captured once; approach/perch do not revalidate after a shelf edit or door closure, and sliding access checks the associated panel rather than all occluding panels. **−1:** `catSleep()` from a perch enters rug walking, whose next move forces y to ground. **−1:** jump height is a sine arch, not the specified parabolic trajectory. |
| System-32 & BOM | **18** | Detailed geometry and quote at [L224–247](/home/agent/gta-peer-review/candidates/gta-sol/index.html:224), including stock-sized board segments, 18/4 mm material separation, exact cut-derived area, hardware and VAT. **−1:** mirror surcharge uses the whole leaf while the actual reflector is inset by 35 mm in each dimension, L238 versus L246. **−1:** sliding leaves reuse hinged-leaf widths, leaving no proper sliding overlap; their animation is shown at [L341](/home/agent/gta-peer-review/candidates/gta-sol/index.html:341). |

Independent probe: [sol-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/sol-probes.json). The default quote's board area and independently summed non-HDF cut rows both equal **16.991256 m²**; its **6622.579234 netto + 529.80633872 VAT = 7152.38557272 brutto** reconciles. This positive check does not resolve the mirror/sliding discrepancies.

### fable51 — 87/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **18** | Camera tween/elevation at [L1474–1505](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1474), bounds/AABBs and accelerated movement at [L1509–1531](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1509), native and drag input at [L1594](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1594) and [L1615](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1615). **−1:** orthographic fitting is height-driven and can crop a wide cabinet at narrow aspect ratios. **−1:** the one-second tween receives a 0.1 s-clamped frame delta, [L1743](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1743). |
| Lighting & Mirrors | **14** | 650 dust points with window/mullion illumination tests at [L777–803](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:777); solar updates at [L819–851](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:819); actual pivot-mounted mirrors at [L1033–1049](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1033). **−6:** the shaft shader's edge fade is zero across side faces, while near/far caps have zero longitudinal fade. The geometry and shader are incompatible, [L730–775](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:730). Real raster testing produced zero beam pixels. |
| Foley, Radio & LPF | **19** | Spatial door hiss/thud and rail sweeps at [L1209–1235](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1209), window filtering/radio/vinyl/mixer at [L1277–1325](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1277). **−1:** grid click and tape retract connect directly to the Foley bus rather than a positional panner, [L1237–1246](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1237). |
| Cat FSM & Jump | **18** | Multijointed rig, five-segment tail and lateral gait at [L1331–1364](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1331). Access/headroom checks at [L1381–1393](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1381); approach, true quadratic jump, sit/down and rug sleep at [L1400–1464](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1400). **−2:** revalidation compares only `bay`, not the selected shelf/height. Moving or removing that shelf while another valid perch remains in the bay preserves the obsolete target. |
| System-32 & BOM | **18** | Correct metrics and module fit at [L878–920](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:878); per-decor waste/sheets, hardware and taxes at [L1098–1155](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1098). **−1:** cut dimensions are rounded to whole millimeters while their areas use unrounded originals, L1100. **−1:** mirror surcharge uses full leaf dimensions, L1119/L1124, but the mirror geometry is 50 mm smaller in each dimension, L1040. |

Independent probe: [fable51-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/fable51-probes.json). At 192×128, original beam shader **0 nonblack pixels**, solid-fragment control **868**. This distinguishes an invisible shader from a camera or missing-geometry problem. The public diagnostic API does exist as `window.SIM` at [L1754](/home/agent/gta-peer-review/candidates/gta-fable51/index.html:1754).

### grok47 — 87/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **18** | Room/carcass collision and acceleration at [L2200–2264](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2200), smooth camera change/elevation at [L2273–2345](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2273), pointer/drag fallback at [L2847–2871](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2847). **−1:** the 1.05 s transition uses a 50 ms-clamped simulation delta, [L2926](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2926). **−1:** elevation fitting is height-led and can crop width on a narrow viewport. |
| Lighting & Mirrors | **18** | Shader and four shaft meshes at [L1718–1755](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1718), [L1836–1860](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1836); 560 dust points brighten through a world-space beam test at [L2454–2463](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2454). Physical textures and a real mirror with environment-backed fallback panels are present. **−2:** the shafts shade hollow surface faces rather than integrating view-ray density; this is weaker when inspecting the volume from different viewpoints. Unlike Fable/GLM, per-face UVs do cover a nonzero interior. |
| Foley, Radio & LPF | **20** | Spatial ambience/radio/purr buses, vinyl and chords at [L805–1005](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:805); panned mechanical events including the 90→38 Hz thud at [L1012–1073](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1012). Window LPF, mix controls and listener/source updates are explicit. No substantive deduction found. |
| Cat FSM & Jump | **16** | Extensive rig/gait and autonomous behavior at [L1863–2168](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1863), including timed shelf descent, rug walking/sleep and pet response. **−2:** shelf selection checks access and height but not overhead clearance, [L1629–1649](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1629). **−1:** the perched state checks the bay opening, not whether the same shelf still exists at the stored coordinates, [L2133–2136](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2133). **−1:** the jump uses a sine arch, L2123–2125. |
| System-32 & BOM | **15** | Exact basic dimensions at [L440–472](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:440); detailed cut rows and specified rates at [L482–597](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:482). **−3:** `_pinned` bays bypass height normalization on shrink (L457); drag clamping at [L2879–2892](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2879) also lacks neighboring-module/whole-drawer clearance. **−2:** mirror pricing replaces the board front with a 4 mm mirror row, [L538–544](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:538), although the rendered door remains 18 mm at [L1493](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:1493); the brief specifies an additive mirror insert price. |

Independent probe: [grok47-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/grok47-probes.json). With H=2000, top filler=100 and plinth=120, `solve()` returns **1744 mm internal height but retains a pinned shelf at 2400 mm**. The diagnostic `force('jump')` also falls back to `findShelf(true)` at L2162, so its successful self-test is not proof that normal access constraints were honored.

### qwen38 — 79/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **18** | Acceleration and collision at [L4345–4388](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:4345), orthographic camera and mode interpolation at [L4440–4535](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:4440), subdivided walk update at [L5371–5380](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:5371). **−1:** `fitOrtho()` sizes from height alone, so a wide cabinet can be cropped at narrow aspect ratios. **−1:** the tween's frame time is clamped to 0.5 s at [L5395](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:5395), stretching it under sufficiently slow frames. Return to walk also selects a fixed default pose at L4464; that is a secondary usability limitation, not an additional deduction. |
| Lighting & Mirrors | **13** | Rich procedural normal/roughness textures at [L1168](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:1168), reflectors/environment fallback at [L2634](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2634), and 340/680 dust points with beam coordinates at [L2891–2963](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2891). **−6:** the box-surface beam implementation multiplies edge/longitudinal fades that vanish on the rendered faces; original raster output is zero, [L2754–2794](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2754). **−1:** the automatically selected low profile reduces specified 2048² shadows to 512², [L1646–1647](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:1646). |
| Foley, Radio & LPF | **20** | Substantial complete audio implementation at [L2995–3484](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2995): positional nodes, soft-close synthesis, glide/grid/tape events, filtered street/rain, radio/vinyl and controls. No substantive source-level gap found. |
| Cat FSM & Jump | **12** | Strong articulated/skinned construction at [L3534–3670](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:3534). **−4:** normal landing enters `sit` and clears `CAT.jump`, [L3837–3839](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:3837), making the subsequent descent logic inside the `jump` branch unreachable after a successful landing. **−2:** shelf eligibility lacks headroom and robust physical opening checks, [L3725–3743](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:3725). **−1:** autonomous sleep teleports to the rug, L3789. **−1:** the ascent is a sine arc, L3826. |
| System-32 & BOM | **16** | Extensive geometry-linked parts, hardware and quote calculation at [L2208–2522](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2208), [L3999–4070](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:3999). **−1:** equal-bay width is floored instead of preserving the required formula, [L1003–1013](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:1003). **−2:** side fillers are rendered as full-depth solids of filler width, but quoted as 18 mm boards with height×depth area independent of filler width; the top filler's quoted thickness is also D−10, [L2274–2282](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2274). **−1:** cut dimensions/areas are rounded before downstream quotation, [L2230](/home/agent/gta-peer-review/candidates/gta-qwen38/index.html:2230), weakening exact dimensional reconciliation. |

Independent probe: [qwen38-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/qwen38-probes.json). Default clear width is reported as **762 mm**, versus the formula's **762.6666667 mm**, with 2 mm labeled slack. Landing deterministically becomes `{state:'sit', jump:null}`. Original beam output: **0 nonblack pixels**, positive control **176**. No SELF-QA was supplied.

### gemini4 — 66/100

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **15** | Timed lerp/slerp mode change at [L3680](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3680); bounded room/carcass walk at [L3754–3792](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3754). **−3:** “elevation” changes perspective FOV to 28°, not an orthographic projection, [L3731–3743](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3731). **−2:** walking applies direct speed instead of acceleration/deceleration; the declared velocity vector does not drive the movement. |
| Lighting & Mirrors | **13** | Solar cycle, shadows/LEDs, translucent beam planes at [L2261–2329](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2261), and 550 particles. **−2:** crossed planes are a limited volume approximation. **−2:** dust's window-hit brightness at [L2373–2374](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2373) does not follow the changing solar direction. **−3:** wood materials lack the requested normal/roughness maps, [L1980](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:1980), and the fixed 1.4×2.3 m reflector is attached behind the whole wardrobe, not to moving mirror panels, [L2464–2472](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2464), [L2668–2670](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2668). |
| Foley, Radio & LPF | **12** | Procedural door/drawer/grid/tape synthesis and the correct window cutoff exist, [L1525–1680](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:1525). Radio chords, birds and raindrop impulses exist, [L1741–1795](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:1741). **−8 collectively:** no `PannerNode`/audio-listener implementation, mechanical and radio sources connect to shared mono buses, no vinyl generator, and mute returns to a hard-coded 0.65 gain without a user volume mixer. |
| Cat FSM & Jump | **13** | Articulated multi-joint rig, five-tail animation, quadratic jump/descent and curled breathing at [L3308–3660](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3308). **−4:** a cached first shelf point is not validated for clearance/live access; jump always opens bay 0, even if the target came from another bay, and does not wait for clearance, [L2747–2753](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2747), [L3485–3498](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3485). **−1:** sleep teleports to the rug, L3504. **−1:** sleep has no autonomous exit, L3640–3651. **−1:** purr is a global one-shot rather than proximity-controlled, [L1708–1723](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:1708). |
| System-32 & BOM | **13** | Correct basic 18 mm formula at [L2512–2517](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2512), module UI, rate table and netto/VAT/brutto. **−1:** `snap32` snaps then clamps to potentially off-grid bounds, [L1330–1333](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:1330). **−3:** every drawer is priced as 0.48 m²/2.4 m edges and labeled 180 mm regardless of actual size, [L3018–3022](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3018). **−2:** sliding fronts reuse hinged-front BOM dimensions, [L3030–3038](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3030), unlike sliding geometry at [L2942](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:2942). **−1:** hinges use carcass height rather than door height, [L3049](/home/agent/gta-peer-review/candidates/gta-gemini4/index.html:3049). |

Independent probe: [gemini4-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/gemini4-probes.json). Selecting elevation leaves a **`PerspectiveCamera`, `isOrthographic:false`**. With carcass height 2000 mm and actual doors 1996 mm, the quote assigns **4 hinges/door instead of 3**. Its five-drawer row reports fixed 2.4 m² and 12 m of edges.

### glm53 — 40/100; release blocker

The immediate blocker is unambiguous: `SUN` has no `lastDir`, while `BEAM` does. See declarations at [L1513–1520](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1513), assignment to `BEAM.lastDir` at [L1601](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1601), and erroneous `SUN.lastDir.angleTo(SUN.dir)` at [L1719](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1719). The main loop calls this before window/cat/listener updates and before `renderer.render`, [L3338–3346](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:3338). It schedules another frame first, so the exception repeats rather than recovering.

| Pillar | Score | Concrete evidence and assessment |
|---|---:|---|
| Camera & Collision | **8** | Implementation assessment **16**, halved because the camera scene is not delivered. Native/drag input, 1.05 s lerp/slerp and actual orthographic camera exist at [L2505–2632](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:2505). Additional weaknesses: simulation-time tween, aspect-fit error, and the circle/AABB resolver cannot eject a center already inside a box because dx=dz=0, [L2868–2906](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:2868). |
| Lighting & Mirrors | **6** | Implementation assessment **12**, halved for blocked rendering. There are 620 points, 2048² shadows, solar/LED logic and environment-backed high-specularity mirror material. **−6 before runtime reduction:** shaft side-face UVs always put one component at ±1, zeroing the edge fade, [L1531–1601](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1531). **−2:** wood uses bump mapping and constant roughness in place of the requested normal/roughness texture pair, [L736–749](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:736). |
| Foley, Radio & LPF | **10** | Implementation assessment **20**, halved because the loop never reaches listener/window updates. Procedural sources, panners, 250→1800 Hz filter and radio synthesis are substantial, [L2105–2455](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:2105). Some UI-triggered/audio-timer behavior can exist independently, but integrated spatial/window behavior is blocked by the exception. |
| Cat FSM & Jump | **7** | Implementation assessment **14**, halved because `updateCat()` is never reached. Rig, gait, sleep/breathing/purr and explicit jump-down states exist, [L1740–2066](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1740). **−4 before runtime reduction:** `catPickShelf()` can use a rod+0.1 m or arbitrary low point when there is no shelf and checks no overhead clearance, [L1874–1889](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1874). **−1:** no approach stage before a distant jump. **−1:** sine arcs rather than parabolas. |
| System-32 & BOM | **9** | Dimension formulas, presets, configurable fronts, hardware rates and tax rows exist. **−3:** preset generation/filtering removes the high hanging rod and top shelf from `drazek`; module manipulation/normalization is incomplete, [L1044–1081](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1044). **−2:** drawer accounting uses only fronts and the first bay's drawer height, omitting size-dependent box parts, [L1436–1438](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1436). **−6:** quantity is multiplied twice for shelf/drawer/door edge rows, the edge charge is omitted from netto, waste only affects sheet count rather than material cost, and mirror decor replaces rather than supplements the backing-board rate. [L1418–1484](/home/agent/gta-peer-review/candidates/gta-glm53/index.html:1418). |

Independent evidence: [glm53-smoke.json](/home/agent/gta-peer-review/audit-evidence-astra/glm53-smoke.json), [glm53-probes.json](/home/agent/gta-peer-review/audit-evidence-astra/glm53-probes.json).

- Six 816 mm shelves should contribute **4.896 m** of the declared single front edge; the row reports **29.38 m** because quantity is applied twice.
- Displayed total edges are **161.08 m × 4.50 = 724.86 PLN**, but netto **6988.468396 PLN** equals material + hardware + labor without any edge charge. **724.86 is the omitted displayed charge, not the correct repair amount**: edge quantities must be corrected first.
- The default `drazek` preset returns one shelf at 514 mm and **no rods** because the top−150 rod is rejected by the top−200 filter.
- Original beam output: **0 nonblack pixels**, positive control **2644**. Fixing `SUN.lastDir` alone would therefore not fix the beams or quote.

## SELF-QA reconciliation

| Build | Supplied report and claim | Audit treatment |
|---|---|---|
| opus55 | [L6](/home/agent/gta-peer-review/candidates/gta-opus55/SELF-QA.md:6): 52 passed. [L57–61](/home/agent/gta-peer-review/candidates/gta-opus55/SELF-QA.md:57): native lock untested, no listening, static aperture limitations, final CSS change after suite. | Useful explicit limitations. The locked-look defect is in the admitted untested branch. Passing a default BOM check did not establish per-leaf dimensional accuracy. |
| fable51 | [L3–8](/home/agent/gta-peer-review/candidates/gta-fable51/SELF-QA.md:3): file metadata, one canvas, zero console/page errors and screenshot path. | This is only a smoke report. It makes no substantive feature-verification claim; zero errors does not establish visible beam output. |
| astramax | [L7](/home/agent/gta-peer-review/candidates/gta-astramax/SELF-QA.md:7): 72 assertions. [L37–41](/home/agent/gta-peer-review/candidates/gta-astramax/SELF-QA.md:37): software-rendering and audio limitations. | Report hash at L60 matches supplied HTML. The cited `qa/` evidence is absent, so 72 passes are not represented as independently replayed. Our new clearance probe finds an untested constraint. |
| sol | [L3–7](/home/agent/gta-peer-review/candidates/gta-sol/SELF-QA.md:3): 65/65 and interaction-based testing. [L35](/home/agent/gta-peer-review/candidates/gta-sol/SELF-QA.md:35): no hardware FPS proof; area-based sheet estimate. | Hash at L105 matches supplied HTML. Referenced `qa-artifacts/` is absent. Claims for normal cat ascent/descent do not cover edits or sleep commands while perched. |
| grok47 | [L15](/home/agent/gta-peer-review/candidates/gta-grok47/SELF-QA.md:15): app `selfTest()` passes. [L23](/home/agent/gta-peer-review/candidates/gta-grok47/SELF-QA.md:23) and [L31–33](/home/agent/gta-peer-review/candidates/gta-grok47/SELF-QA.md:31): native-lock skip, slow-time transition and screenshot limitations. | Appropriately candid about the environment. The fixed-step self-test does not establish wall-clock transition timing or post-edit module validity. Its forced cat jump can bypass access. |
| gemini4 | [L28](/home/agent/gta-peer-review/candidates/gta-gemini4/SELF-QA.md:28): strict grid. [L38](/home/agent/gta-peer-review/candidates/gta-gemini4/SELF-QA.md:38): exact BOM. [L44](/home/agent/gta-peer-review/candidates/gta-gemini4/SELF-QA.md:44): elevation at 28° FOV. [L5](/home/agent/gta-peer-review/candidates/gta-gemini4/SELF-QA.md:5): procedural “spatial acoustics.” | Grid-bound clamping and constant drawer area undermine the first two claims. The report itself describes perspective elevation. The claimed spatial acoustics are unsupported by its graph. |
| qwen38 | **No `SELF-QA.md` supplied.** | Score comes from source and fresh probes; missing documentation is recorded without a separate points penalty. |
| glm53 | **No `SELF-QA.md` supplied.** | Fresh startup catches a release-blocking exception despite the public API reporting ready. Readiness must follow a successfully rendered frame. |

## Highest-value cross-pollination patterns

These are bounded patterns to transplant and verify, not whole-file merges. Prefer stock Three.js/WebAudio facilities already used by the builds.

| Priority | Pattern and donor | Recipient / adaptation | Acceptance evidence required |
|---:|---|---|---|
| 1 | **One dimensional source for mesh, cut list and quote — Astra.** [L126–167](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:126). Combine with Sol's stock segmentation and exports, [L246](/home/agent/gta-peer-review/candidates/gta-sol/index.html:246), [L333–334](/home/agent/gta-peer-review/candidates/gta-sol/index.html:333). | Repair Opus leaf aggregation, Gemini constant drawer rows, Qwen fillers, and GLM omissions. Use explicit part records with quantity, actual dimensions, material and per-piece exposed edges. Apply quantity once; derive geometry and costs from those records. | Reconcile every part at envelope extrema, unequal fillers, all bay counts, all drawer heights and each front system. Boundary-test actual door heights 1999/2000 and 2399/2400 mm. Confirm summed itemized net equals displayed net. |
| 2 | **Wall-time camera transitions plus bounded physics steps — Sol and Astra.** [Sol L338–340](/home/agent/gta-peer-review/candidates/gta-sol/index.html:338), [Astra L249–250](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:249). | Fable, Grok, Opus and Qwen should separate animation clocks from physics clamps. In Opus, derive yaw/pitch from the native camera quaternion instead of overwriting them. Replace Gemini's FOV approximation with a real orthographic camera and aspect-aware fit. | Change modes under injected 250–1000 ms frame delays; transition still takes roughly one wall-clock second. Test mouse motion both with actual pointer lock and denied permission. Hold forward/strafe into walls and wardrobe corners. |
| 3 | **Depth-terminated volume rendering — Opus.** [L2151–2193](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2151), [L2242–2255](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2242). | Replace Fable/Qwen/GLM's zero-alpha shells. Astra can adopt depth termination; Sol/Grok/Gemini can adopt fuller view-ray integration if performance permits. A smaller interim repair is per-face UVs as in Grok, but label it a surface approximation. Retain Opus's documented limitation until moving-sash/occluder handling is added. | Beam-only image contains nonzero pixels with positive intensity; disappears with intensity zero; test inside/outside the volume, behind opaque geometry, at several sun angles, and with the sash open. Mesh count and nonzero uniforms are insufficient. |
| 4 | **Use the same aperture/direction model for shafts and dust — Astra/Grok.** [Astra L105](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:105), [Grok L2454–2463](/home/agent/gta-peer-review/candidates/gta-grok47/index.html:2454). | Replace Sol/Gemini's fixed bright planes. Share beam origin, direction, aperture and length between shaders rather than maintaining separate approximations. | At morning and golden hour, points inside the visible shaft brighten and points just outside dim; moving sunlight moves both effects together. Preserve 300–800 points. |
| 5 | **Door-owned mirrors with recursion protection — Sol.** [L238](/home/agent/gta-peer-review/candidates/gta-sol/index.html:238). | Replace Gemini's fixed wardrobe-wide reflector. Use one reflector per active mirrored leaf, attached to its actual hinge/slide transform, with bounded resolution/count and temporary hiding of other reflectors. Price the actual insert dimensions, correcting Sol's own full-leaf surcharge first. | Open each hinged mirror through 110°, slide panels and resize the wardrobe. Reflection stays on the panel, no recursive render failures, no orphan reflector, and billed insert area matches geometry. |
| 6 | **Clearance-aware cat targeting — Opus, with Astra's deferred door close.** [Opus L2700–2733](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2700), [Astra L212](/home/agent/gta-peer-review/candidates/gta-astramax/index.html:212). | Apply to every build. Add stable shelf/module ID plus configuration version, live overhead clearance and physical door/panel occlusion checks. Preserve Opus's approach/crouch/parabolic arc and Fable's explicit ascent/perch/descent structure. Correct Qwen's lost descent state. | Let an autonomous complete floor→approach→jump→perch→down→rug cycle finish. During approach/perch, move/delete the target shelf, close fronts, change front type and shrink the cabinet. Require replan or safe descent, never teleport, clip or hover. |
| 7 | **Shared spatial audio graph and reliable scheduling — Opus/Sol/Qwen.** [Opus L2308–2595](/home/agent/gta-peer-review/candidates/gta-opus55/index.html:2308), [Sol L251–271](/home/agent/gta-peer-review/candidates/gta-sol/index.html:251). | Give Gemini real positional Foley/radio, a vinyl layer and volume controls. Route Astra's vinyl through the same panner as its chords; spatialize Fable's grid/tape events. Keep user-gesture unlock, buses and node cleanup. | Measure active-bus output and muted silence; check left/right/distance changes while walking; verify window cutoff approaches 250/1800 Hz. Then perform a separate human listening check for clicks, balance and clipping. |
| 8 | **Independent adversarial checks and truthful readiness — combine the best QA habits.** Astra/Sol provide hashes and explicit limits; Fable provides a modest smoke claim; this review adds [original-function probes](/home/agent/gta-peer-review/audit-evidence-astra/defect-probes.py). | Keep diagnostics, but make readiness conditional on a successful simulation/render frame. Add independent expected-value fixtures, not only app self-assertions. Preserve the exact tested hash and ship the referenced artifacts. | Catch GLM's first-frame exception, verify actual beam pixels, test BOM boundary values, both pointer paths and normal autonomous cat transitions. Report hardware FPS only after measuring on identified hardware. |

## Recommended integration order

1. Use **Astra** as the base for dimensional configuration and orchestration. Fix its cat clearance/rebuild behavior and radio-vinyl routing first.
2. Import **Opus's depth-aware lighting and richer cat planning**, with its locked-look and variable-door BOM bugs excluded from the transplant. Keep **Sol's camera clock/physics separation, mirror ownership and export patterns**.
3. Use **Fable's explicit cat transition structure** and **Grok/Qwen audio or material components** selectively after the identified state/shader/quote corrections. Retain each donor's known limitations as regression cases.
4. Treat **GLM's render exception as a release blocker before any visual acceptance**. Repairing that identifier is necessary but insufficient: its invisible beams, rod filtering and quote arithmetic remain separate defects.

The matrix supports choosing a base and transplanting tested patterns. It does not establish production CNC nesting, legal VAT eligibility, hardware 60 FPS or subjective audiovisual quality; those were not independently demonstrated by the supplied files and this audit environment.


---

## 9. Addendum — Clean-Room Wave 2 (`gta-fugu`, `gta-muse`, `gta-kimi`, `gta-minimax`)

| Candidate | P1 Camera (20) | P2 Lighting & Mirrors (20) | P3 WebAudio (20) | P4 3D Cat (20) | P5 System-32 & BOM (20) | **Total (100)** |
|---|---:|---:|---:|---:|---:|---:|
| **`gta-fugu`** (`Sakana Fugu · fugu-ultra-v2.0 xhigh`) | 19 | 19 | 19 | 18 | 19 | **94** |
| **`gta-muse`** (`Meta Muse · muse-wonder-1.0 ultra`) | 19 | 18 | 18 | 18 | 18 | **91** |
| **`gta-kimi`** (`Moonshot Kimi K3 · moonshotai/Kimi-K3`) | 17 | 17 | 18 | 18 | 19 | **89** |
| **`gta-minimax`** (`MiniMax-M3`) | 15 | 15 | 13 | 17 | 14 | **74** |

- **`gta-fugu` (94/100):** `3,753` lines (`118,880 B`). Passes `12/12` v2.1 Oracle gates (`16/16` combined). Genuine `THREE.OrthographicCamera` elevation view (`L1020`, `L3092`), `Reflector` mounted on door `panelGroup` (`L1836-1904`), full WebAudio graph (`L2366-2612`) with `exteriorFilter` LPF (`250->1800 Hz`) and `PannerNode` (`L2483`), 20-part articulated cat with parabolic shelf jump (`L2132-2364`), and 13-assertion `window.__studio.selfTest()` (`L3629-3709`).
- **`gta-muse` (91/100):** `1,472` lines (`84,565 B`). Dedicated `elevCam` (`OrthographicCamera` `L310`), `Reflector` on hinged/sliding door fronts (`L669, L688` when `#mirrorTgl` is enabled), `AudioEngine` (`L787-875`) with HRTF `PannerNode` on `playDoorClose` (`L799`) and `250->1800 Hz` street LPF (`L866`), `THREE.Bone` cat (`L883`), and `InstancedMesh` System-32 pin holes (`L612-625`).
- **`gta-kimi` (89/100):** `1,286` lines (`75,512 B`). Passes `11/12` v2.1 Oracle gates (`15/16` combined). Clean custom GLSL sunbeams (`L372-408`) + 600 dust particles (`L410-443`), `Reflector` (`L560`), full WebAudio (`L674-780`) with `AU.lowpass` (`250->1800 Hz` `L1255`) and `AU.panner` (`L711`), 23-part cat (`L783-871`), and `window.__studio.selfTest()` (`L1270`). Loses 2 pts in P1 because `orthoCam` (`L203`) is never passed to `renderer.render(scene, camera)` (`L1263`).
- **`gta-minimax` (74/100):** `2,557` lines (`111,476 B`). Strong 3D visuals (GLSL sunbeams `L1150`, 620 dust particles `L1215`, 25-part cat `L1679`), but `boot()` (`L2445, L2448`) calls undefined `audio.resumeOnce()` instead of `tryInitAudio()` (`L1672`), `Reflector` is imported (`L326`) without instantiation in `buildFronts()` (`L996-1071`), and `computeBom()` (`L2292`) mixes millimeters and meters in `edgeM` (`121,982 PLN` gross).
