Hi all! I built my portfolio as a 3D art-deco grand hotel you can walk through. Every floor is part of my résumé, and you play the bellhop.
https://hotel-komaiha.vercel.app
What’s inside
- Six floors: a lobby with a mirror marble floor, a ballroom where my career timeline stands on hologram pedestals, one suite per project, a café where every skill is a jar on the shelves, a rooftop with an infinity pool and a giant neon sign, and a secret basement behind five hidden golden keys.
- A drivable 1930s car outside, with traffic and traffic lights.
- A guided tour, minimap, passport stamps, and a photo mode that saves a postcard.
- Five languages, including Arabic right-to-left (the canvas-painted signs too).
How it’s made
- No models, image textures or audio files. Geometry is built from primitives, textures are painted on canvases at load, and the music is synthesized live with the Web Audio API.
- Static meshes are merged by material, which roughly halved draw calls on the busiest floors (lobby: 1906 → 1045).
- Traffic, traffic lights and marquee bulbs animate in the vertex shader from small uniform arrays, so no instance buffers are re-uploaded each frame.
- Every floor shares one light layout (8 point lights, 6 spots, 1 shadow-casting spot), so shaders compile once. There’s a PMREM reflection probe per floor and a Reflector for the lobby marble.
- EffectComposer with bloom, ACES tone mapping, film grain and vignette, plus a small sanitize pass against NaN pixels on some GPUs.
- Adaptive resolution and a performance mode for slower devices.
- No bundler: plain ES modules and an import map.
I’d love feedback, especially on how it runs on your GPU or phone.
Tips: WASD to walk, E to interact, G opens the directory, and the Konami code does something. ![]()










