dream3d
dream3d turns one sentence into a coherent, explorable 3D scene.
Core trick
Claude renders the arranged scene from several angles, critiques placement errors like floating or overlapping objects, and reissues position fixes over several passes.
Description
dream3d turns one sentence into a coherent, explorable 3D scene. You type a prompt (e.g. "a StarCraft standoff — a marine facing a zergling and a hydralisk"); an agent decomposes it into objects, generates each as a real GLB asset via Meshy.ai, lays them out, then LOOKS at the rendered scene and critiques it like a human — "that unit is floating", "these two overlap", "it's facing backwards" — and self-corrects over several passes before presenting the result in an interactive web viewer. The problem: building a multi-object 3D scene normally means manual modeling and tedious placement in a DCC tool. dream3d collapses that into one prompt by making Claude the spatial director — decompose → arrange → see → critique → fix — with Meshy as the asset source. The differentiator is the agentic vision-correction loop, not "we generate 3D".
Use cases: indie game prototyping, e-commerce product staging, real-estate virtual staging.
README excerpt
# dream3d
Turn a one-line prompt into a coherent, multi-object 3D scene — then let an agent
**look at the render and correct what's wrong**.
Built for **Claude Build Day** (Cerebral Valley × Anthropic, San Francisco,
2026-06-13). Claude is the brain (plan → see → critique → fix);
[Meshy.ai](https://www.meshy.ai/) is the asset source.
## What it is
You type something like *"a cozy living room with a sofa, a coffee table and a
floor lamp"*. dream3d decomposes it into objects, generates each as a textured 3D
model, arranges them in a room, then runs an **agentic vision-correction loop**:
it renders the scene from several angles, judges it the way a person would ("the
lamp is floating", "the table overlaps the sofa"), and self-corrects — repeating
for as many amend rounds as you ask for.
The differentiator is that loop. Generating 3D is a crowded space; here Claude
does the reasoning (decompose → arrange → see → critique → fix) and Meshy is just
where the meshes come from.
## How it works
The pipeline lives in [`src/pipeline/orchestrator.ts`](src/pipeline/orchestrator.ts) —
`generate(prompt, amendRounds, onEvent?)`:
```
prompt
│
▼
1. Plan claudePlanner → ScenePlan: a room + 3–6 objects, each with a
│ meshyPrompt, approxSize, position and rotationYDeg.
▼
2. Assets meshyAssetProvider generates each object via Meshy preview → refine
│ → a TEXTURED PBR GLB (≤ 300k tris). ≤ 3 concurrent. Cached.
▼
3. Layout layout() drops objects onto the fl