From inspiration to identity.
Turn your Pinterest saves into 3D objects in your room — keep what you touch, let the rest fade.
demo.mp4
Landing Page |
3D Room View |
See how Déjà View transforms your Pinterest inspiration into interactive 3D objects:
| 2D Render | 3D Model | |
|---|---|---|
|
|
|
| Source inspiration | AI-extracted product | Generated 3D model |
- Save: Collect inspiration on a public Pinterest board
- Import: Paste your board URL — we analyze each pin and extract the main item
- Generate: AI creates a realistic 2D render, then converts it to a 3D
.glbmodel - Place: Objects appear naturally in your virtual room
- Interact: Click items to inspect, adjust placement, or shop similar products
- Curate: What you touch stays; what you ignore fades — your space reflects you
- Node.js 18+
- Python 3.10+
- API keys: Clerk, Gemini, Replicate, Cloudflare R2, Google CSE
cd deja-view
npm install
cp env.example .env.local
# Fill in your API keys
npm run devApp runs at http://localhost:3000
cd pinterest-extraction
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp env.example .env
# Fill in your API keys
uvicorn app.main:app --reload --port 8000API docs at http://localhost:8000/docs
flowchart LR
U[User] --> W[Next.js App]
subgraph Frontend["Next.js App Router"]
W --> A1[/api/pinterest-board/]
W --> A2[/api/items/]
W --> A3[/api/get-placement/]
W --> A4[/api/match-cache/]
end
subgraph Backend["FastAPI :8000"]
P1[/v1/analyze-job/]
P2[/v1/extract-item-3d/]
end
A1 -->|start + poll| P1
A1 -->|start + poll| P2
P1 -->|LLM analysis| LLM[OpenAI]
P2 -->|item extraction| G[Gemini]
P2 -->|3D generation| R[Replicate Trellis]
P2 -->|store assets| R2[Cloudflare R2]
A2 --> DB[(MongoDB)]
A3 -->|placement inference| GV[Gemini Vision]
Frontend
|
Backend
|
University students express identity through their space, but buying furniture from flat images leads to regret and costly returns. Inspiration stays trapped in static Pinterest boards — disconnected from the real constraints of your room.
Déjà View bridges that gap: discover → visualize in 3D → decide with context → shop what truly belongs.
| Name | Role |
|---|---|
| David Liu | Web app, UI/UX, product, video/LiDAR → 3D room model |
| Julian Laxman | Pinterest integration, Pinterest → 2D → 3D pipeline, backend integration |
| Alan Xue | Shopify integration, UI/UX, Web app, Google PSE API -> MongoDB pipeline integration |
| Charles Bae | 3D room modeling & object placement logic, Three.js integration, system components integration |
Built at UofTHacks 13




