01 Challenge
A luxury brand world on a phone
Visitors scanned a QR code and landed in a 3D world in their phone browser. It had to look premium enough for Lancôme, load quickly over mobile data and hold around 20 people per session, each with a customised avatar, makeup, chat and a game to play.
02 Approach
Budgets first, then features
The original avatar and clothing assets were far too heavy for WebGL, so I set budgets with the art team and the avatar supplier Didimo before building on them. I also cut complexity where I could: seeds, petals, roses, boosters and cosmetics shared one inventory and reward system instead of five separate ones.
03 Execution
Multiplayer, avatars, progression and a backend
- Multiplayer: Photon Fusion host/client networking with host migration, avatar and player sync, multiplayer chat, NPC interactions, lobbies that open new rooms after about 20 users, and stress tests with many avatars, including Ready Player Me test builds.
- Avatars: six base avatars with Mecanim and Mixamo-compatible skeletons, swappable hair and garments, avatar updates in session, and reactions.
- Garden Grower: buy seeds, plant, wait for timed growth, harvest roses of different rarity for petal currency, then spend on boosts and cosmetic unlocks, with achievements, challenges and leaderboards.
- Front end: localisation, responsive mobile and desktop UI built from Figma, and the flow from QR scan through consent and onboarding into the world and the virtual makeup try-on.
- V-BLDR backend: moved from GraphQL to a plain Node.js REST API that Unity calls through C# DTOs, covering sign-in with JWT tokens, users, worlds and their saved state, projects, sessions, and asset and image uploads.
04 Outcome
Live brand worlds, and a team that could ship them
The Lancôme Happiverse and the L’Oréal Paris MetaVivids worlds run in the browser on phone and desktop. I set up a feature → dev → staging → production branch workflow, with staging and production protected from direct changes, led a team of 10, and interviewed Unity, backend and UI/UX candidates, hiring 3.