An autonomous AI agent that transforms empty rooms into beautifully designed spaces using GPT-4.1-mini and Arcade Google Shopping SDK.
- Autonomous Design Process: Upload a photo of an empty room and let the AI handle everything
- Room Analysis: Uses GPT-4.1-mini with vision capabilities to analyze room dimensions, lighting, and features
- Smart Planning: Creates detailed interior design plans with furniture recommendations
- Furniture Shopping: Searches real products using Google Shopping via Arcade API
- Design Generation: Creates detailed descriptions of the final room design
- Real-time Progress: Track the agent's progress through each step
- Markdown Reports: Get detailed design plans in well-structured markdown
This app uses FastAPI backend which works best on platforms that support full Python applications.
-
Sign up at railway.app
-
Install Railway CLI:
npm install -g @railway/cli
-
Deploy:
railway login railway link railway up
-
Add environment variables in Railway dashboard:
OPENAI_API_KEYARCADE_API_KEYUSER_ID
-
Deploy frontend separately on Vercel:
cd frontend vercel
-
Sign up at render.com
-
Connect your GitHub repo
-
Create new Web Service with:
- Runtime: Python
- Build:
pip install -r requirements.txt - Start:
cd backend && uvicorn main:app --host 0.0.0.0 --port $PORT
-
Add environment variables in Render dashboard
-
Install Heroku CLI and login:
heroku login
-
Create app and deploy:
heroku create your-app-name git push heroku main
-
Set environment variables:
heroku config:set OPENAI_API_KEY=your_key heroku config:set ARCADE_API_KEY=your_key heroku config:set USER_ID=your_id
- Create Dockerfile (we can add this if needed)
- Deploy to:
- Google Cloud Run
- AWS App Runner
- Azure Container Apps
- DigitalOcean App Platform
The frontend can be deployed separately on:
- Vercel (recommended):
cd frontend && vercel - Netlify:
cd frontend && netlify deploy - GitHub Pages: With GitHub Actions
- Update
API_URLin frontend after backend deployment - Consider using a database for production (PostgreSQL, MongoDB)
- Use cloud storage for images (S3, Cloudinary)
- Set up proper CORS origins for production
- Core Logic: All business logic and AI processing
- Agent System: Autonomous agent with state management
- API Integration: OpenAI responses API and Arcade Google Shopping
- Session Management: Handles multiple concurrent design sessions
- File Handling: Room image uploads and storage
- Pure Presentation: No business logic, only UI
- Real-time Updates: Polls backend for agent status
- Type Safety: Full TypeScript implementation
- Responsive Design: Works on desktop and mobile
- Python 3.8+
- Node.js 16+
- OpenAI API key
- Arcade API key and user ID
- Navigate to the backend directory:
cd backend- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create a
.envfile based onenv.example:
cp env.example .env- Add your API keys to
.env:
OPENAI_API_KEY=your_openai_api_key_here
ARCADE_API_KEY=your_arcade_api_key_here
ARCADE_USER_ID=your_arcade_user_id_here- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm installFrom the project root directory:
On macOS/Linux:
./start.shOn Windows:
start.batThis will start both the backend and frontend servers automatically.
In the backend directory:
python main.pyThe API will be available at http://localhost:8000
In the frontend directory:
npm run devThe frontend will be available at http://localhost:5173
- Open the application in your browser
- Upload a photo of an empty room
- The AI agent will:
- Analyze the room characteristics
- Create a design plan
- Search for suitable furniture
- Generate the final design
- Monitor progress in real-time
- View the complete design plan and results
-
Room Analysis π
- Identifies room type and dimensions
- Analyzes lighting conditions
- Detects existing features
-
Design Planning π
- Selects appropriate design style
- Creates furniture list
- Plans room layout
-
Furniture Shopping ποΈ
- Searches Google Shopping for each item
- Collects product images and prices
- Builds shopping list
-
Design Generation π¨
- Creates final room visualization
- Provides cost estimates
- Generates design description
POST /api/upload- Upload room imagePOST /api/agent/start/{session_id}- Start design agentGET /api/agent/status/{session_id}- Get agent statusGET /api/agent/plan/{session_id}- Get design planGET /api/agent/results/{session_id}- Get final resultsDELETE /api/agent/{session_id}- Stop and cleanup session
The agent behavior can be customized in backend/agent.py:
- Furniture search limits
- Design styles
- Budget constraints
- Room types
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a pull request
This project is licensed under the MIT License.
- OpenAI for GPT-4.1-mini
- Arcade for Google Shopping SDK
- React and FastAPI communities