feat(mockups): slot 13 curtain call; allow three.js in 13

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Opus 5.5 committed 2026-10-30 00:15:33 +01:00
1 parent b511d67f4e
commit df8ab8d174
12 files changed
+109 -4

No files matched your search

+5
View File
@@ -48,3 +48,8 @@ merge request. Both override the superpowers default paths.
the repo every session — measurably slower and more tokens).
**Consequences:** Rule changes happen in one file; pointer files must stay thin. Plans are working
artefacts: kept after merge they go stale and contradict the code, so the spec is the record.
## 2026-10-30 — three.js allowed in mockup 13
**Decision:** mockup 13 (Curtain call) may use three.js, like 06 and 07. It mocks the frieze → 3D sea →
frieze → cave transition, which needs the 3D sea. three.js is already a dependency; nothing new is added.
+1 -1
View File
@@ -22,7 +22,7 @@ or `AGENTS.md` Commands.
| `bun install --frozen-lockfile` | worked (no changes) |
| `bun test` | worked — 34 pass, 0 fail, 3 files |
| `bun test tests/data.test.ts` | worked — 10 pass |
| `bun test -t "registry has 12"` | worked — 1 pass |
| `bun test -t "registry has 13"` | worked — 1 pass |
| `bun run typecheck` | worked (`tsc --noEmit`, exit 0) |
| `bun run build` | worked — `dist/server.js` + hashed page assets |
| `bun run dev` (`PORT=3113`) | worked — `/` and all mockup routes 200, no-slash form 302 |
+14
View File
@@ -184,6 +184,20 @@ This file exists because of that request. It gets updated after every user messa
- *(Claude's proposal)* The 2D sea chart is now 12 Vellum atlas with threads. Next open questions are
the look of the whole and how the frieze/3D layers attach to this chart.
### 13. A short mockup of the transition
*(Claude's question)* The look of the whole: 1 vellum throughout, 2 two worlds (vellum chart and 3D,
terracotta frieze only at transitions; Claude's recommendation), 3 frieze-led. Offered a short
mockup of the transition.
> "Short mockup please :)"
- The user did not pick 1/2/3 yet, so mockup **13 Curtain call** shows the transition sequence with
the look as a toggle (1/2/3), defaulting to 2.
- Sequence: frieze (2D) → morphs into the 3D sea → ship reaches Cyclops' Island → back to the frieze
→ into the cave. The vellum chart (12) appears as the map on the captain's table at sea.
- three.js is allowed in 13 (it is already a dependency; it reuses 07's sea).
## Open questions (in priority order)
1. ~~Which sea-chart approach (08–11) reads best, or which mix?~~ 11's navigation + 10's style (§9).
@@ -0,0 +1,60 @@
# 13 Curtain call — short transition mockup brief
## Why
The user's idea (verbatim, from `docs/design/002-direction-round-notes.md` §3):
> "Maybe we can have the freize's look be the one that tries the different stuff together, like a
> curtain call from the first section to go over in the second, where it starts off 2d with the
> freize, then slowly morphs into the sea voytage, then when he lands on cyclops islands, it goes
> back to the freize, then into the cave?"
The 2D chart is decided: **12 Vellum atlas with threads**. The open question is **the look of the
whole**, so the look is a toggle in this mockup:
1. **Vellum throughout** — the frieze is redrawn as ink on vellum (an illustrated border of the chart);
the 3D sea is tinted warm, parchment-like.
2. **Two worlds** (default) — chart and 3D are vellum/naturalistic; the frieze keeps 04's terracotta
and black and appears only at transitions, like a curtain dropping between scenes.
3. **Frieze-led** — terracotta/black sets the whole tone; the 3D sea is stylised in that palette
(black-figure silhouettes, terracotta sky), and the vellum chart is one object on the table.
Toggle: visible control "Look: 1 · 2 · 3", also `?look=1|2|3`.
## The sequence (short — about 20–30 s total with Play)
Five beats, each a step. Controls: Play/Pause, ← / → step, step dots with labels, `?beat=1..5`.
1. **Frieze.** 04's frieze band: Troy figures, the horse. Caption "Troy falls".
2. **Morph to sea.** The frieze band's ground line becomes the horizon; figures flatten away / the band
unrolls and the camera tilts down into 07's 3D sea with the ship. The vellum chart (12's general
chart, small, static is fine — a simplified SVG redraw is fine) lies as the captain's-table map in a
corner with "You are here".
3. **Landfall.** The ship sails to Cyclops' Island; the island rises from the sea.
4. **Back to the frieze.** The curtain drops: the frieze band returns with Cyclops-saga figures
(Polyphemus, sheep, the ship's crew), caption "Polyphemus".
5. **Into the cave.** The frieze parts / zooms through a cave mouth into a simple 3D cave interior
(dark rock, firelight, the giant's silhouette is enough). A "Back to sea" control returns to beat 2.
The transitions are the point. Make them smooth, honest and short (≈1–2 s each); respect
`prefers-reduced-motion` with crossfades. Content is light: a caption per beat, a song title chip
(e.g. "Survive") that opens nothing. No song detail panel needed.
## Rules
- Edit ONLY `src/mockups/13-curtain-call/` (stub files exist: index.html links credits; main.ts calls
`mountCredits()`; replace the stub style.css with unique content). three.js is allowed here (already a
dependency). Reuse by copying from `src/mockups/04-greek-frieze/` (figures.ts, glyphs.ts) and
`src/mockups/07-sea-voyage/` (scene.ts, route.ts) into your folder — don't import across mockup folders.
- Look at screenshots/04-*, 07-*, 12-* before designing. Credits footer fully visible in every beat.
- Build to `/tmp/claude-1000/-home-user-epic-the-musical-timeline/fb650f6d-47a0-47e4-8f6b-197d02417f3b/scratchpad/r3-13`,
serve with `cd <outdir> && PORT=4113 bun server.js`. Kill only your own server.
- Screenshots 1440×900, `--use-gl=swiftshader --virtual-time-budget=6000` (WebGL headless):
`screenshots/13-curtain-call-beat{1..5}.png` at look 2, plus `-beat2-look1.png`, `-beat2-look3.png`,
`-beat4-look1.png`, `-beat4-look3.png`. If possible also capture a mid-transition frame
(`-morph.png`, e.g. `?beat=2&t=0.5` to freeze a transition at 50%). Look at every one; fix what's off.
- `bun test` and `bun run typecheck` must pass. Don't commit. Don't spawn subagents.
- If you run low on budget, stop and write a pause report (done / checklist / next step) instead.
- Report to `docs/design/002-sea-chart-spikes/13-curtain-call-report.md`: what you built, what works,
what doesn't, screenshots, and an honest paragraph comparing looks 1/2/3. Reply with status,
screenshot paths and concerns only.