Your AI home decorator
rooma/
├── rooma_ios/ # iOS Swift app
│ └── rooma_ios/
│ ├── Views/ # SwiftUI views
│ ├── Models/ # Data models
│ ├── Services/ # API services
│ ├── ViewModels/ # View models
│ ├── Config/ # App configuration
│ └── rooma_iosApp.swift
├── backend/ # FastAPI backend
│ ├── routers/ # API endpoints (auth, scans, chats)
│ ├── models/ # Database models
│ ├── schemas/ # Request/response schemas
│ ├── core/ # Core utilities (config, security, USDZ)
│ ├── db/ # Database configuration
│ ├── migrations/ # Database migration scripts
│ ├── main.py # FastAPI app entry point
│ └── requirements.txt # Python dependencies
└── README.md
- Open the project in Xcode (you'll need to create an Xcode project and add these files)
- Ensure iOS 16.0+ deployment target (required for RoomPlan - this is the lowest possible)
- Add RoomPlan framework to your project
- Configure Info.plist with camera permissions
- Install Python dependencies:
cd backend
pip install -r requirements.txt
- Run the FastAPI server:
uvicorn main:app --reload --host 0.0.0.0 --port 8000
- Update the API base URL in
rooma_ios/rooma_ios/Config/AppConfig.swiftif needed (default:http://10.0.0.87:8000)
- User authentication (signup/login with JWT)
- Room scanning using RoomPlan (LiDAR required)
- USDZ file export and storage (Cloudflare R2)
- Metadata extraction (dimensions, surfaces, objects, floor plans)
- Furniture placement and editing on floor plans
- AI-powered decoration recommendations
- Product link extraction from AI responses
- Secure token storage using Keychain
- For iOS simulator testing, use your Mac's IP address in
AppConfig.swiftinstead oflocalhost - RoomPlan requires a physical device with LiDAR (iPhone 12 Pro and later, iPad Pro)
- Backend uses Cloudflare R2 for file storage (configure in
.envfile) - Database migrations are in
backend/migrations/and can be run individually - Backend runs on port 8000 by default (configurable in
run.py)