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.
0%