For the Vibe Jam 2025.
Vibecoded with love by Gianluca using Aider, OpenAI o3-mini, and Claude 3.7 Sonnet
- Play now: Music Melee (best on desktop)
- Blog post: Music Melee: a high-speed parkour FPS for making beautiful sounds | Gianluca.ai
- Thread on X with gameplay video
- Thread on Bluesky with gameplay video
- Show HN: Music Melee – High-speed parkour FPS for making beautiful music | Hacker News
I vibecoded the entire thing for Vibe Jam 2025. I used Aider in "architect" mode from my command line -- OpenAI's o3-mini analysed the code and planned how to apply my prompt, then handed the plan to Anthropic's Claude 3.7 sonnet to execute the changes.
- TypeScript: Provides static type-checking, enhanced code quality, and developer productivity.
- Three.js: Renders advanced 3D graphics using WebGL.
- Tone.js: Powers dynamic, spatial audio synthesis and musical interactions.
- cannon-es: Simulates the physics (collisions, forces, etc.) in a realistic manner.
- Vite: Bundles and serves the client-side code with fast live-reload during development.
Completed:
- Initial 3D spatial sound implementation with dynamic audio chains per block.
- Improved listener orientation and reduced sound distance falloff.
- Fine-tuned player movement (faster horizontal movement and reduced jump power).
- Debugging tools: ticker block with periodic flashing and click sound, block counter, and performance stats.
- Plug to personal site: "Vibecoded with love by Gianluca using Aider, OpenAI o3-mini, and Claude 3.7 Sonnet"
- Updated scoring based on rhythm and notes in key
- Instructions on how to play / objectives on loading screen, then "press and key / tap to begin"
- Vibe Jam 2025 snippet [^0]
- Play again / new round
- More visual and auditory feedback: tempo flash, sounds / colours / confetti for perfect on-tempo in-key hits, etc.
- Vibey background music (in C Lydian) that adapts to increasing tempo and helps the players hear which blocks are in key
- UI fixes and cleanup
- Lighting, ambient illumination, and sky colour changes should be more gradual and elegant.
- Block colours should be more easily distinguished. Dissonant blocks on opposite ends of colour spectrum.
- Mobile support and tap controls
Upcoming:
- Leaderboard / score sharing option
- BONUS: levels' player portal: https://gist.github.com/levelsio/ffdbfe356b421b97a31664ded4bc961d
To install all the dependencies, run:
npm installStart a live-reload development server with:
npm run devThis command uses Vite to serve your client from the src folder and will automatically open your browser.
To build the production-ready files, run:
npm run buildTo preview the production build locally, run:
npm run previewDeploy the contents of the dist directory to your preferred hosting provider or server setup.