InteriorFusion / docs /PRODUCT_ARCHITECTURE.md
stevee00's picture
Upload docs/PRODUCT_ARCHITECTURE.md
34300ed verified
# InteriorFusion: AI Interior Designer β€” Product Architecture
## Product Vision
**"Any room photo β†’ editable 3D design space in 30 seconds"**
Transform interior design from a manual, weeks-long process into an AI-assisted, real-time creative tool. Users upload a room photo, and InteriorFusion creates a complete 3D scene they can redesign, refurnish, and redecorate β€” all before their coffee gets cold.
---
## Feature Matrix
### Core Features
| Feature | Description | Priority | Status |
|---------|-------------|----------|--------|
| **Photo Upload** | Upload any room photo | P0 | βœ… Prototype |
| **3D Room Generation** | Generate complete 3D scene | P0 | βœ… Prototype |
| **Furniture Editing** | Move/remove/scale objects | P0 | βœ… Design |
| **Material Swap** | Change wall/floor/furniture materials | P0 | βœ… Design |
| **Relight Room** | Adjust lighting, add light sources | P1 | πŸ“ Planned |
| **Style Transfer** | Transform to different interior styles | P1 | πŸ“ Planned |
| **Export to Blender** | One-click Blender import | P0 | βœ… Prototype |
| **Export to UE5** | Direct Unreal Engine asset export | P1 | πŸ“ Planned |
| **Export to Unity** | Unity package export | P1 | πŸ“ Planned |
| **AR Preview** | View in real room via phone AR | P1 | πŸ“ Planned |
| **Furniture Recommendations** | AI-suggested furniture from catalog | P2 | πŸ“ Planned |
| **Room Style Quiz** | "What style is this room?" | P2 | πŸ“ Planned |
| **Before/After Comparison** | Side-by-side design iterations | P1 | πŸ“ Planned |
| **Design Share** | Share interactive 3D scenes via URL | P1 | πŸ“ Planned |
| **Professional Report** | Generate PDF design proposal | P2 | πŸ“ Planned |
### Interior Style Support
| Style | Training Data | Quality Target |
|-------|--------------|---------------|
| **Modern** | 3D-FRONT + Pinterest | ⭐⭐⭐⭐⭐ |
| **Scandinavian** | 3D-FRONT + InteriorNet | ⭐⭐⭐⭐⭐ |
| **Luxury / High-end** | 3D-FRONT luxury subset | ⭐⭐⭐⭐ |
| **Indian / Traditional** | Custom dataset + Pinterest | ⭐⭐⭐⭐ |
| **Commercial / Office** | HM3D office scenes | ⭐⭐⭐⭐ |
| **Industrial** | 3D-FRIND + InteriorNet | ⭐⭐⭐⭐ |
| **Minimalist** | 3D-FRONT + curated | ⭐⭐⭐⭐ |
| **Bohemian** | Pinterest + custom | ⭐⭐⭐ |
| **Japanese** | Custom dataset | ⭐⭐⭐ |
| **Art Deco** | Curated subset | ⭐⭐⭐ |
### Room Type Support
| Room Type | Supported | Notes |
|-----------|-----------|-------|
| **Living Room** | βœ… Full | Best supported |
| **Bedroom** | βœ… Full | Full support |
| **Kitchen** | βœ… Full | Appliances as objects |
| **Dining Room** | βœ… Full | Table + chairs pattern |
| **Home Office** | βœ… Full | Desk + chair + shelf |
| **Bathroom** | ⚠️ Partial | Mirrors, fixtures simplified |
| **Hallway** | ⚠️ Partial | Limited furniture |
| **Outdoor Patio** | ❌ Not supported | Future scope |
| **Commercial Retail** | πŸ“ Planned | v2.0 |
| **Restaurant / Cafe** | πŸ“ Planned | v2.0 |
---
## Backend Architecture
### Service Topology
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ API Gateway β”‚
β”‚ (Rate limiting, Auth, SSL, CDN) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”
β”‚ REST API β”‚ β”‚ WebSocket API β”‚ β”‚ Webhook β”‚
β”‚ (FastAPI) β”‚ β”‚ (Real-time β”‚ β”‚ (Export β”‚
β”‚ β”‚ β”‚ progress) β”‚ β”‚ notify) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
β”‚ β”‚ β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Task Queue (Redis/RabbitMQ) β”‚
β”‚ Priority: free < premium < enterprise β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ GPU Workers β”‚ β”‚ CPU Workers β”‚
β”‚ (Ray/K8s) β”‚ β”‚ (Pre/Post proc) β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ - Generation β”‚ β”‚ - Segmentation β”‚
β”‚ - Rendering β”‚ β”‚ - Mesh cleanup β”‚
β”‚ - Export β”‚ β”‚ - Format conv β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
### GPU Orchestration (Ray + Kubernetes)
```yaml
# k8s/interiorfusion-gpu-worker.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: interiorfusion-gpu-worker
spec:
replicas: 5
selector:
matchLabels:
app: interiorfusion-gpu
template:
spec:
containers:
- name: worker
image: stevee00/interiorfusion:latest
resources:
limits:
nvidia.com/gpu: 1
memory: "32Gi"
cpu: "8"
env:
- name: MODEL_SIZE
value: "L"
- name: BATCH_SIZE
value: "1"
```
### Queueing Strategy
| Tier | Max Queue Time | Priority | GPU Allocation |
|------|---------------|----------|---------------|
| **Free** | 5 minutes | Low | Shared A10G |
| **Pro** ($20/mo) | 30 seconds | Medium | Dedicated A10G |
| **Enterprise** | 5 seconds | High | Dedicated A100 |
| **Batch API** | 1 hour | Lowest | Spot instances |
### Caching Strategy
| Cache Layer | TTL | Size | Purpose |
|-------------|-----|------|---------|
| **CDN Edge** | 24h | Infinite | Generated GLB/PLY files |
| **Redis Hot** | 1h | 10GB | Depth maps, segmentation |
| **Redis Warm** | 24h | 50GB | Scene graphs, metadata |
| **GPU VRAM** | 5m | Per-GPU | Model weights, active scenes |
| **Disk Cache** | 7d | 1TB | Model checkpoints, datasets |
### Vector Database (ChromaDB / Pinecone)
Store:
- Furniture embeddings for similarity search
- Room style embeddings for style matching
- User preference history for personalization
Schema:
```python
{
"id": "furniture_12345",
"embedding": [768-dim vector],
"metadata": {
"type": "sofa",
"style": "scandinavian",
"dimensions": [2.0, 0.9, 0.8],
"material": "fabric",
"color": "gray",
"source": "ikea_catalog",
}
}
```
---
## Inference Service Architecture
### Model Registry (HF Hub)
```python
# Model versions managed via HF Hub
MODEL_REGISTRY = {
"InteriorFusion-S": {
"repo": "stevee00/InteriorFusion-S",
"size": "1.5B",
"speed": "5s",
"quality": "preview",
},
"InteriorFusion-L": {
"repo": "stevee00/InteriorFusion-L",
"size": "4B",
"speed": "15s",
"quality": "production",
},
"InteriorFusion-XL": {
"repo": "stevee00/InteriorFusion-XL",
"size": "10B",
"speed": "30s",
"quality": "research",
},
}
```
### Auto-scaling Rules
| Metric | Threshold | Action |
|--------|-----------|--------|
| Queue depth | > 10 tasks | Scale up GPU workers +2 |
| Queue depth | < 2 tasks | Scale down GPU workers -1 |
| Avg inference time | > 20s (L model) | Switch to S model for free tier |
| GPU memory | > 90% | Clear LRU cache |
| Error rate | > 5% | Alert + fallback to S model |
| Cost/hour | > $100 | Enable spot instance preference |
---
## Rendering Pipeline
### Real-time Preview (Gaussian Splatting)
For the interactive 3D viewer:
- Scene loaded as Gaussian splatting PLY
- Web-based viewer using Three.js + GaussianSplatting
- FPS target: 60fps on RTX 3060, 30fps on integrated GPU
- Level-of-Detail: Reduce Gaussian count for distant objects
### Production Quality (Path Tracing)
For final export / marketing renders:
- Export to Blender / UE5 / Unity
- Use native path tracing (Cycles, Lumen, HDRP)
- Bake lighting into lightmaps for static scenes
- Real-time GI for dynamic objects
### Web Viewer Architecture
```html
<!-- Simplified web viewer -->
<interiorfusion-viewer
scene-url="https://cdn.interiorfusion.ai/scenes/abc123/scene.ply"
editable="true"
ar-support="true"
vr-support="false"
>
</interiorfusion-viewer>
```
Features:
- Orbit controls (rotate, zoom, pan)
- Object selection (click to select furniture)
- Property panel (position, rotation, scale, material)
- Material picker (swatches from PBR library)
- Lighting control (time of day, intensity)
- AR mode (place in real room via WebXR)
---
## Asset Management
### Furniture Catalog
| Source | Items | License | Integration |
|--------|-------|---------|------------|
| **IKEA API** | ~10,000 | Commercial | Direct purchase links |
| **Wayfair API** | ~100,000 | Commercial | Affiliate links |
| **3D-FUTURE** | ~10,000 | Research | Training + reference |
| **Objaverse** | ~10M | Mixed | Generic placeholders |
| **Custom Models** | User uploads | User-owned | Premium feature |
### Material Library
| Category | Count | Source |
|----------|-------|--------|
| **Wood** | 500 | CC0 Textures, Poliigon |
| **Fabric / Upholstery** | 300 | Custom scans |
| **Tile / Stone** | 200 | CC0 Textures |
| **Paint** | 1000 | Sherwin-Williams, Benjamin Moore |
| **Wallpaper** | 500 | Spoonflower, Wallcoverings |
| **Metal** | 150 | CC0 Textures |
| **Glass** | 50 | Custom |
---
## Business Model
### Pricing Tiers
| Tier | Price | Generations/mo | Quality | Export | API | Support |
|------|-------|---------------|---------|--------|-----|---------|
| **Free** | $0 | 5 | S model | GLB only | ❌ | Community |
| **Pro** | $20/mo | 100 | L model | All formats | βœ… 100/day | Email |
| **Studio** | $99/mo | 500 | XL model | All + batch | βœ… 1000/day | Priority |
| **Enterprise** | Custom | Unlimited | XL + custom | All + white-label | βœ… Unlimited | Dedicated |
### Revenue Streams
1. **Subscription**: Monthly plans (primary revenue)
2. **API Usage**: Per-generation pricing for integrations
3. **Furniture Affiliates**: Commission on furniture purchases
4. **Professional Services**: Custom training, fine-tuning
5. **White-label**: Licensed SDK for furniture retailers
6. **Data**: Anonymized trend reports (industry insights)
---
## Moat & Competitive Advantage
### Technical Moat
1. **Interior-specific architecture**: No competitor has scene-aware 3D generation
2. **Proprietary dataset**: Curated 85K interior rooms, multi-modal
3. **Training cost barrier**: $65K to replicate, 4 weeks on 32Γ—A100
4. **Integration depth**: Blender/UE/Unity/ComfyUI plugins (network effects)
### Data Moat
1. **User-generated scenes**: Every generation improves dataset
2. **Feedback loop**: User edits provide preference signals
3. **Style trends**: Real-time interior design trend detection
4. **Furniture catalog**: Deep embedding of commercial products
### Network Effects
1. **Community models**: Users fine-tune and share LoRAs
2. **Template library**: Popular room designs become templates
3. **Plugin ecosystem**: Third-party tools extend capabilities
---
## Roadmap
### Q3 2026 (Launch)
- βœ… Single photo β†’ 3D scene
- βœ… GLB/PLY export
- βœ… Gradio web app
- βœ… Blender plugin
- βœ… Basic editing (move, remove, replace)
### Q4 2026 (Growth)
- πŸ“ FastAPI backend + API
- πŸ“ Mobile app (iOS/Android)
- πŸ“ AR preview (ARKit / ARCore)
- πŸ“ Furniture recommendations
- πŸ“ Style transfer
- πŸ“ Material swap UI
### Q1 2027 (Scale)
- πŸ“ ComfyUI nodes
- πŸ“ Unreal Engine / Unity plugins
- πŸ“ Batch generation API
- πŸ“ Enterprise white-label
- πŸ“ Video-to-3D extension
### Q2 2027 (Maturity)
- πŸ“ Multi-room generation
- πŸ“ Floor plan import
- πŸ“ Lighting design
- πŸ“ HVAC/ electrical visualization
- πŸ“ Construction document generation