u/Admirable-Tonight-73

▲ 3 r/projects+1 crossposts

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.

reddit.com
u/Admirable-Tonight-73 — 7 days ago