A browser-based evening walk through a procedural city. Three.js, Web Audio, no framework.
Documentation: Architecture · Plan · Features
# Static (no build)
open index.html
# Dev server
npm install
npm run dev
# Production build + tests
npm run build
npm testEnable audio with M after the page loads (browser autoplay policy).
| Input | Action |
|---|---|
| WASD | Move |
| Mouse | Look (pointer lock) |
| RMB | Interact with flowers |
| P | Photo mode |
| N | Rest / breathing |
| B | Cycle ambience |
| J | Journal |
| R | Rain toggle |
| G | Activity (treasure or breathing) |
| Esc | Pause |
Combat is disabled by default. Set FEATURE_WEAPON = true in js/config.js to enable.
- Three.js r160 (ES modules)
- Optional Vite build for deployment
- Playwright smoke tests in CI
GitHub Pages workflow publishes dist/ at /Stroll/ when main is pushed. Enable Pages → GitHub Actions in repository settings.
MIT