Create a magical birthday moment with an interactive 3D cake that responds to your touchβor your breath! Perfect for birthdays, virtual parties, or just a cheerful surprise.
-
π° Personalized 3D Cake
A beautifully animated cake featuring your name in festive decorations -
π―οΈ Interactive Candles
Blow into your microphone to extinguish digital candles (mobile-friendly tap/hug option available!) -
πΆ Birthday Soundtrack
Classic "Happy Birthday" melody to set the celebratory mood -
π Visual Festivities
Sparkling effects, confetti showers, and celebratory lighting -
π± Universal Access
Enjoy the experience on any deviceβdesktop, tablet, or phone

Enter your name (or a friend's!) to customize your celebration

Click to beginβyour cake and music will start simultaneously

Watch as your 3D birthday cake appears with accompanying music

Get ready to blow out the candles using your microphone

Enjoy personalized congratulations with sparkles and confetti
No downloads β’ No registration β’ Instant celebration
- Three.js = "3D Cake Baker" π°
- Web Audio API = "Ear Whisperer & Breath Detective" π€π΅οΈ
- JavaScript = "Party Planner" π
- HTML/CSS = "Decoration Committee" π¨
- Your Breath = "THE MAIN INGREDIENT!" π¨
# 2. Enter the party room!
cd three-js-birthday-cake
# 3. Bring party snacks (dependencies)!
npm install
# 4. Start the music!
npm run dev
# 5. INVITE FRIENDS! (Share the URL)
# (Friends optional but recommended for maximum fun)- Clone the repository
- Install dependencies with
yarn - Run the project with
yarn dev
- Turn up your volume to fully enjoy the song and sound effects.
- To blow out the candles:
- On desktop: Blow strongly and briefly near your microphone (like real candles!)
- On mobile: Long-press (hold) anywhere on the screen
- Use modern browsers: Chrome, Edge, or Firefox recommended.
- Three.js β 3D rendering of the cake and candles
- Web Audio API β Real-time blow detection via microphone
- HTML5 Audio β Playing the birthday song
- Vanilla JavaScript β No frameworks
- Modern CSS β Animations and responsive layout
The entered name is displayed in the final message:
"Happy Birthday, [Your Name]!"
-a---- 12/24/2025 10:42 PM 922221 happy-birthday.mp3
-a---- 12/26/2025 11:09 PM 13165 index.html
-a---- 12/26/2025 10:00 PM 1093 LICENSE
-a---- 12/22/2025 4:56 PM 27184 package-lock.json
-a---- 12/21/2025 3:55 PM 437 package.json
-a---- 12/26/2025 10:00 PM 3273 README.md
-a---- 12/26/2025 11:55 PM 34310 script.js
-a---- 12/26/2025 11:16 PM 12032 style.css
-a---- 12/21/2025 3:55 PM 198400 table.png
-a---- 12/21/2025 3:55 PM 397 vite.config.js
-a---- 12/22/2025 4:56 PM 4425 yarn.lock
This project is licensed under the MIT License β see the LICENSE file for details.