Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and…

MITAuto-check passedGame Development

Install Blender

skills CLI
$ npx skills add autonomous-ai/openharness --skill blender -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install autonomous-ai/openharness blender --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/autonomous-ai/openharness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/store/agents/blender/skills/blender .claude/skills/blender && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
blender
GitHub stars
1.2k
Token cost
~2.1k tokens
SKILL.md length
858 words
Files
1
Skills in repo
100
Repo updated
First seen
Licence
MIT

At a glance

Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and…

  • Any request that ends in a 3D model
  • SKILL.md covers Build, export, render, verdict, What the pane shows, and how…, Modelling, the parts that matter and Rules
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • A rendered shot

What it does

Blender is an agent skill from autonomous-ai/openharness. Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and turntables, export STL. Use for any request that ends in a 3D model, a rendered shot or a glTF.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Game Development, covering 3D graphics and WebGL. It works with Blender and Python. The repository describes itself as: The ultimate harness for coding agents and beyond. All your agents. All your machines. One command center. Start with code, then follow your curiosity and build across… The licence is MIT.

When your agent uses it

  • Any request that ends in a 3D model
  • A rendered shot

Example prompts

  • “/blender”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit cc4983e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Blender loads about 2.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 858 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from autonomous-ai/openharness at commit cc4983e, republished under its MIT licence (© autonomous-ai). 858 words, ~2,140 tokens.

Download SKILL.mdSave it as .claude/skills/blender/SKILL.md (or your agent's skills folder).
name
blender
description
Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and turntables, export STL. Use for any request that ends in a 3D model, a rendered shot or a glTF.

blender

Blender runs here as a Python module (bpy, pinned): everything Blender does, no window. Scripts live in scenes/, run with $BLENDER_PYTHON, and harness_blender (on PYTHONPATH) gives you the scene, the camera, the export, the renders and the report in one import.

Build, export, render, verdict

bash
"$BLENDER_PYTHON" scenes/hello.py                        # builds → out/model.glb, out/preview.png, out/turntable.mp4, out/report.json
"$BLENDER_PYTHON" "$BLENDER_TOOLCHAIN/verdict.py"        # judges out/ → the pane header, and which glTF the pane opens
python
import bpy
from harness_blender import fresh, frame_all, export_glb, render, turntable, export_stl, report
fresh()                                    # empty scene, millimetres, Workbench matcap
bpy.ops.mesh.primitive_cylinder_add(vertices=96, radius=45, depth=100, location=(0, 0, 50))
body = bpy.context.active_object
body.name = "Mug"                          # the name the pane's outliner shows
frame_all()                                # camera + key light framing everything
export_glb("out/model.glb")                # FIRST: the 3D pane reloads now, in place
render("out/preview.png")                  # a still, seconds (engine="CYCLES", samples=64 for a beauty shot)
turntable("out/turntable.mp4", seconds=4)  # the pane's Turntable tab; the scene is left as it was
report()                                   # what the verdict reads

What the pane shows, and how to feed it

Shape Lab: authored controls, real geometry, kept directions

Expose choices that help the user explore their object. parameters() publishes controls to .harness/design.json and reads the defaults or the user's design-values.json during each run:

python
from harness_blender import parameters
p = parameters({
    "height": {"default": 260, "min": 180, "max": 380, "step": 5, "unit": "mm"},
    "ribs": {"type": "integer", "label": "Ribbons", "default": 24, "min": 12, "max": 48},
    "base": {"type": "boolean", "label": "Include base", "default": True},
    "finish": {"type": "choice", "default": "Ivory", "options": ["Ivory", "Terracotta"]},
}, title="Light, shaped by you", sources=["scenes", "assets"], output="out/model.glb")
# Use p["height"], p["ribs"], p["base"] and p["finish"] in the scene you author.

All controls need a default. Numeric controls default to type number and step 1; they need finite min < max bounds. Integer bounds and steps must be integers. Optional label, description and unit explain a control. Support is bounded to 1–16 controls and 2–12 choice options. A control ID uses lowercase letters, numbers and underscores, starting with a letter.

sources lists existing relative files or folders needed to rebuild: the entry script, local imports and assets. By default it includes the entry script's folder and assets/ when present. List root-level imports or other asset folders explicitly. Hidden files, dependencies, output folders and symlinks are not inputs. Use relative paths and the helper's workspace convention; the native preview is a separate working directory, not a sandbox for arbitrary Python.

Shape Lab snapshots the declared files and runs the entry script with chosen values. It keeps the last good preview while another builds, coalesces rapid changes, and stops a preview after two minutes. render() and turntable() are skipped in this mode. Always produce the declared out/*.glb/.gltf and out/report.json; prefer a self-contained GLB. Other dependencies must already be available in the harness's Python environment.

Keep saves source, helper modules and their license, values, actual exports, measurements, thumbnail, a rebuild script and a ZIP in out/designs/<id>/. Saved directions survive source edits and viewer restarts. Use values on next build writes the chosen values to the project only when the authored source still matches. It does not replace the current model, renders or verdict; run the scene and verdict normally to produce that delivery. Preserve the user's values when refining, and migrate them explicitly if the control schema changes.

For example, a user may keep a short wide cup and a tall handle-free tumbler, then ask you to refine the tumbler's rim. Read its saved source and measurements instead of approximating it from the thumbnail. Geometry, camera and finish remain ordinary editable Blender Python.

Viewport metadata

The pane is a 3D viewport of the glTF, not a video player. export_glb carries everything it needs:

  • Names and hierarchy: every renderable object under its Blender name, collections as the outliner's tree, parenting kept. Name objects, collections and materials for what they are.
  • Facts per object (as glTF extras): dimensions and location in mm, rotation, scale, vertex / face / triangle counts, modifiers, materials, collections. Your own custom properties (obj["part_no"] = "A-12") appear in the properties panel too.
  • Materials: Principled BSDF base colour, metallic, roughness, textures; diffuse_color is what Solid shading uses — set it to match.
  • The scene camera and lights (KHR_lights_punctual): the user can look through the camera (numpad 0) and switch the lights on in Material / Rendered shading.
  • Animation: keyframed objects play on the pane's timeline (obj.keyframe_insert(...), scene.frame_end, scene.render.fps).
  • Units: the scene's unit scale travels with the export, so millimetres read as millimetres.

While a script runs, the helper writes .harness/build.json (step, turntable progress, failure) and the pane shows "Rebuilding · …" over the last good model. Exports are written to a hidden file and renamed into place, so the pane never reads half a file. Export after every meaningful change.

Show full SKILL.md (261 more words)Show less

Modelling, the parts that matter

  • Primitives: primitive_cube_add(size), primitive_cylinder_add(vertices, radius, depth), primitive_uv_sphere_add(radius), primitive_torus_add(major_radius, minor_radius), primitive_plane_add. Each becomes bpy.context.active_object; name it.
  • Collections: c = bpy.data.collections.new("Lamp"); bpy.context.scene.collection.children.link(c), then move an object: for u in list(o.users_collection): u.objects.unlink(o) and c.objects.link(o).
  • Modifiers (non-destructive, applied on export): o.modifiers.new("Bevel", "BEVEL") (width, segments, limit_method="ANGLE"), "SUBSURF" (levels), "BOOLEAN" (operation DIFFERENCE/UNION, object — hide the cutter with hide_render = True), "ARRAY", "MIRROR", "SOLIDIFY" (thickness — a clean way to give an open shape a wall), "SCREW", "DISPLACE".
  • Smooth shading: bpy.ops.object.shade_smooth_by_angle(angle=math.radians(35)) on curved parts.
  • Edit-mode ops when a modifier will not do: bmesh for exact geometry (bmesh.ops.extrude_face_region, inset, bevel, delete), then back to the mesh.
  • Curves and text: bpy.data.curves.new(type="FONT") + body for lettering, extrude for depth.
  • Materials: bpy.data.materials.new, use_nodes = True, Principled BSDF inputs Base Color, Roughness, Metallic; set diffuse_color too so Workbench and the pane's Solid mode show it.
  • Units: fresh() puts the scene in millimetres. Model at real size; the report says the size.
  • Cameras: frame_all(azimuth, elevation) for the shot; render(engine="CYCLES") for light, shadow and glass (CPU: 64 samples at 1280×720 is under a minute for a small scene).
  • Animation: obj.keyframe_insert("location", frame=n); scene.frame_end; it exports and plays on the pane's timeline.
  • Geometry Nodes exist (modifiers.new(type="NODES")) but hand-built node trees are long; prefer modifiers and bmesh unless the request is procedural by nature.

Rules

  • Never write inside the package; out/ holds everything produced, scenes/ the scripts.
  • First a blocky version (primitives, no bevels), export it, then render; then refine and export again. The live 3D scene is the proof; the turntable is the deliverable.
  • Deliver out/model.glb (and .stl when it is for printing); say the size in mm.

© autonomous-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in store/agents/blender/skills/blender of autonomous-ai/openharness.

Open the folder on GitHubat commit cc4983e

Compare with similar skills

Blender next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Blender compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blender this skillautonomous-ai/openharness1.2k—~2.1kAutomated safety check: PassMIT
Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill148—~2.1kAutomated safety check: PassNone
Blender Web Export Pipelinefreshtechbro/claudedesignskills1k—~4.2kAutomated safety check: PassMIT
CLI Hub Matrix 3D CadHKUDS/CLI-Anything52k—~2.4kAutomated safety check: PassApache-2.0
Higgsfield 3DOSideMedia/higgsfield-ai-prompt-skill713—~6.8kAutomated safety check: PassMIT
Procedural Geometry for Blender Scriptslukapiskorec/craftbot154—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Text To 3D Asset

    LaurentiuGabriel/unreal-game-assets-creation-skill

    Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.

    148 GitHub stars~2.1k tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Blender Web Export Pipeline

    freshtechbro/claudedesignskills

    Exports and optimizes Blender 3D models and animations for the web as glTF, covering batch Python scripting, texture baking, decimation and LOD generation for Three.js and Babylon.js.

    1k GitHub stars~4.2k tokensUpdated 10 mo ago
    Game DevelopmentAuto-check passed
  • CLI Hub Matrix 3D Cad

    HKUDS/CLI-Anything

    Capability-based multi-tool matrix for 3D modeling, CAD, point clouds, rendering, GPU debugging, and fabrication.

    52k GitHub stars~2.4k tokensUpdated 18 days ago
    Game DevelopmentAuto-check passed
  • Higgsfield 3D

    OSideMedia/higgsfield-ai-prompt-skill

    A skill your agent uses when the user wants a 3D model, mesh or GLB out of Higgsfield — image-to-3D, multi-view-to-3D, text-to-3D, rigging or animating a mesh, remesh / retopology, retexture, or 3D…

    713 GitHub stars~6.8k tokensUpdated 13 days ago
    Game DevelopmentAuto-check passed
  • Guides Blender Python that generates construction geometry from derived parametric expressions instead of hand-typed coordinates, so changes propagate and overlaps stay checkable.

    154 GitHub stars~1.4k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed

More from autonomous-ai/openharness

All 100 skills in this repo
  • G-code Slicer Tool

    autonomous-ai/openharness

    Slices 3D mesh files into printer-profiled plain G-code through real slicer CLIs, with backend discovery, input inspection, dry runs and static validation.

    1.2k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Home Assistant Automation Builder

    autonomous-ai/openharness

    Turns a home-automation request into standard, testable automations.yaml, run against Home Assistant Core's real triggers and verified with its own trace tool.

    1.2k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Score Music Composer

    autonomous-ai/openharness

    Turns a musical brief into LilyPond concert-pitch music, checked parts for each instrument and a playable practice pack.

    1.2k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • OrcaSlicer 3MF and G-code Workflow

    autonomous-ai/openharness

    Turns an STL and explicit printer and material requirements into compared OrcaSlicer plans, an editable 3MF project, checked G-code and a portable handoff.

    1.2k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Sheets and Docs Report Builder

    autonomous-ai/openharness

    Builds an editable DOCX report, a formula-driven XLSX workbook and a fresh LibreOffice PDF preview from one structured source file, then checks them together.

    1.2k GitHub stars~708 tokensUpdated today
    Auto-check passed
  • Bambu Labs

    autonomous-ai/openharness

    Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain .gcode, using Bambu LAN FTPS/MQTT handoffs.

    1.2k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check: warnings

Works with

Questions about Blender

What does Blender do?

Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and…. Blender is an agent skill from autonomous-ai/openharness. Model objects and scenes with Blender's Python (bpy) headless — primitives, modifiers, materials, collections, cameras, lights, animation — export glTF the 3D pane shows live, render stills and turntables, export STL.

When should I use Blender?

Blender fits situations like: any request that ends in a 3D model; A rendered shot.

How do I install Blender in Claude Code?

Run `npx skills add autonomous-ai/openharness --skill blender -a claude-code`. Or copy the skill folder (store/agents/blender/skills/blender in autonomous-ai/openharness) into .claude/skills/blender in your project. Claude Code loads it when a task matches its description.

How do I install Blender in Codex?

Run `npx skills add autonomous-ai/openharness --skill blender -a codex`. Or copy the skill folder (store/agents/blender/skills/blender in autonomous-ai/openharness) into .agents/skills/blender in your project. Codex loads it when a task matches its description.

Can I use Blender in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add autonomous-ai/openharness --skill blender -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blender, .gemini/skills/blender, .github/skills/blender and .opencode/skills/blender in your project.

What does Blender need to run?

SKILL.md names no scripts, command-line tools or credentials: Blender is instructions for the agent only. Our summary lists: Python 3.

Does Blender access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Blender safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Blender use?

Blender is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blender use?

About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Blender?

Skills that share tags, products or a category with Blender: Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 148 stars), Blender Web Export Pipeline (freshtechbro/claudedesignskills, 1k stars), CLI Hub Matrix 3D Cad (HKUDS/CLI-Anything, 52k stars) and Higgsfield 3D (OSideMedia/higgsfield-ai-prompt-skill, 713 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blender?

autonomous-ai (a GitHub organization) maintains it in autonomous-ai/openharness, which has 1,210 GitHub stars. The repository holds 100 skills in this directory. The repository was last updated on October 10, 2026.

Source: autonomous-ai/openharness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.