Skip to content

FurnishAR

FurnishAR lets you furnish an apartment before you move in.

Core trick

Argon places IKEA products in a room layout, then deterministic checks test collisions, walkway clearance, and budget, auto-correcting failures.

Tags

Description

FurnishAR lets you furnish an apartment before you move in. Enter your room dimensions, pick a design style and budget, and a 3-agent Gemini 4 Argon pipeline designs your space with real IKEA products — rendered in an interactive 3D room you can explore. Agent 1 analyzes the room layout, Agent 2 places furniture using Argon’s reasoning across the full product catalog, and Agent 3 runs deterministic collision detection, walkway clearance, and budget verification. If verification fails, the pipeline auto-corrects and re-verifies. Every item links directly to IKEA for purchase. Built with Next.js, Three.js, and Gemini 4 Argon Managed Agents.
akshatpatel3500/furnishar★ 00 forksTypeScriptCreated Oct 25, 2026 · last push Oct 26, 2026

README excerpt

# FurnishAR — *Furnish before you move in*

Enter your room's dimensions, pick a style and budget, and three agents design the room
with real IKEA products. The result renders as an interactive 3D model.

## Quick start

```bash
cd furnishar
npm install
cp .env.example .env.local   # then add your GEMINI_API_KEY
npm run dev                  # http://localhost:3000
```

If `GEMINI_API_KEY` isn't set, or an Argon call fails, the Designer switches to a
deterministic offline layout engine (`lib/fallbackDesigner.ts`), so the demo never dead-ends.
The agent panel always says which engine produced the layout.

## The agent pipeline

| Agent | Engine | File |
| --- | --- | --- |
| 1. Room Analyzer | Builds the room geometry directly from manual dimensions; uses Argon only to parse a free-text `description` | `lib/agents.ts → runAnalyzer` |
| 2. Designer | Gemini 4 Argon (`gemini-4-argon`), receiving the catalog, room, preferences and any verifier violations | `lib/agents.ts → runDesigner` |
| 3. Verifier | **Deterministic TypeScript, no AI.** Checks bounds, AABB collisions, 60 cm walkways, 80 cm door clearance and budget | `lib/verification.ts` |

`POST /api/pipeline` runs 1 → 2 → 3 and streams `AgentStep` updates over SSE. If the Verifier
fails the plan, its machine-readable violations go back to the Designer, with up to 2 retries.
Each attempt is streamed, so the 3D room re-arranges live as the agents fix problems.

The agents are also exposed individually: `/api/analyze`, `/api/de

Team