Interior Design
The Interior Design workflow (/interior_design) turns a flat 2D architectural floor plan into an interactive 3D interior design studio and guided video tour. It chains Nano Banana (gemini-2.5-flash-image / gemini-3.1-flash-image-preview), Gemini spatial room extraction, conversational room restyling, and Veo 3.1 + MoviePy tour assembly.

Source Architecture
Section titled “Source Architecture”| Layer | File Path | Responsibility |
|---|---|---|
| Mesop Page & State | pages/interior_design_v2.py, state/interior_design_v2_state.py (PageState) |
Floor plan uploader, 3D view & room storyboarder, interactive Design Studio drawer, per-room Veo video generator, and final tour compiler. |
| UI Components | components/interior_design/ (floor_plan_uploader.py, room_View.py, design_studio.py, tour_video.py) |
Modular UI panels for each stage of the architectural pipeline. |
| Models Used | models/gemini.py, models/veo.py, models/video_processing.py |
Multimodal image synthesis, room name extraction (extract_room_names_from_image), Veo I2V animation, and MoviePy concatenation. |
Step-by-Step Pipeline
Section titled “Step-by-Step Pipeline”Step 1: 2D Floor Plan to 3D Isometric Render & Room Identification
Section titled “Step 1: 2D Floor Plan to 3D Isometric Render & Room Identification”- The user uploads a 2D Floor Plan image (or chooses a preset floor plan) and enters an optional overall architectural style prompt (e.g., Japandi minimalist with warm oak and linen).
- 3D Isometric Synthesis:
pages/interior_design_v2.pycalls Nano Banana (generate_image_from_prompt_and_images) conditioned on the 2D floor plan to synthesize a full-color 3D Isometric Cutaway Render of the entire home (storyboard_item.styled_3d_view). - Gemini Room Extraction (
extract_room_names_from_image): In parallel, Gemini inspects the floor plan labels and layout to return a structured list of detected rooms (e.g., Living Room, Kitchen, Primary Bedroom, Bathroom).
Step 2: Room Zoom-In & Conversational Design Studio
Section titled “Step 2: Room Zoom-In & Conversational Design Studio”- Clicking any detected room button triggers Zoom In (
on_zoom_in), which passes both the original 2D floor plan and the 3D isometric render to Nano Banana with instructions to synthesize a photorealistic first-person eye-level interior photograph (16:9) of that specific room while preserving the exact furniture placement from the 3D view. - Interactive Design Studio (
on_design_room): Once a room view is generated, users can enter modification prompts (e.g., “Replace the sofa with cognac leather and add pendant lighting over the island”) and attach reference furniture/material swatch images to iteratively restyle the room (styled_image_uri).
Step 3: Veo Room Walkthroughs & Full-Home Tour Assembly
Section titled “Step 3: Veo Room Walkthroughs & Full-Home Tour Assembly”- Single-Room Video (
on_generate_video): Generates an8sVeo 3.1 camera walkthrough clip (video_uri) for any styled room. - Full-Home Guided Tour (
on_generate_full_tour): Iterates through all styled rooms, generates Veo walkthrough clips for any room that does not yet have one, and stitches all room clips together viaprocess_and_concatenate_videos()(models/video_processing.py) into a seamless master property tour (final_video_uri).