In the first half of October, I took two weeks to find out how far Claude Code could drive Blender through prompting alone. The test was a 3D character from a handful of phone photos of me and a few of my colleagues. With FaceBuilder for the head and Blender's Python API for everything else, I managed to create five busts, and two full rigged bodies with 51 facial expressions each. I even used one of them on my portfolio website, loaded at 12MB as a .vrm file. Claude did most of it. The parts it could not do are the interesting bit.
What I was testing
Blender has a Python API that can do everything we see on the interface, and through a local MCP server, Claude Code gets to call it directly. FaceBuilder on the other hand, is a paid add-on from KeenTools that turns a few photos into a head mesh. You're able to to place pins on the eyes, nose, mouth and jaw in each photo and it solves a head that matches all of them, I had used neither by script before.
The question now was: If I describe what I want Claude Code to do, could it complete the task better than if I were to do it myself, armed with only a few weeks of Blender experience?
Where AI was best
Claude installed the free MakeHuman body add-on, MPFB, by script. It loaded my photos, placed FaceBuilder pins by pixel coordinate, ran the solver, and baked the photos into a 2048 by 2048 skin texture. Every head came out at 18,024 vertices. It built a body in MPFB, attached the head, added the Mixamo-style rig with 52 bones, and since MPFB ships no clothes, it made a simple sweater, jeans and shoes as thickened shells of the body surface. It generated the 51 ARKit blendshapes from the solved head, mapped them to VRM's 18 preset expressions, and exported.
For the quick busts, one front photo was enough. For the two full builds it used four or five: front, three-quarter, both profiles, one from behind. The two bodies came out at 32 MB and 55 MB. The standard glTF optimiser strips VRM data, so Claude wrote a shrink script of its own and got the 55 MB one to 12 MB for the web. For animation it ran Unity in batch mode with UniVRM to convert Mixamo clips, no editor window open.
Along the way it hit a series of snags. Pins vanished between calls unless the model was loaded and saved each time. Pin coordinates were relative to the render resolution, not the photo. Focal length estimation gave 22 mm and 60 mm for the same phone on different photos, so it fixed one focal for all views. MPFB's body sliders are shape keys, so the mesh you read is not the mesh you see. The VRM exporter writes world position, so a figure parked five metres to the side exported five metres to the side.
Each of those took a few rounds. A huge contrast to spending weeks just getting the base done without AI. Scripting against an API, reading errors, trying again: this is what the tool is good at.
Where it got hard
Hair: FaceBuilder gives you a bald head with the hair painted onto the scalp texture. Real hair needs geometry. I tried to describe mine in words. Claude built a solid hull. Too helmet-like. It sculpted a shape. Wrong silhouette. It ran a cloth simulation. No. Eventually hair cards, flat strips with a texture, got close enough, and the file still has an archive collection with the three failed attempts in it. The problem was not Blender. It was that "shorter at the sides, pushed back, a bit messy at the front" means nothing precise to a program, and every attempt cost a render and a round trip to find out.
Blemishes: The baked texture is the photos projected onto the mesh, so it carries everything the photos had. The lighting of the room. The collar of a red shirt wrapped around the neck. My fringe painted across my forehead where the mesh had no hair to catch it. Fixing these means looking at a texture and knowing which pixels are wrong, and Claude could not reliably see that. The screenshot tool for Blender's viewport errored on my machine, so every look was a render to a file and a description back. Some of this I did by hand in the texture. Some I got by prompting much more specifically: not "clean up the neck" but "paint the region below this vertex loop with the skin colour sampled from the cheek".
Skin weights: When the rig moves, each vertex follows the bones by a weight, and the automatic weights were wrong where the clothes met the body and around the shoulders. Describing a bad deformation in words is slow. "The sweater pokes through the arm when it raises" gets you a guess at a fix, then a render, then another guess. I ended up correcting weights manually in a few places, which took minutes once I was in the interface, after a much longer attempt to explain it.
The pattern across all three shows that the AI was excellent when the target was a number or an API call, and struggled when the target was "looks right". The more I could turn a visual judgement into a coordinate, a vertex group, or a colour value, the better it did. The less I could, the more it was faster to do it myself.
Final thoughts
- Let the AI do the scaffolding. Installing add-ons, wrangling the solver, rigging, blendshapes, export, file size. It is faster than you and almost always gets what you want it to do.
- Expect to take over for hair, skin and weights, or budget for a lot of very specific prompting. Learn enough of the interface to do the last ten percent by hand.
- Give it eyes. If the viewport screenshot works on your machine, use it. If not, render to file after every visual step. Blind edits are expensive.
- Write down the traps. This is so the next head does not pay for them again.
It's not AAA game-ready assets but it is recognisable, which for general use is what I wanted. The heads are my own and my colleagues', who were okay with it. Then we could use the completed VRMs as avatars on Miko Assistant and watch them regret saying okay. All in a day.
