Blender expert (router and agent protocol)

SkillWeb & browsing

Lets your agent create and edit 3D models, animations, and renders in Blender using Python scripts.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Blender expert (router and agent protocol) skill

About this skill

Use when doing any 3D work in Blender through Python or an MCP bridge, headless or in a live session: modeling, sculpting a character or head, retopology, UV unwrapping, baking, texturing, rigging, animating, previs, geometry nodes, lighting and rendering, grease pencil, or finishing an AI-generated

What this skill tells your AI

The instructions your AI receives, as published by scenario-labs/skills in skills/dcc/blender/scenario-blender-expert/SKILL.md and read by ahel’s review.

Expert-level Blender work is a loop, not a script: build big to small, and at every stage turn the model, measure it and fix it before adding detail. This skill is the protocol every Blender task follows and the map to the domain skills distilled from Blender Studio artists, Blender Conference talks and top instructors (sources in each skill). If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

1. Execution channel

ChannelUse forRules
Live GUI Blender (user's session over the MCP bridge)anything interactive: real sculpt/paint brushes, weight painting, viewport screenshotsOne short, idempotent script per call returning a compact result dict. Get-or-create by name. Never touch objects you did not create. Save a stage backup bpy.ops.wm.save_as_mainfile(filepath=..., copy=True) after each stage.
Headless helper blender -b [file] --factory-startup --python-exit-code 1 -P x.py -- argsrenders, audits, batch ops, anything when no bridge is upAlways --factory-startup: without it the user's add-ons load (on this machine one of them makes network API calls). Without --python-exit-code a failing script still exits 0. Print a final machine-readable result line.

Never open your own GUI Blender window to test things on the user's machine: windows steal focus and pile up. Live work goes through the user's already-running Blender; everything else runs headless, one Blender process at a time per agent (other sessions may be rendering on the same machine).

Check bpy.app.version first; this skill set targets 5.2 LTS. Many tutorials the experts recorded use 2.8x to 4.2 UI: read references/blender-5.2-deltas.md before trusting any remembered operator, brush name or API.

Verified capability matrix (Blender 5.2.1):

ActionHeadlessGUI session
Voxel remesh, QuadriFlow, multires subdivide, modifiers, bmesh, UV ops with edit-mode context, Cycles/EEVEE/Workbench renders, bakingyesyes
bpy.ops.brush.asset_activate, dyntopo toggleyesyes
Brush strokes (sculpt.brush_stroke, paint.image_paint, paint.weight_paint)no (poll fails)yes, via scripts/bx_gui.py
paint.mask_flood_fill, sculpt.mesh_filterCRASHES Blenderyes, via bx_gui.run()
Programmatic sculpting on mesh datayes, scenario-blender-sculpting/scripts/bx_sculpt.pyyes

2. The expert loop (every domain)

  1. Establish the brief in numbers: purpose (film, game engine, still, animation), budgets (tris, texture size, frame range), style (stylized or realistic), references. When the brief is silent, choose a documented default from the domain skill and write it down.
  2. Plan the stages the domain skill defines. Never start with detail.
  3. Build one stage with the smallest scripts that do it.
  4. Gate the stage: run the measurable checks (scripts/bx_audit.py for meshes, the domain's own checks) AND render a review sheet (scripts/bx_review.py: silhouette, matcap, wire from front/side/three-quarter/low) and open it with the image reader. Experts orbit constantly; the review sheet is the agent's orbit. Judge with the domain's references/critique.md.
  5. Fix before advancing. A problem found at blockout costs one script; found after texturing it costs the stage.
  6. Deliver with evidence: final renders, audit numbers, and what was not verified.

Never report a model, rig, animation or render as done without having looked at a render of it.

3. Persona pipelines

Persona / briefSkill chainDeliverable
Character artist, stylized or realisticscenario-blender-sculpting, scenario-blender-retopology, scenario-blender-uv-baking, scenario-blender-texturing-shading, scenario-blender-hairsculpt, animation-ready low poly, UVs, baked maps, materials
AI-mesh finisher (Scenario 3D output to production)audit the generated mesh, scenario-blender-retopology (or cleanup + remesh), scenario-blender-uv-baking (bake FROM the generated high), scenario-blender-texturing-shading; generation itself: scenario-3dclean, UV'd, baked asset at a stated budget
Game asset artistscenario-blender-hard-surface or scenario-blender-sculpting, scenario-blender-retopology (game budget), scenario-blender-uv-baking, scenario-blender-texturing-shadinglow poly + PBR set, exported glTF/FBX
Rigger / character TDscenario-blender-riggingrig with controls, weights, deformation tests
Animatorscenario-blender-previs-storyboard (shot planning), scenario-blender-animationblocked, splined, polished shot + playblast
Story / previs artistscenario-blender-previs-storyboard, scenario-blender-grease-pencilshots, cameras, animatic
Look-dev and lighting artistscenario-blender-texturing-shading, scenario-blender-lighting-renderinglit, color-managed, composited renders
Technical artist / proceduralscenario-blender-geometry-nodesnode-group assets, procedural systems
2D / 2.5D animatorscenario-blender-grease-pencilGP animation

Related skills outside this set: scenario-3d (generate meshes to finish here), scenario-textures (AI textures), text-image-to-blender-blockout (camera-locked blockouts for render-to-real video).

4. Shared toolkit (scripts/, all tested on 5.2.1)

  • bx_audit.py: audit(obj, high=None) returns quads %, n-gons, poles (valence 3 / 5+ / 6+), non-manifold, loose, duplicates, flipped faces, self-intersections, boundary loops, symmetry %, edge-length CV, and fidelity to a high poly; verdict(report) lists problems. CLI: blender -b f.blend --python bx_audit.py -- --object Name [--high Sculpt] [--json out.json].
  • bx_review.py: review(objs, out_dir, views, modes) writes one contact sheet (rows = modes, cols = views) in a temporary scene, user settings untouched; playblast(path); turntable(obj, path).
  • bx_gui.py: real brushes in a live session: set_view, activate_brush(mode, name), stroke(mode, world_points, size, strength), run(op, **kw), set_paint_color, screenshot.

Import pattern: import sys; sys.path.append("<this skill>/scripts"); import bx_audit, bx_review.

5. Version traps that break most remembered code

  • Brushes are assets (4.3): bpy.ops.brush.asset_activate(asset_library_type='ESSENTIALS', asset_library_identifier="", relative_asset_identifier="brushes/essentials_brushes-mesh_sculpt.blend/Brush/Clay Strips"); brush size is a diameter (5.0); Flatten/Fill/Scrape merged into the Plane type.
  • Auto Smooth removed (4.1): mesh.shade_smooth() / Smooth by Angle modifier; voxel remesh output is flat-shaded until you call shade_smooth().
  • Principled BSDF v2 (4.0): address sockets by name; Emission strength defaults to 0.
  • BLENDER_EEVEE is the EEVEE Next identifier in 5.x (BLENDER_EEVEE_NEXT fails).
  • Compositor is a node group (5.0): scene.compositing_node_group, not scene.node_tree.
  • Video output: set image_settings.media_type = 'VIDEO' before file_format = 'FFMPEG' (5.0).
  • Slotted actions (4.4), action.fcurves removed (5.0): use bpy_extras.anim_utils.action_get_channelbag_for_slot(action, slot).
  • Bone collections replace armature layers (4.0); Grease Pencil v3 is GREASEPENCIL with bpy.ops.grease_pencil.* (4.3).
  • Positional context dicts for operators are gone: with bpy.context.temp_override(...).
  • obj.matrix_world is stale right after setting location/scale until view_layer.update().

References

  • references/bpy-reliability.md: checklist and tested procedures for reliable bpy (operators vs data API, stale references, evaluated vs original data, idempotent headless jobs, numpy bulk access, node trees, persistence). Load before writing any non-trivial script.
  • references/blender-5.2-deltas.md: full, cited list of what changed from 2.8x to 5.2 per domain (load before writing code from memory or following an old tutorial).

Signals

GitHub stars
681
Forks
82
Last commit
Sep 2026

ahel review

  • K6low
    bundled executables the agent is told to run

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
scenario-blender-expert
Source
github.com/scenario-labs/skills