Interfaccia di design d'interni 3D con arredamento virtuale

Roomify: AI-powered interior design that turns floor plans and natural language descriptions into real-time interactive 3D scenes. Deterministic geometry engine, NLP, and 3D rendering in one tool.

Executive Summary

Roomify is an AI-guided interior design studio: describe the room in natural language or upload a photo of a floor plan, and the app furnishes a 3D scene in real time with a validation engine that keeps geometry and collisions always correct.

Problem

Interior design tools today force a choice between manual 3D CAD software — slow and complex to learn — or AI image generators that produce compelling but non-editable renders, with no real measurements and no guarantee that furniture won’t overlap or clip through walls.

Solution

Roomify separates intent (decided by the AI) from execution (computed by a deterministic engine): natural language is translated into structured instructions, checked by a geometry validation engine before they ever touch the 3D scene. A separate mode turns a 2D floor-plan photo into a fully furnished 3D scene, room by room.

Results

  • 13 automated end-to-end checks (health, AI chat turn, input validation, project CRUD, real-time collaboration, invalid-command rejection)
  • 0 objects in an invalid position: every change passes through a geometry validation engine
  • Floor-plan import: from a 2D photo to a 3D scene with walls aligned to the original plan (18 m² in the reference test, scale inferred from printed dimensions at 100% confidence)
  • Offline fallback: the app stays usable even without an active AI provider

Discover immersive 3D web experiences →


Project description

Roomify is an AI-guided interior design studio: users describe the room in natural language (Italian or English) and the application adds, moves and edits furniture in a real-time 3D scene.

The project explores a precise architectural principle: the AI only ever decides intent; geometry, collisions and placement are computed by a deterministic engine, separate and unit-testable in isolation — so no object can ever end up in an invalid position, no matter what the language model “imagines”.

Roomify also ships a second mode, separate from the conversational one: floor-plan import. From a single photo, a vision module recognizes rooms, walls and — if requested — existing furniture, which the user can correct before generating the 3D scene.

The Problem

Anyone who needs to furnish or present a space — furniture retailers, interior designers, real-estate agencies, architects — today has to pick between two extremes:

  • Professional 3D CAD software: precise, but slow to learn and slow to iterate on an idea
  • AI image generators: fast and evocative, but produce static, non-editable images, with no real measurements and no guarantee the generated furniture is even available or actually fits

There’s no middle ground: the speed of natural language with the geometric reliability of a CAD tool.

The Solution

Roomify introduces a two-track architecture: intent (probabilistic, handled by the AI) and execution (deterministic, computed by dedicated engines).

1. The AI only decides intent

Chat doesn’t generate the scene directly: it interprets the user’s request and translates it into a structured instruction, checked before it’s ever executed. The AI never computes coordinates, geometry or collisions — it only decides what the user wants to do.

2. Geometry validation engine

Every scene change passes through a dedicated validation engine: if the position is invalid, the change is rejected and the UI explains why — the AI can never force an incorrect placement.

3. Floor-plan import

A separate mode converts a 2D floor-plan photo into a furnished 3D scene: a vision module recognizes the room layout, the user corrects the result in a review editor directly on the original image, then a dedicated engine reconstructs walls, doors and furniture room by room.

4. Interior-designer placement rules

When no position is specified, the system applies interior-designer criteria: beds, sofas, bookshelves and sideboards against a wall facing the room; lamps and plants in corners; tables and rugs at the center.

Technical Approach

Roomify is built around a clean separation between the creative layer, handled by the AI, and the execution layer, handled by deterministic engines:

  • Interactive 3D interface in the browser, in real time, no plugins or downloads
  • Isolated, testable engines: catalog, placement and validation logic is separated from the UI, keeping the system reliable and easy to extend
  • Multi-provider AI orchestration: the system can rely on different language models and keeps responding, with a simpler but never-blocking fallback, even when AI isn’t available
  • Real-time collaboration between multiple users on the same project
  • Flexible persistence and export for 3D/AR viewers

Results

Current project status (5 development phases completed, plus extras):

  • 13 automated end-to-end checks covering the full flow: from AI chat to project management, from real-time collaboration to invalid-command rejection
  • 11-item starter catalog ready to use, zero setup required
  • Verified floor-plan import: in the reference test, a floor-plan photo produced an 18 m² room with walls aligned exactly to the original plan — verifiable because the source image stays projected on the 3D scene’s floor — with scale inferred from printed dimensions on the plan (100% confidence)
  • Real-time multi-user collaboration on the same project
  • Never blocks: if the AI provider isn’t available, the system keeps responding reliably

Project Philosophy

Models generate intent. The engine decides geometry.

Roomify doesn’t ask a language model to “imagine” where a sofa goes in meters and centimeters — models systematically fail at absolute coordinates. It asks it to recognize what the user wants, and lets a deterministic, verifiable, testable engine decide where that object can actually go.

Need a custom website or web application like this one?

Contact me for a Quote →