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:
1 parent
b511d67f4e
commit
df8ab8d174
12 files changed
+109
-4
No files matched your search
@@ -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
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
Reference in new issue
Block a user