Inspiration

Plenty of us live in rooms that never got past "move-in day": a mattress on the floor, bare walls, a desk that faces nothing in particular. It isn't that people don't care — interior design just feels expensive, slow, and hard to picture. Magazine rooms aren't your room, and you can't try out a new sofa before buying it.

We wanted a good-looking home to feel within reach for anyone, and to make getting there fun. Video games already make designing a space addictive, so we asked: what if the game board was your actual room?

## What it does Forma turns your real room into a 3D space you can play with.

  1. Scan. Walk around your room with a LiDAR iPhone. Apple RoomPlan captures the walls, doors, windows and furniture in about a minute.
  2. See it in 3D. The scan uploads, and within seconds your room appears in the browser, rebuilt with real 3D furniture matched to what's actually there: your bed, your desk, your sofa, in the right places and at the right sizes.
  3. Play with it. Drag, rotate, stack and swap furniture from a library of 230+ models. The editor knows the physics of a room: pieces rest on floors and tables, hang on walls, and won't clip through each other or block a doorway.
  4. Design my space. Describe a style ("cozy Japanese–Scandinavian") and our aesthetic planner proposes a redesign of your room, then shows it side by side with the original. Your real layout is never overwritten.

Because everything is a render of your own room, you're not imagining a stranger's apartment. You're seeing what your space could become.

## How we built it

  • iPhone scanner: Swift + SwiftUI on Apple RoomPlan, which uses the LiDAR sensor to capture the room. Scans upload to our backend after you sign in.
  • Backend: Supabase: Postgres for houses, scans, rooms, designs and the furniture library; Auth shared by phone and web; Storage for scans and 3D models; Realtime so new rooms pop up in the browser; row-level security so your home stays private.
  • Scan → 3D pipeline: a TypeScript worker converts raw RoomPlan data into a clean room shell plus furniture, then matches every object to the best model in our library. If nothing fits well, a render agent edits or builds a model in headless Blender, guided by DeepSeek, and swaps it in once it's ready.
  • 3D sandbox: React + Three.js (React Three Fiber, Drei) with a custom scene engine for collisions, support surfaces, wall mounting and undo/redo.
  • Aesthetic planner: an AI planning loop. A language model proposes which pieces to keep, replace or add; deterministic code places them using the same room rules as the editor; then a vision model looks at real screenshots of the result and suggests fixes.
  • Shared contracts: every part speaks the same Zod-validated data shapes for room, scene and furniture, so the phone, worker, planner and browser can't drift apart.
  • Assets: Poly Haven and FurniMesh models, optimized with glTF Transform, meshoptimizer and Draco.

## Challenges we ran into

  • Real scans are messy. RoomPlan sometimes detects a cabinet twice or cuts one through a wall. A single impossible piece would block every edit in the room, so we wrote a "settle on load" step that lifts, nudges, shrinks or, as a last resort, sets aside pieces until the whole room is valid.
  • Getting coordinates right. Matching RoomPlan's coordinate system to our editor took real work: which side of a wall is the room, which way is "up", and lining the room up with its longest wall.
  • AI shouldn't do geometry. Early plans had furniture floating or overlapping. We changed the design so the model only decides what goes where relative to what ("rug in front of the sofa"), and our own code computes exact positions and checks them.
  • Rendering glitches. Flat faces on AI-built models flickered against each other (our "checkerboard oven"); we fixed it with per-part depth offsets.
  • Two codebases, one deadline. The sandbox and the scan pipeline were built in parallel and had to be merged mid-hackathon. A single shared contracts package is what made that merge possible.

## Accomplishments that we're proud of

  • A real phone scan becomes an editable 3D room in seconds, with every object matched to a real furniture model.
  • An editor that feels like a game: snapping, stacking, wall-mounting, undo, live updates.
  • A furniture library of 230+ models that the scanner, worker and planner all share.
  • An AI planner that reasons about style but never gets to break the laws of the room.
  • 270+ automated tests across the editor, pipeline and planner, plus browser tests that drive the real 3D app.

## What we learned

  • Keep AI where it's strong (taste, style, choosing pieces) and keep deterministic code in charge of measurements and physics
  • Agreeing on shared data shapes early saved us when several people and branches had to come together.
  • Real-world data (LiDAR scans, flaky networks) needs graceful fallbacks everywhere.

## What's next for Forma

  • Tell us your style in plain words or with inspiration photos, and see an editable summary before the AI designs.
  • Accept a design as its own named version, so you can flip between "current room" and "dream room".
  • A budget roadmap: turn a dream room into a step-by-step shopping plan that fits a monthly budget, with a timeline slider showing your room transform piece by piece.
  • Link furniture to real products you can buy.
  • Whole-home scans, not just single rooms.

Built With

Share this project:

Updates

Submission history