Summary
Tracking issue for Feature 047 — Three.js Game, an interactive WebGL scene at /game/3d that demonstrates ScriptHammer's capacity for 3D content as a PWA.
Spec
features/enhancements/047-threejs-game/047_threejs-game_feature.md
Status
Ready for SpecKit — run /speckit.specify against the PRP to generate spec.md, then proceed through /speckit.clarify → wireframes → /speckit.plan → /speckit.tasks → /speckit.implement.
Key Decisions Already Locked
- Route:
/game/3d as a sub-route. Existing dice game at /game stays untouched (feature 037-game-a11y-tests depends on it).
- Stack:
three, @react-three/fiber, @react-three/drei. No physics, no audio, no model imports for v1.
- Theme-aware: scene reads DaisyUI CSS custom properties;
MutationObserver on data-theme triggers updates (precedent: useMapTheme in src/utils/theme-utils.ts).
- Reduced motion: respects
prefers-reduced-motion: reduce (precedent: commit acb1920).
- Pa11y:
/game/3d excluded from a11y scans (canvas not auditable). Existing /game retains a11y coverage via feature 037.
- Static export: dynamic import with
ssr: false keeps it compatible with next build.
Out of Scope (v1)
Multiplayer, leaderboards, persistent save state, physics, audio, asset pipeline, payments, Web3, homepage promotion.
Dependencies
001 WCAG AA Compliance (with documented Pa11y exclusion caveat)
006 Component Template (5-file pattern enforced by validate:structure)
Summary
Tracking issue for Feature 047 — Three.js Game, an interactive WebGL scene at
/game/3dthat demonstrates ScriptHammer's capacity for 3D content as a PWA.Spec
features/enhancements/047-threejs-game/047_threejs-game_feature.mdStatus
Ready for SpecKit — run
/speckit.specifyagainst the PRP to generate spec.md, then proceed through/speckit.clarify→ wireframes →/speckit.plan→/speckit.tasks→/speckit.implement.Key Decisions Already Locked
/game/3das a sub-route. Existing dice game at/gamestays untouched (feature037-game-a11y-testsdepends on it).three,@react-three/fiber,@react-three/drei. No physics, no audio, no model imports for v1.MutationObserverondata-themetriggers updates (precedent:useMapThemeinsrc/utils/theme-utils.ts).prefers-reduced-motion: reduce(precedent: commit acb1920)./game/3dexcluded from a11y scans (canvas not auditable). Existing/gameretains a11y coverage via feature 037.ssr: falsekeeps it compatible withnext build.Out of Scope (v1)
Multiplayer, leaderboards, persistent save state, physics, audio, asset pipeline, payments, Web3, homepage promotion.
Dependencies
001WCAG AA Compliance (with documented Pa11y exclusion caveat)006Component Template (5-file pattern enforced byvalidate:structure)