~/sidharth.dev
Beyond Code: I Gave Claude a Floor Plan and It Built the House in 3D
fig.0: claude-blender-mcp-floor-plan-to-3d-house

~/blog/claude-blender-mcp-floor-plan-to-3d-house

4 min · · 751 words

Beyond Code: I Gave Claude a Floor Plan and It Built the House in 3D

Everyone uses Claude to write code. I pointed it at something with nothing to do with software — a 2D floor plan of a family home — and let it drive Blender end to end. Two days later: a furnished, rendered 3D walkthrough. I don't know Blender.

#claude#ai-agents#mcp#blender#3d-modelling#agentic-workflows
A rooftop lounge, rendered from a 2D plan. Claude placed the seating, the pergola, the planting.
A rooftop lounge, rendered from a 2D plan. Claude placed the seating, the pergola, the planting.

The idea: a coding agent isn't really a coding agent. It's a loop — act, look, correct — wired to a tool that happens to be a compiler. Swap the compiler for Blender and the loop doesn't care. Code was just the first tool we plugged in.

The unlock

There's an MCP server for Blender. It hands Claude two things that matter: execute_blender_code (run any Python in a live Blender session — so, do anything) and get_viewport_screenshot (render the view and hand the image back to the model). Act, then look at what you did, then fix it.

I gave it a real job: take the 2D plan of a family home and rebuild it in 3D — accurate, furnished, rendered.

Reading the drawing is the hard part

Not the geometry. Geometry is just coordinates. The hard part is a human drawing full of conventions nobody wrote down: north pointed down, dimensions in feet on a pixel-scaled SVG, room labels that disagreed with the rectangles actually drawn.

So the first move wasn't modelling — it was a conversion function:

python
PX_PER_FT = 16.5
FT = 0.3048                       # feet -> metres
def X(px): return ((SVG_W - px) / PX_PER_FT) * FT   # pixel -> world metres
def Y(py): return ((py - SVG_TOP) / PX_PER_FT) * FT

After that, every wall is just a segment in pixel space; door and window openings are gaps left in the list. The leverage is in the representation, not the grind.

The screenshot-verify loop is the superpower

This is the part that felt like watching a person. Claude rendered a top-down view, compared it to the plan, caught its own mistakes — a wall a few inches proud, a door on the wrong face — and fixed them.

That's TDD. Write → run → read the failure → fix. Except the "test" is an image and the assertion is does this match the drawing. The loop doesn't need a stack trace; a picture works.

The untextured "clay" massing, straight from the plan — the verification stage, not a failure. Lock geometry first, texture later.
The untextured "clay" massing, straight from the plan — the verification stage, not a failure. Lock geometry first, texture later.

The one instruction that mattered most wasn't technical: the plan is the source of truth — flag conflicts, don't silently "improve" them. Left alone, an agent will confidently straighten things and move a door to where it thinks it goes. Same fix as AI "fixing" code you didn't ask it to touch.

Furnishing it like a designer

Empty rooms are easy to fill badly — sofas through walls, a table you can't walk around. The trick was handing Claude the constraints a real designer carries: ~3 ft walkways, ~2.5 ft to pull out a chair, keep door swings clear. After each room it screenshotted, checked for blocked paths, and adjusted.

A furnished interior — placed with real clearances, so paths stay walkable.
A furnished interior — placed with real clearances, so paths stay walkable.
Same rooftop, textured and planted. Grey blocks to this, all through the MCP.
Same rooftop, textured and planted. Grey blocks to this, all through the MCP.

Then — because cameras are just more Python — it rendered the motion too:

A rooftop flythrough, rendered from the model Claude built. Camera path and render, all via the MCP.
A rooftop flythrough, rendered from the model Claude built. Camera path and render, all via the MCP.

Pro vs beginner vs Claude

Pro arch-viz artistMe, soloMe + Claude
Skill neededYearsCouldn'tI direct, it operates
Time to a furnished walkthroughDays–weeksMonths (or I quit)~2 days
CeilingPhotoreal, art-directed"Clearly shows the design"

I won't fudge that last row: a senior artist still wins on taste — materials, lighting, the choices that make a render sell. Claude didn't replace that. It collapsed a different gap — the one between "can't operate this software at all" and "accurate furnished model that matches the plan." That gap used to be the skill: months of tutorials, or you pay someone. Claude turned it into a director's job. No rabbit-holing, no abandoning it half-built. The expertise tax that kills hobby projects just wasn't charged.

It's the same shift developers already felt: the floor came up. Knowing how to operate the tool stopped being the moat. The ceiling — taste, art direction, the last 20% — is still very human. The competent middle is now a conversation.


Built with Claude driving Blender through the Blender MCP. Floor plan and identifying details kept private — these renders are deliberately generic.

Sidharth Satapathy

Sidharth Satapathy

AI Engineer & Builder. 8+ years shipping at scale. Building AI-native tools with Claude Code, MCP servers, and agentic workflows.

Related posts

ask sid about this post