I built a real-time 3D real estate visualizer in the browser using Three.js — walk through apartments before they're built
Hey Reddit,
I've been working on a browser-based 3D visualization tool for real estate developers. The idea is simple: show buyers what their apartment will look like before the building is even constructed.
What it does:
- Load a real GLB building model and explore it in an interactive 3D scene
- Switch between Day / Sunset / Night / Rain / Snow / Fog with smooth transitions and dynamic lighting
- Street lights and building windows glow progressively as it gets darker
- First-person walk-through of apartment floor plans — WASD + mouse
- Select from multiple floor plans (Studio, 1BR, 2BR, 3BR) before entering
- Cinematic camera intro that orbits the building on load
- Auto-rotating presentation mode for sales office use
- Bloom post-processing for night scenes
- 4K shadow maps, physically correct lighting
- EN / RU / TJ (Tajik) language support
- Mini city environment with animated clouds, trees, parked cars
How it's built:
- Three.js r128 — rendering, shadows, PBR materials
- UnrealBloomPass — post-processing glow effect
- GLTFLoader + DRACOLoader + MeshoptDecoder — compressed 3D model loading (23MB → 5MB with gltf-transform)
- Raycast collision + hard bounding box for FPS movement
- Procedural textures — grass, asphalt, concrete all generated via Canvas API, no external image files
- ACES Filmic tonemapping — cinematic color grading
- Deployed on Vercel — zero config, instant CDN
The context:
Built this for a real estate developer in Tajikistan. The target use case is a sales office PC (discrete GPU) where a manager walks clients through future apartments. Not trying to run this on mobile — that's a different problem.
Biggest challenges:
- WebGL context exhaustion in Firefox (had to debug GPU tier detection)
- Getting browsers to use the discrete GPU instead of Intel integrated (classic laptop problem)
- Raycast collision with 182 mesh apartment model was killing FPS — solved with hard bounds + single-height rays
Here is deployed demo https://buildviz.vercel.app/
Would love feedback on the architecture, the UX flow, or anything you'd do differently. Also curious if anyone has experience taking something like this to production for real estate clients.
u/Admirable-Tonight-73 — 7 days ago