← All projects
Virtual Bouquet
A 3D digital bouquet in Three.js: envelope flow, customization panel and shareable gift links.
2026
- Three.js
- JavaScript
- Vite
- Express
Problem
A digital gift for a special day: sending a photo and a message is easy, but creating a moment is hard. The goal was to rebuild the ritual of giving a gift in the browser — from the envelope to the flowers, on any device, with a single link.
Solution
Virtual Bouquet is a 3D bouquet experience rendered with Three.js. The flow starts with an envelope, continues with a photo and opens through a message card into the bouquet scene. A customization panel lets you change the title, message, signature and photo; a shareable /?g=<id> link opens the personalized gift identically on every device.
Approach
- Scene pacing: the envelope → photo → gift sequence builds tension; the bouquet enters via a "view the flowers" button instead of upstaging the message.
- Shareable state: gift content is stored under an ID and travels by link; nothing to set up on the recipient's side.
- A small but real API: Express + Helmet + CORS + rate limiting — a tiny production-ready service, not a static file server.
- Mobile first: visual optimizations for iPhone/mobile; the 3D scene stays smooth on low-powered devices.