Room 2 buildhub
← Back to the build hub

Build B notes (Fable 5.1, 2026-09-26)

Scene: index.html, generated by build.py from template.html + elements.json (59 elements). 1 unit = 1 ft; schedule in inches.

Placement, in order of the final image

Where the model departs from the image, and why

Assumed dimensions (confirm on site)

Door D-1 and D-3 positions, the pier at 24 x 12 in, the ceiling being flat drywall with no plenum for recessed cans (if it is a slab, the 6 room downlights and the booth one become surface cylinders), the bay return angles 30.54 and 28.0 deg, and everything in shared/gaps-to-measure-on-site.md.

Controls

Walk (WASD, drag, Q/E, R/F, touch stick on phones) with collision, Orbit, an orthographic Plan (drag to pan, wheel to zoom), a Dimensions overlay, four lighting scenes (lounge, session, work, meditation), a searchable Schedule of every element, and a card for any clicked piece with size and position in ft-in and inches.

Passes 5 and 6 (2026-09-26)

Pass 7 and 8 layout corrections (2026-09-26, from the team lead's spec check, spec d5febc3)

Pass 9 (2026-09-26, judge verdict FIX-THEN-SHIP)

Pass 10 (2026-09-26, team lead decision on the two pass 9 conflicts)

Departures still open

Light budget

20 point lights, 11 spot lights (4 downlight spots including the one shadow caster, the 2 inset perimeter spots, the piano lamp, and the track and booth spots), and 1 hemisphere. Pass 10 dropped three downlight spots with the inset cans and added the two perimeter spots, one fewer than pass 9. The shadow map re-renders only when a scene changes.

QA

qa/shot.mjs runs headed bundled Chromium on the Metal GPU. It captures 25 views plus an iPhone 390x844 shot and reports zero page errors. Pass 9 measured 123 fps with the camera still and 106 fps moving, at 281 draw calls and 92k triangles. qa/p9.mjs checks collision walks, plan labels, the schedule and card, and the iPhone plan and card. The iPhone pixel ratio is capped at 1.5. Screenshots are in qa/.

Live at https://rehearsalroom.gregspero.com/build/b/ on 2026-09-26: 107 to 117 fps on an M4 Max through headed Chromium with Metal, and zero console errors.

Pass 9 live on 2026-09-26: 120.5 fps on the M4 Max through headed Chromium with Metal, zero console errors, and the served page matches the built index.html (md5 44d8a557). qa/p9.mjs passed against the live URL.

Pass 10 live on 2026-09-26: 120.5 fps on the M4 Max through headed Chromium with Metal, zero console errors, served page md5 3a8c7dc5 matches the built index.html, and qa/p9.mjs passed against the live URL (83 schedule rows, 22 plan labels at 12.5 px).