Projects

Casita — Design Your Home in 3D in the Browser

Active
Next.js 15Reactreact-three-fiber 9Three.jszustandMediaRecorder API
Product demo

Problem

Home design tools want an install, a login, or a CAD background. Someone who just wants to see whether a sofa fits has no fast way to lay out a room and look at it.

Business Impact

The useful version of home design for most people is not CAD — it is five minutes of moving a sofa around before buying it. Casita is that, with a zero-friction path from opening a tab to a shareable orbit video.

System Approach

  • 18 furniture and structure pieces — walls, doors, windows, sofas, beds, kitchens, plants, lamps
  • Click-to-place and drag-to-move on a snapping grid, with keyboard rotate, duplicate, and delete
  • Auto-tour instantly furnishes a demo apartment and orbits it
  • Client-side 15-second orbit recording via MediaRecorder, downloaded as webm
  • Save and load to localStorage; zero backend, zero tracking
  • Every piece is roughly ten lines of primitives, so the catalog is genuinely extensible

Key Decisions & Trade-offs

  • No backend and no login — the friction was the product problem, not the rendering
  • Primitives over imported models so the repo ships no assets and stays readable
  • localStorage over accounts; a room layout is not worth a signup
  • Written to be read — the 3D engine is a handful of small files, usable as a react-three-fiber tutorial
  • MediaRecorder for capture so sharing a design needs no server-side render farm

Current Status

Public and open source (MIT) at github.com/rohitguta2432/casita. Full catalog, placement, recolor, auto-tour, snapshot, save/load, and in-browser 15-second video recording all working. Runs with npm install and npm run dev on Node 18+.

Roadmap

  • Measurement readouts and real-world room dimensions
  • Import a floor plan image as a tracing underlay
  • Shareable scene links without an account

What I'd Improve Next

  • Mobile touch controls for placement and orbit
  • A larger catalog contributed through the ten-line piece format

Explore More