One photo in → an editable 3D model out. Powered by the spatial reasoning of Claude Fable 5 — no photogrammetry rig, no multi-angle capture, no manual modeling.
Drop a single 2D photo (a car, a chair, a kettle…) and Fable 5 infers depth, hidden geometry, and textures, then rebuilds the object as a parametric scene of named primitives rendered live in Three.js.
Everyone else stops at "photo → mesh". snap3d's scene is semantic — every part has a name ("front-left wheel", "windshield") — so you can keep editing in plain English:
"make the wheels huge" · "turn it into a convertible" · "paint it neon green"
Fable 5 re-edits only the parts you asked about and hands back the updated scene. Plus per-part sliders (scale, color) and one-click .obj export for Blender, Unity, or any render engine.
node server.js # → http://localhost:3777Zero npm dependencies. The brain is resolved in this order:
ANTHROPIC_API_KEYset → Anthropic API (claude-fable-5, override withSNAP3D_MODEL)claudeCLI installed → your local Claude Code session does the reasoning- neither → a bundled demo scene, so the UI always works
photo (base64) ─→ Claude Fable 5 ─→ {parts:[{name, shape, dim, pos, rot, color}]} ─→ Three.js
remix text + current scene ─→ Fable 5 ─→ updated scene JSON ──────────────────┘
The whole trick is a strict JSON contract: box/cylinder/sphere/cone/torus primitives, Y-up, ground at y=0. The model does the spatial reasoning; the browser just builds meshes.
server.js— stdlib Node server + Fable 5 bridge (~100 lines)public/index.html— viewer, parts panel, remix box, OBJ export (one file)public/demo-scene.json— offline fallback scene
MIT · built by Rohit Raj with Claude Fable 5