Basic framework for a room-staging web app that:
- uploads a room image
- lets users drag and drop furniture onto the scene
- supports selecting, moving, scaling, rotating, and deleting staged items
- calls Google Nano Banana through a local Python proxy so the API key stays out of browser code
index.html: app shellstyles.css: layout and visual stylingsrc/app.js: room staging interactionssrc/services/nanoBanana.js: frontend API clientserver.py: static server + Gemini image generation proxy
This scaffold is dependency-free.
Example:
export GEMINI_API_KEY='your_key_here'
python3 server.pyThen visit http://localhost:4173.
The server proxies generation requests to Google's Gemini image API using gemini-3.1-flash-image-preview by default.
FurnishFrame was inspired by the challenge many people face when trying to visualize how a space could look before committing to furniture or design changes. Traditional interior design tools can be time-consuming or require expertise, so we wanted to create an intuitive, AI-powered solution that makes design exploration accessible, fast, and engaging for anyone. Many inspirations came from home-building game aspects.
FurnishFrame is an AR-powered room staging tool that transforms uploaded photos into fully reimagined interior spaces. Users can experiment with different layouts, furniture styles, and décor preferences, and the app generates realistic, styled environments tailored to their vision. It allows users to quickly visualize multiple design possibilities before making real-world decisions.
The application is powered by Nano Banana 2, which enables advanced image generation and transformation. We developed a prompting system that interprets user input and translates it into detailed instructions for staging rooms. The system combines contextual understanding of room structure with style-based generation to produce cohesive and realistic outputs.
One of the main challenges was refining the prompting system to accurately interpret user instructions. Translating abstract preferences into precise object placement while maintaining spatial realism required multiple iterations. Ensuring that furniture and décor aligned naturally with the room’s layout and with each other, was another key technical hurdle.
Unlike many interior design tools that rely on static templates or manual placement, FurnishFrame dynamically generates fully staged environments based on user input. Its ability to combine AR, AI-driven generation, and contextual understanding allows for more personalized and realistic results, making it stand out from traditional design apps.
We are proud of creating a seamless and intuitive user experience that bridges creativity and technology. The app empowers users to explore design ideas effortlessly and produces high-quality, realistic transformations that feel both practical and inspiring.
Through building FurnishFrame, we learned the importance of prompt engineering in AI-driven applications. Small changes in how instructions are structured can significantly impact output quality. We also gained insights into balancing user control with automated generation to achieve both flexibility and coherence.