CC execution brief: museum panel and exhibition chapter boundary
Status: IMPLEMENTED (issue #28, 2026-08-12) — Part A in src/inception/museumPanel/ (panelLayout.js + panel.ts), Part B in src/inception/world/model/learningCorridor.js and its renderer, with the guided-demo threshold hold in demo/src/world/tour.js. This scope does not include the proposed Van Gogh narrative reorder or new narration audio; both are deferred to Phase 2 after the exhibition text is final.
Goal
Implement two visitor-facing improvements without changing the trust model, artwork provenance, student attribution, or room ownership:
- add a top-right Maximize / Restore control to the reusable Holographic Museum Panel; and
- create a true spatial chapter boundary between Van Gogh/Gauguin works and the students' works in the Van Gogh learning corridor.
Part A — Maximize / Restore at 95%
Work in the shared museum-panel component. Do not create a Van Gogh-only modal.
- Add a top-right control beside Close. Its accessible name and visible label are Maximize museum panel while restored and Restore museum panel while maximized.
- Maximized size is 95vw × 95dvh, centered in the viewport. Respect safe area insets and never exceed the viewport.
- Maximize the existing content surface; do not remount or duplicate the document. Scroll position, focused element, selected text, and loaded images must survive Maximize and Restore.
- In maximized mode, images use
object-fit: containand may use the available width and height without cropping. Text remains independently scrollable. - The panel's world-space projection frame may be visually suppressed while maximized, but the shared panel remains the owner of content, sanitization, focus, and close behavior.
- First Escape while maximized restores the panel. A later Escape closes it. The visible Close control always closes it directly.
- Provide 44 × 44 CSS-pixel minimum pointer/touch targets, visible keyboard focus, and correct
aria-pressedor equivalent expanded-state semantics. - Restore before automatically closing for room change, range exit, portal transition, or exhibit unload so no maximized state leaks into the next panel.
- Preserve reduced-motion behavior: the resize transition is instant when reduced motion is requested.
Acceptance tests must cover 95% sizing, Maximize/Restore labels and state, scroll preservation, Escape precedence, close behavior, focus restoration, mobile viewport sizing, safe-area handling, and image containment.
Part B — Van Gogh → student chapter boundary
The current layout is genuinely mixed: the first student boards on the left begin before the final Van Gogh and Gauguin boards on the right have ended. A label alone would describe a boundary that does not exist.
Make the computed students.start position a real boundary:
- Every student board on both walls must begin after
students.startplus the normal board/header clearance. - No student board may be opposite a masterwork. Keep the current curated order, shared student scale, real aspect ratios, names, consent checks, and two-wall distribution.
- Derive positions from the corridor plan. Do not hard-code today's metre value or today's artwork count.
- Keep the whole corridor inside its existing validated 25–28 m length range. Tune only the student-layout spacing budget if necessary; do not shrink individual artworks.
- At
students.start, add one restrained transition threshold: a thin cyan/cobalt ceiling arch or beam, a matching floor light band, and a section title readable while walking forward. - The threshold must not reduce the 4 m × 4 m passable opening, introduce a collision obstacle, flash, or become a portal.
- Superseded 2026-08-13 (owner round three): the threshold's title is a real public object — the shared
glassSignStandarchetype, thin tech glass on a slim frame — and it therefore DOES collide, from the samepropObstaclesmaths every room prop uses. It stands beside the left wall, so the corridor's walking width is reduced only at its own edge; the beam, uprights and floor band still claim nothing. - English title: From Vincent's Questions to Young Artists' Answers
- Chinese title: 从文森特的问题,到小艺术家的回答
- Supporting line: They looked, wondered, and transformed what they saw.
- Chinese supporting line: 他们观察、发问,再把所见变成自己的创作。
- The heading must also exist in the corridor's accessible DOM text twin.
Update the guided demo so the camera briefly holds on the boundary before the first student narration. Do not add new narration audio in this PR; existing student narration begins after the visual threshold.
Acceptance tests must prove that all masterwork board extents end before all student board extents begin, the threshold uses the computed zone boundary, the corridor remains within its validated length, the passable volume stays clear, the bilingual text twin contains the heading, and the guided route shows the threshold before any student-work beat.
Phase 2 — deferred: reorder the Van Gogh opening narrative
This is the exhibition's thesis, not a small caption edit. The visitor should meet people before looking upward:
- The Postman Joseph Roulin;
- The Poet Eugène Boch;
- the starry works, including Starry Night Over the Rhône and The Starry Night.
Treat this as a thematic sequence, not a claim that every picture was painted in this order. In particular, Starry Night Over the Rhône predates the December 1888 crisis; The Starry Night at Saint-Rémy follows it.
Do not implement this section in the current batch. After the owner finalizes the exhibition text and selected letter excerpts, Phase 2 should:
- place the Roulin and Boch portraits before both starry works while preserving every work, provenance record, physical dimension, and consent decision;
- bind guided-demo camera beats to stable artwork ids instead of array indices;
- update narration, subtitle segmentation, museum text, recording, and timing as one reviewed change; and
- add ordering and transcript-integrity tests.
Until then, keep the existing masterwork order and all thirteen current audio cues unchanged. The bilingual transcript documents are editorial records, not authorization to ship the proposed opening.
Required verification
- Run
npm run check. - Manually inspect restored and maximized panels on desktop and a phone-sized viewport.
- Walk the entire learning corridor in both directions and confirm that the final masterwork, the transition threshold, and the first student work read as three distinct moments.
- Do not deploy. Open an English-only PR for review.