blender.jmj.fyi — the power move

CLAUDE CODE
+ BLENDER

Can Claude build and animate things in Blender for you? Yes. Blender can be driven by code, and Claude Code writes the code. Here's exactly how — from "paste this and press Run" all the way to "Claude builds in your scene while you watch."

01
How Is This Even Possible?
The idea

Blender has a hidden superpower: everything you can do by clicking, you can also do with a line of code. It speaks a language called Python, and Blender comes with a built-in command called bpy (short for "Blender Python") that controls the whole program.

So instead of clicking Shift+A twenty times to add twenty cubes, you write one tiny loop and Blender makes all twenty instantly. Claude Code's job is to write that Python for you. You say what you want in plain English; Claude hands you the code.

Think of it like Scratch

In Scratch you snap blocks together to tell a sprite what to do. Python is the same thing as typed words instead of blocks — and Claude can write those words for you. You're basically describing blocks out loud and getting them built.

02
The Easy Way: Paste & Run
No setup — do this first

This works today, with zero installing. Blender has a built-in code window. You get a script from Claude, paste it in, press a button, and watch it happen.

  1. At the very top of Blender, click the Scripting tab (it's in the row of workspace names: Layout, Modeling, ... Scripting).
  2. In the text panel, click + New to start a blank script.
  3. Paste in one of the scripts below (use the copy button).
  4. Press the ▶ Run button at the top of the text panel (or Alt+P).
  5. Click back to the Layout tab to see what got built. ✨
If something errors

A red message at the bottom just means a typo or a wrong Blender version. Copy that red text, paste it to Claude Code, and say "this errored, fix it." That back-and-forth is normal — it's how everyone codes.

03
Three Scripts To Try Right Now
Copy · paste · run
Script A — builds a snowman character out of shapes
import bpy # start fresh: delete everything in the scene bpy.ops.object.select_all(action='SELECT') bpy.ops.object.delete() def add_ball(size, height, name, color): bpy.ops.mesh.primitive_uv_sphere_add(radius=size, location=(0, 0, height)) ball = bpy.context.active_object ball.name = name bpy.ops.object.shade_smooth() mat = bpy.data.materials.new(name) mat.use_nodes = True mat.node_tree.nodes["Principled BSDF"].inputs["Base Color"].default_value = color ball.data.materials.append(mat) return ball # three white snowballs stacked up add_ball(1.0, 1.0, "Bottom", (1, 1, 1, 1)) add_ball(0.7, 2.4, "Middle", (1, 1, 1, 1)) add_ball(0.5, 3.4, "Head", (1, 1, 1, 1)) # orange carrot nose bpy.ops.mesh.primitive_cone_add(radius1=0.12, depth=0.5, location=(0, -0.5, 3.4), rotation=(1.5708, 0, 0)) nose = bpy.context.active_object m = bpy.data.materials.new("Carrot") m.use_nodes = True m.node_tree.nodes["Principled BSDF"].inputs["Base Color"].default_value = (1, 0.4, 0, 1) nose.data.materials.append(m)
Script B — makes the selected object bounce (animation!)
import bpy # FIRST: click an object to select it, then run this. obj = bpy.context.active_object obj.animation_data_clear() # wipe old keyframes # (frame, height) — up high, squash down, back up keys = [(1, 4.0), (12, 1.0), (24, 4.0)] for frame, z in keys: obj.location.z = z obj.keyframe_insert(data_path="location", frame=frame) bpy.context.scene.frame_start = 1 bpy.context.scene.frame_end = 24 # now press Spacebar back in Layout to watch it bounce
Script C — spins the object and renders an .mp4 movie
import bpy, math scene = bpy.context.scene obj = bpy.context.active_object # select the thing to spin first # turntable: full 360 spin over 60 frames obj.rotation_euler = (0, 0, 0) obj.keyframe_insert(data_path="rotation_euler", frame=1) obj.rotation_euler = (0, 0, math.radians(360)) obj.keyframe_insert(data_path="rotation_euler", frame=60) scene.frame_start = 1 scene.frame_end = 60 # EEVEE = fast. On Blender 4.2+ use 'BLENDER_EEVEE_NEXT'. # On Blender 4.0/4.1 use 'BLENDER_EEVEE' instead. scene.render.engine = 'BLENDER_EEVEE_NEXT' scene.render.image_settings.file_format = 'FFMPEG' scene.render.ffmpeg.format = 'MPEG4' scene.render.ffmpeg.codec = 'H264' scene.render.filepath = "//turntable.mp4" # saves next to your .blend bpy.ops.render.render(animation=True) # go! watch the frames render
Try this combo

Run Script A to build a snowman, click the Head, run Script B to make it bounce, then select everything and run Script C to render a movie. You just made an animated film entirely with code.

04
Getting Claude To Write Your Own
Ask for anything

The scripts above are starters. The real magic is asking Claude Code for whatever you dream up. Open Claude Code in a terminal and describe what you want — the clearer you are, the better the script. Good prompts sound like this:

Prompt — buildingWrite a Blender Python script that builds a little robot out of cubes and cylinders: a box body, a box head, two cylinder legs, two cylinder arms, and antennae. Give it a shiny blue metal material. I'll paste it into Blender's Scripting tab and press Run.
Prompt — animatingWrite a Blender Python script that makes my selected character walk across the floor and wave: move it along X from frame 1 to 60, and make it gently bob up and down the whole time so it looks like walking.
Prompt — a whole sceneWrite a Blender script that builds a simple scene: a big ground plane, a sun light, a blue sky background, and a camera aimed at the center. Then drop 10 colorful spheres in random spots. Use the EEVEE engine.

When Claude gives you a script, paste it into Blender and run it (Module 02). If it errors, copy the red message back to Claude and ask it to fix it. That loop — ask, run, fix — is the whole skill.

Even faster (for a grown-up)

Claude Code can save the script straight to a file and even render it without opening Blender's window, using the command line:

# renders the whole animation in the background, no clicking blender myscene.blend --background --python my_script.py
05
What Claude Is Great At (And Not)
Keep it real

Code is amazing for some things and not the right tool for others. Here's the honest split so you know when to ask Claude and when to just use your mouse:

Claude crushes this

  • Building things from simple shapes
  • Making lots of copies (50 trees, a brick wall)
  • Keyframe animation — bounce, spin, orbit, walk
  • Setting up lights, camera, and materials
  • Render + export settings (the fiddly stuff)
  • Anything repetitive or math-y

Better by hand

  • Sculpting a detailed, organic character face
  • Hand-painting textures and tiny details
  • "Make it look cool" — taste is yours, not code's
  • Fine-tuning a pose until it feels right
  • Happy accidents — playing and discovering

The best workflow mixes both: you design and build the character by hand (the fun creative part), then ask Claude to handle the tedious parts — animate it, light it, set up the render, make 30 copies. Artist + robot assistant.

06
The Cool Way: Live Control (Blender MCP)
Ask a grown-up

There's an even fancier setup where Claude connects directly to your open Blender and builds in your scene while you watch — no copy-pasting. You just chat ("add a red car next to the snowman") and it appears. This uses a free community tool called the Blender MCP add-on.

It needs a one-time install (an add-on inside Blender plus a small server program), so it's a set-it-up-with-Dad project. Once it's running it can even pull in free 3D models and sky backgrounds for you automatically. Here's the gist of what setup looks like:

For the grown-up

The project is open-source: search "blender-mcp" on GitHub (by Siddharth Ahuja). It runs with the uvx blender-mcp command and connects to Claude as an MCP server. Start with the paste-and-run method on this page first — it teaches the same ideas with none of the setup.

← Back to the main guide