Blender Production MCP
Connects MCP-capable assistants to a running Blender instance via the mcp-for-blender addon to support production game-art workflows: scene audits, checkpoints and working copies, rig inspection with IK/FK compatibility checks, animation QA (contacts, foot sliding, quaternion continuity, retiming), mocap retargeting, character editing with protected regions, game mesh preparation (budgets, decimation, UV/UDIM validation, bake readiness), facial/body animation and lip-sync, secondary motion, and PBR material inspection with comparison renders.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Blender Production MCP checkpoint the scene, then audit my character rig for issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender Production MCP
Inspect. Create. Measure. Review. Preserve.
A production workflow layer for AI-assisted game art in Blender.
Get started · Connect your AI client · Tool catalog · Español
Blender Production MCP gives an MCP-capable assistant structured workflows for characters, rigs, animation, game meshes, facial performance, secondary motion and PBR materials. It connects Codex, Claude, Gemini CLI and other local MCP clients to Blender through the established mcp-for-blender addon and transport.
The focus is repeatable work: inspect the source, create a checkpoint, build a separate candidate, measure the result, render comparable previews, and review before acceptance. Your original remains the reference.
Public preview · v0.9.0. Blender execution has been qualified on Windows 11 + Blender 5.2.1 LTS, with Python 3.11.16 for the MCP server. Other Blender versions and operating systems require validation. Client setup examples are checked against official documentation; this does not mean every client has been tested end to end. See validation and limitations.
What you can do
Workflow | Practical capabilities |
Scene safety | Audits, checkpoints, restore into a new working copy, scene differences, asset roles and operation status. |
Rig inspection | Armatures, semantic candidates with confidence, IK/FK compatibility, constrained matching and deformation checks. |
Animation QA & correction | Contacts, foot sliding in real units, quaternion continuity, F-Curve cleanup, retiming, root motion and before/after previews. |
Mocap | Skeleton analysis, reviewed mappings and retargeting through supported adapters. |
Character editing | Protected regions, topology-preserving candidate edits, shape-key safeguards and deformation review. |
Game mesh preparation | Budgets, guided decimation, attribute/weight transfer, UV/UDIM validation, cages and bake readiness. |
Body & facial animation | Structured briefs, blocking, supported biped generation, expressions, gaze, blinks and lip-sync from explicit timing. |
Secondary motion | Candidate-based spring, cloth and supported hair workflows with cache/bake validation and temporal QA. |
Materials & PBR | Node/texture inspection, channel and color-space checks, isolated shader candidates, material profiles and controlled lighting comparisons. |
These workflows have explicit compatibility limits. An unknown rig, stale proposal or unsupported simulation produces a report or rejection. A technical pass is separate from visual approval.
Related MCP server: SuperMCP
A workflow you can review
flowchart LR
A[Inspect & analyze] --> B[Plan & checkpoint]
B --> C[Create candidate]
C --> D[Measure & validate]
D --> E[Render & review]
E --> F{Accept?}
F -->|Yes| G[Preserve result & evidence]
F -->|Refine| C
F -->|No| H[Reject candidate; retain source]Operations return structured findings with relevant names/IDs, warnings, errors, metrics, operation IDs and checkpoint references. Large geometry stays in Blender; the assistant receives summaries and selected detail.
Start in a few steps
You need Blender, Git, uv, and one local MCP client. Python 3.11 is recommended; uv can install it separately from Blender's own Python.
git clone https://github.com/DiegoArias32/blender-production-mcp.git
cd blender-production-mcp
git checkout v0.9.0
uv sync --frozen --python 3.11Install the matching bundled addon, then enable MCP for Blender in Blender's Add-ons preferences:
uv run --frozen mcp-for-blender addon-paths
uv run --frozen mcp-for-blender install-addonThe installer prints its destination and attempts a .bak backup. Make your own backup before replacing an existing addon. Review an existing installation before changing it. In Blender, open the 3D View sidebar with N → MCP for Blender → Start MCP Server. Keep the addon on localhost:9876, and leave addon telemetry disabled.
Then choose your client:
Client | Setup |
Codex | |
Claude Desktop | |
Claude Code | |
Gemini CLI | |
Cursor | |
VS Code / GitHub Copilot |
All clients launch blender-production over stdio. Port 9876 belongs to the Blender addon socket; it is not an HTTP MCP endpoint. Only one client/controller may use a Blender instance at a time.
New to MCP? The installation guide includes uv installation, Windows paths, verification, updates and troubleshooting. There is no PyPI release yet; install from this repository.
Try these requests
Start in a disposable scene or a deliberately created working copy.
Audit this scene. Report the Blender version, objects, armatures, units, FPS and animation range. Do not modify anything.
Analyze this walk cycle. Identify possible foot controls, explain contact assumptions, measure sliding in centimeters and report problematic frames. Propose corrections before applying them.
Inspect this character's material setup, texture dependencies, color spaces and UV/UDIM compatibility. Create a separate material candidate only after a checkpoint, then render matched lighting comparisons for review.
Plan an attack animation for this rig. First inspect its controls and IK/FK compatibility. Use a separate Action, work through blocking and timing, then evaluate contacts, root motion and temporal previews before acceptance.
The agent should ask for missing intent or mapping decisions when those affect safety or quality. It must not invent anatomy from bone names or claim a render looks good without inspecting it.
Safety is part of the workflow
Work on copies. MASTER assets are protected; register a working copy or controlled fixture before mutation.
Checkpoint before structural changes. Keep the source, intent, timestamp and integrity hashes.
Plan before applying. Revalidate proposals against current scene state; reject stale evidence.
Keep it local. Production enforces safe mode and disables upstream server telemetry. The addon socket is unauthenticated and must stay on loopback.
Keep evidence. After an uncertain timeout, inspect operation status and Blender before retrying a mutation.
Review visually. Numerical QA does not certify anatomy, performance, realism or artistic quality.
The safe-mode validator is a guardrail, not an operating-system sandbox. Your AI client has its own data handling policies. Read security and privacy.
Built on a maintained foundation
Your MCP client
└─ stdio → blender_mcp.production.server
└─ production/{animation,rig,character,game_mesh,generation,facial,physics,materials,…}
└─ common: guards, ledger, checkpoints, storage, bridge
└─ upstream BlenderConnection → localhost socket → Blender addon → bpyProduction capabilities live in domain modules. The upstream addon, socket connection and safe-mode validator remain identifiable. The exact starting upstream commit and the update process are recorded in NOTICE and upstream sync.
Documentation
Start here | Go deeper |
Most detailed domain documents currently use Spanish; the installation and client guides are in English, with a Spanish overview.
Development
uv sync --frozen --python 3.11 --group dev
uv run --frozen pytest -q
uv run --frozen python scripts/verify_install.pyThe install check performs a real MCP handshake and lists tools without connecting to Blender. Blender probes live under tests/blender/; run them explicitly against disposable fixtures. See CONTRIBUTING before contributing integration changes.
License & credits
MIT licensed. Use, modify and redistribute the code, including commercially, under the terms of LICENSE. Preserve the license and attribution.
Blender Production MCP is maintained by DiegoArias32, and derives from mcp-for-blender by Siddharth Ahuja. The original MIT license is retained unchanged. This is an independent community project, not an official Blender, OpenAI, Anthropic or Google product. Blender and your AI client are separate products with their own terms.
Available Tools
274 toolsproduction.animation_accept_generatedB
animation_accept_generated: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_add_follow_throughC
animation_add_follow_through: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_add_overlapC
animation_add_overlap: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_adjust_timingC
animation_adjust_timing: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_analyzeCRead-onlyIdempotent
Summarize Actions and F-Curves, including layered actions and warnings.
Inputs: limit, offset, action_name, object_name. Returns: result
production.animation_analyze_arcsB
animation_analyze_arcs: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_analyze_balanceBIdempotent
Conservative support-region/pelvis projection heuristic; not biomechanics and never auto-corrects.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_bezierCRead-onlyIdempotent
Handle overshoot and contextual tangent findings; fast motion is not automatically a spike.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_body_mechanicsC
animation_analyze_body_mechanics: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_analyze_contactsCIdempotent
Ground-plane M2 (schema production.contacts.ground_plane.v1) or explicit feet+surfaces M3 (schema production.contacts.surfaces.v1) phase contacts; the 'schema' field says which. Physical drift/confidence, configurable thresholds.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_control_modeCRead-onlyIdempotent
M2 analysis plus per-limb M3 modes, targets, switches and driver relationships; no mutation.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_effector_contactCIdempotent
Generic effector dwell/contact/sliding/penetration estimates; proximity alone is insufficient.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_fcurvesCRead-onlyIdempotent
Contextual F-Curve findings with bone/channel/frame/severity/detail filters and native-unit thresholds.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_foot_phaseCIdempotent
Heel/sole/toe phases against explicit static surfaces; geometric heuristics with physical metrics.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_motion_qualityBIdempotent
Velocity/acceleration/angular/contact indicators: whole-rig (schema production.motion_quality.rig.v1) or explicit limb chains (schema production.motion_quality.limb_chains.v1); the 'schema' field says which. No artistic quality score.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_pose_silhouetteC
animation_analyze_pose_silhouette: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_analyze_root_motionCIdempotent
Hierarchy-based root candidates; world-space distance, displacement, rotation and derivative events.
Inputs: object_name (required), options. Returns: result
production.animation_analyze_spacingB
animation_analyze_spacing: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_analyze_timingB
animation_analyze_timing: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_cleanup_fcurvesC
Conservative proposal-first key cleanup on duplicate; verify dense samples against per-channel tolerances.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_compare_actionsBIdempotent
Compare exact Action fingerprints and evaluated poses; restores assignment and frame.
Inputs: object_name (required), after_action (required), before_action (required), frame_end, +1 more. Returns: result
production.animation_create_actionC
Plan/create a collision-safe Action; checkpoint before creation. Original Actions retained.
Inputs: name (required), assign, dry_run, object_name, +1 more. Returns: result
production.animation_create_briefCRead-onlyIdempotent
animation_create_brief: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.animation_deformation_qaCIdempotent
Prioritize pose extremes, high angular changes and supplied contact events, then evaluate weighted mesh deformation.
Inputs: object_name (required), options, action_name. Returns: result
production.animation_detect_contact_surfaceCRead-onlyIdempotent
Nearest evaluated static mesh surface at an explicit local effector marker.
Inputs: object_name (required), options. Returns: result
production.animation_detect_foot_slidingBIdempotent
Measure potential planted-foot drift in meters. Thresholds are configurable, not universal quality standards.
Inputs: armature (required), step, bones, frame_end, +6 more. Returns: result
production.animation_detect_limb_popsCIdempotent
Explicit upper/lower/effector chains; contextual angle/velocity/acceleration/extension events.
Inputs: object_name (required), options. Returns: result
production.animation_detect_limb_stretchCIdempotent
Evaluated lengths versus rest lengths; reports configured intentional stretch separately.
Inputs: object_name (required), options. Returns: result
production.animation_detect_quaternion_flipsCRead-onlyIdempotent
Detect raw quaternion hemisphere changes; q and -q represent the same orientation.
Inputs: limit, offset, action_name, object_name. Returns: result
production.animation_duplicate_actionB
Duplicate without overwriting; checkpoint and exact original-content check. Set dry_run=false to create.
Inputs: action_name (required), name, assign, dry_run, +2 more. Returns: result
production.animation_fix_foot_slidingC
Analyze/propose/preview/apply/verify/revert. Explicit reviewed controls+confirm_contacts needed; immutable operation required for mutations.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_fix_quaternion_flipsC
Correct quaternion representation on a duplicate; reject changed orientation paths beyond tolerance.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_generateC
animation_generate: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_attackB
animation_generate_attack: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_blockingB
animation_generate_blocking: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_breakdownsC
animation_generate_breakdowns: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_effector_contactC
animation_generate_effector_contact: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_foot_contactsC
animation_generate_foot_contacts: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_hit_reactionC
animation_generate_hit_reaction: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_idleC
animation_generate_idle: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_locomotionB
animation_generate_locomotion: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_poseC
animation_generate_pose: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_root_motionC
animation_generate_root_motion: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_start_stopC
animation_generate_start_stop: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generate_turnC
animation_generate_turn: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generation_compatibilityC
animation_generation_compatibility: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generation_planB
animation_generation_plan: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_generation_renderC
animation_generation_render: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_plan_posesC
animation_plan_poses: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_polish_curvesB
animation_polish_curves: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_prepare_root_motionB
Propose in-place horizontal motion removal for an explicit unparented root; no rig restructuring.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_refine_arcsC
animation_refine_arcs: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_refine_balanceC
animation_refine_balance: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_refine_generatedC
animation_refine_generated: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_refinement_planCIdempotent
Analyze rig, Action, contacts, quaternion/F-Curves, root, balance and motion; recommend ordered corrections without mutation.
Inputs: object_name (required), options. Returns: result
production.animation_reject_generatedB
animation_reject_generated: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_repair_bezierD
Reviewed-channel handle repair on duplicate; immutable proposal and dense motion/derivative bounds.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_restore_actionC
Reassign a preserved Action with checkpoint; never delete the current Action.
Inputs: action_name (required), object_name (required), dry_run, operation_id. Returns: result
production.animation_retimeB
Duplicate-only timing change by scale_factor or target_duration_seconds, range optional; FPS unchanged.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.animation_splineC
animation_spline: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_validate_blockingC
animation_validate_blocking: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.animation_validate_poseB
animation_validate_pose: high-level M6 unit. Plan first, apply=false by default; generation is the immutable plan.json reference. Explicit mapping and compatible body rig required. Source Actions retained; technical QA and temporal artistic review are distinct. options carries declared stage parameters, thresholds or visual review; unsupported adapters return concrete errors.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.asset_create_working_copyA
Save a stamped copy of the open .blend under /working, open it (scripts disabled) and register it as WORKING_COPY. The source file is not modified.
Inputs: operation_id. Returns: result
production.asset_register_fixtureB
Register the open generated test file as FIXTURE; only under the system temp dir, /fixtures or BLENDER_PRODUCTION_FIXTURE_ROOTS.
Inputs: path (required), operation_id. Returns: result
production.asset_register_masterA
Register the open saved .blend as a read-only MASTER (records SHA256). Requires confirm_master=true. Never modifies the file.
Inputs: operation_id, confirm_master. Returns: result
production.asset_statusARead-onlyIdempotent
Role of the open .blend (MASTER/WORKING_COPY/FIXTURE/TEMPORARY/UNREGISTERED) and whether persistent mutation is allowed.
Inputs: no named parameters. Returns: result
production.bake_analyze_ray_distanceBRead-onlyIdempotent
Bounded deterministic LOW triangle samples against HIGH BVH: signed front/rear distance, normal angle, nearest deviation, ray-miss witnesses and explicit ray/cage proposal. No enormous automatic distances.
Inputs: relationship (required), options. Returns: result
production.bake_generate_cageA
Propose/preview/apply/verify/revert a NEW non-destructive LOW-topology cage with configurable metre extrusion, penetration/miss/max-distance/intersection gates. Original LOW stays the game mesh.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.bake_prepare_pairsB
Freeze explicit HIGH/LOW relationship, material semantics, UV/UDIM, normal convention, cage/ray parameters and current signatures in an immutable local pair manifest. No naming-only pairing.
Inputs: relationship (required), options, operation_id. Returns: result
production.bake_smoke_testB
Bounded NORMAL/AO selected-to-active smoke maps (32..256px,1..32samples) from a current immutable pair. Checkpoint+asset guard; transient settings/material/UV/selection restored. CPU explicitly opt-in; generated diagnostic artifacts, no production texture QA.
Inputs: pair (required), options, operation_id, allow_cpu_fallback. Returns: result
production.bake_validateCRead-onlyIdempotent
READY/READY_WITH_WARNINGS/NOT_READY from relation, LOW topology, UV/UDIM, actual Blender tangents, cage/rays, materials/transforms and base/evaluated geometry compatibility. A stale pair never becomes READY.
Inputs: relationship (required), pair, options. Returns: result
production.character_adjust_shapeA
Topology-preserving shape edit on a candidate mesh: analyze/propose (options: regions_manifest, operation {type translate|directional|grab|inflate|scale|smooth|relax|crease, region, strength, direction, space, falloff, preserve_boundary}, shape_keys, tolerance_m), then preview/apply/verify/revert with the proposal reference. Locked movement beyond tolerance, topology/weight/UV/material/normal-state changes and unsafe shape keys fail.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.character_analyze_asymmetryBRead-onlyIdempotent
Mirror asymmetry per region and LEFT/RIGHT pair, classified intentional / likely_intentional / likely_accidental / unknown with the declared thresholds. Symmetry is never enforced.
Inputs: object_name (required), manifest, tolerance_fraction, intentional_regions. Returns: result
production.character_analyze_intersectionsBRead-onlyIdempotent
Conservative self-intersection indicator (BVH triangle overlap) by region pair; with reference_object (same topology) reports only new overlaps. Includes confidence and limitations.
Inputs: object_name (required), manifest, reference_object. Returns: result
production.character_analyze_proportionsBRead-onlyIdempotent
Proportion measurements (HUMANOID, CREATURE or CUSTOM) with measurement, informational reference, deviation, confidence and interpretation kept separate. Never recommends normalizing a stylized or non-human design.
Inputs: object_name (required), profile, manifest, custom_reference. Returns: result
production.character_analyze_silhouetteARead-onlyIdempotent
Orthographic silhouette measurements per view (FRONT, SIDE, THREE_QUARTER, BACK): height, width, area, centroid, left/right area balance, extremity reach, negative space, width profile and region extents. Measurements only, no score.
Inputs: object_name (required), rows, views, manifest. Returns: result
production.character_analyze_surfaceCRead-onlyIdempotent
Surface indicators: bumps, pinching, abrupt curvature change, noise, density, stretching, faceting, normal irregularity; clustered by region with robust thresholds. Analysis only.
Inputs: object_name (required), options, manifest. Returns: result
production.character_capture_candidate_viewsC
Render a candidate with exactly the cameras, resolution and look of a stored reference view set.
Inputs: object_name (required), reference_set (required), operation_id. Returns: result
production.character_capture_reference_viewsB
Store a reference view set (cameras, look, images, silhouettes) and optionally associate concept-art images with views. No image-to-3D.
Inputs: object_name (required), views, width, height, +2 more. Returns: result
production.character_compare_before_afterC
Before/after renders with shared cameras and look plus silhouette deltas per view. Visual review stays required.
Inputs: after_object (required), before_object (required), views, width, +3 more. Returns: result
production.character_compare_referenceB
Measurable silhouette differences against a reference view set plus paired images for review; no semantic-equivalence claim.
Inputs: object_name (required), reference_set (required), operation_id. Returns: result
production.character_create_candidateB
Candidate mesh (object + mesh copy) from a WORKING_COPY/FIXTURE/TEMPORARY file after asset guard and checkpoint, with a before/after dependency manifest. MASTER refused; an existing candidate of the same source state is reused.
Inputs: object_name (required), source_fingerprint (required), operation_id. Returns: result
production.character_define_regionsB
Store a region manifest: automatic candidates (source=automatic, confidence, evidence) plus explicit user regions {region_id, definition, role locked|editable|unassigned, tolerance_m, intentional}; a user region overrides an automatic one with the same id. Captures positions, faces, materials, UVs, weights and shape keys of every region. Never edits the mesh.
Inputs: object_name (required), regions, operation_id, include_automatic. Returns: result
production.character_deformation_qaB
Skinning QA after a shape edit: the same explicit stress poses on source and candidate (temporary, restored); fails when the candidate adds collapsed/stretched edges or degenerate triangles.
Inputs: rig (required), source_mesh (required), stress_poses (required), candidate_mesh (required), +1 more. Returns: result
production.character_inspectBRead-onlyIdempotent
Character mesh report on the undeformed base mesh: counts, world dimensions, symmetry (mirror X distances), topology warnings, weight coverage, armature/shape-key state, asset role and automatic region candidates with confidence and evidence. No per-vertex data.
Inputs: object_name (required), mirror_fraction. Returns: result
production.character_lock_regionsC
New manifest with changed roles, every region recaptured on the mesh now. Automatic low-confidence regions cannot become editable (REGION_AMBIGUOUS).
Inputs: manifest (required), lock, editable, unassign, +4 more. Returns: result
production.character_modeling_auditCRead-onlyIdempotent
Findings (type, region, severity, evidence, suggested_action) from surface, asymmetry, proportions, intersections, topology and weights. No overall quality score.
Inputs: object_name (required), profile, manifest, include_intersections. Returns: result
production.character_redesign_planBRead-onlyIdempotent
Translate a design intent into PROPOSED topology-preserving operations (regions, operation, estimated displacement, locked proximity, risk, dependencies, rationale). apply=false: never mutates; numbers are starting proposals.
Inputs: intent (required), object_name (required), manifest. Returns: result
production.character_redesign_sessionA
Guided session: inspect, audit, plan and risk (apply=false, default, no mutation). apply=true runs ONE cycle: candidate, propose and preview of plan step N, numeric checks, deformation QA (with rig and stress_poses) and before/after renders. The real apply stays an explicit character_adjust_shape call.
Inputs: intent (required), object_name (required), rig, step, +4 more. Returns: result
production.character_render_multiviewB
Identical orthographic cameras, resolution and neutral Workbench look for every object and view; scene state restored. Writes PNGs and a montage.
Inputs: objects (required), views, width, height, +1 more. Returns: result
production.character_validate_locked_regionsBRead-onlyIdempotent
Verify locked regions: positions, shape keys, weights, face membership, material assignment and UVs within tolerance; topology/membership changes fail (stale indices are never reused).
Inputs: manifest (required), object_name. Returns: result
production.cleanup_artifactsBDestructive
Lifecycle inventory of workspace checkpoints/qa/operations/working copies (created_at, operation_id, source, status, retain_reason, eligible_for_cleanup). dry_run=true (default) deletes nothing; recovery points of uncertain operations, applied proposals and registered assets are always retained. Candidate Actions are reported, never deleted.
Inputs: dry_run, keep_last, categories, min_age_days, +1 more. Returns: result
production.create_checkpointC
Save a new .blend copy plus provenance, snapshot and SHA256 manifest.
Inputs: description (required), operation, operation_id. Returns: result
production.deformation_analyzeBIdempotent
Compare evaluated geometry with a reference frame; bounded edge/area/volume metrics, no weight edits.
Inputs: object_name (required), options. Returns: result
production.deformation_compareCIdempotent
Sample two Actions against the same reference; restore assignment, pose and frame. No Action keys are edited.
Inputs: object_name (required), after_action (required), before_action (required), options. Returns: result
production.deformation_test_poseC
Explicit shoulder/elbow/wrist/hip/knee/ankle stress poses. Default proposal; checkpoint before temporary poses, finally restore.
Inputs: poses (required), object_name (required), dry_run, options, +1 more. Returns: result
production.diff_sceneBRead-onlyIdempotent
Compare checkpoint metadata with live scene or another checkpoint; not a full binary diff.
Inputs: checkpoint (required), limit, offset, other_checkpoint. Returns: result
production.facial_acceptB
facial_accept: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_analyze_asymmetryCIdempotent
facial_analyze_asymmetry: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_bonesCIdempotent
facial_analyze_bones: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_curvesCRead-onlyIdempotent
facial_analyze_curves: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_eyelidsCIdempotent
facial_analyze_eyelids: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_eyesCIdempotent
facial_analyze_eyes: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_hybridCIdempotent
facial_analyze_hybrid: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_jawCIdempotent
facial_analyze_jaw: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_layer_conflictsCRead-onlyIdempotent
facial_analyze_layer_conflicts: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_lipsCIdempotent
facial_analyze_lips: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_analyze_shape_keysCIdempotent
facial_analyze_shape_keys: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_classify_rigBIdempotent
facial_classify_rig: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_compatibility_reportCIdempotent
facial_compatibility_report: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_coordinate_gazeC
facial_coordinate_gaze: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_create_briefCRead-onlyIdempotent
facial_create_brief: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_deformation_qaCIdempotent
facial_deformation_qa: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_generateC
facial_generate: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_blinkB
facial_generate_blink: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_browsC
facial_generate_brows: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_coarticulationCRead-onlyIdempotent
facial_generate_coarticulation: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_generate_expressionB
facial_generate_expression: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_gazeC
facial_generate_gaze: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_jawC
facial_generate_jaw: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_lid_followB
facial_generate_lid_follow: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_lipsyncB
facial_generate_lipsync: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_microexpressionsB
facial_generate_microexpressions: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_generate_saccadesC
facial_generate_saccades: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_inspectCRead-onlyIdempotent
facial_inspect: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_integrate_with_bodyB
facial_integrate_with_body: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_map_visemesBIdempotent
facial_map_visemes: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_mocap_analyzeCRead-onlyIdempotent
facial_mocap_analyze: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_mocap_cleanupB
facial_mocap_cleanup: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_mocap_mapBIdempotent
facial_mocap_map: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_mocap_retargetB
facial_mocap_retarget: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_plan_blinksC
facial_plan_blinks: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_plan_expressionB
facial_plan_expression: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_plan_microexpressionsB
facial_plan_microexpressions: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_polish_curvesB
facial_polish_curves: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_prepare_speechCRead-onlyIdempotent
facial_prepare_speech: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_refineB
facial_refine: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_rejectB
facial_reject: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_render_closeupC
facial_render_closeup: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_render_previewC
facial_render_preview: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_reviewB
facial_review: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +3 more. Returns: result
production.facial_validate_expressionBIdempotent
facial_validate_expression: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.facial_validate_lipsyncCIdempotent
facial_validate_lipsync: M7 facial unit. Evidence-based semantic mapping (never names only); plan first, apply=false by default; facial is the immutable plan.json reference. Candidates are new Actions evaluated through NLA tracks; the body Action is never modified. Speech needs explicit timed phonemes/visemes (TIMING_INPUT_REQUIRED otherwise). Technical QA and artistic review stay separate.
Inputs: apply, brief, facial, intent, +2 more. Returns: result
production.game_mesh_prepare_normalsB
Inspect/propose normals on a new candidate; preserve custom normals by default, rebuild only after explicit confirmation.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.game_mesh_prepare_packageC
Validate a local package and neutral texture handoff; default dry run, no external app or export.
Inputs: bake_pair (required), relationship (required), dry_run, options, +3 more. Returns: result
production.game_mesh_triangulation_previewC
Create a deterministic triangulated evaluation candidate; source authoring mesh, weights and morphs remain intact.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.game_mesh_validateC
Aggregate concrete topology/fidelity/deformation/attributes/UV/bake gates; no arbitrary quality score.
Inputs: relationship (required), options, operation_id. Returns: result
production.game_mesh_validate_tangentsBRead-onlyIdempotent
Use installed Blender calc_tangents on a copy; reject missing/degenerate UVs or invalid corner tangent frames.
Inputs: relationship (required), options. Returns: result
production.game_mesh_validate_triangulationC
Independently triangulate two temporary copies and compare reproducibility/counts/geometry/normals/morphs.
Inputs: relationship (required), options, operation_id. Returns: result
production.inspect_armatureBRead-onlyIdempotent
Inspect bones, hierarchy, constraints and drivers without modifying the rig.
Inputs: armature (required), limit, offset. Returns: result
production.material_acceptB
material_accept: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_analyze_nodesCRead-onlyIdempotent
material_analyze_nodes: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_analyze_pbrCRead-onlyIdempotent
material_analyze_pbr: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_analyze_texture_setsCRead-onlyIdempotent
material_analyze_texture_sets: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_apply_candidateA
material_apply_candidate: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_apply_profileB
material_apply_profile: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_build_shaderB
material_build_shader: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_compare_before_afterA
material_compare_before_after: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_compatibility_reportCRead-onlyIdempotent
material_compatibility_report: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_configure_emissionB
material_configure_emission: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_configure_opacityB
material_configure_opacity: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_configure_sssA
material_configure_sss: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_configure_transmissionB
material_configure_transmission: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_create_candidateA
material_create_candidate: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_create_handoffB
material_create_handoff: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_create_pbrB
material_create_pbr: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_create_profileCRead-onlyIdempotent
material_create_profile: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_inspectBRead-onlyIdempotent
material_inspect: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_performance_reportCRead-onlyIdempotent
material_performance_report: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_quality_reportCRead-onlyIdempotent
material_quality_report: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_refineB
material_refine: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_rejectC
material_reject: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_render_multilightingB
material_render_multilighting: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_render_previewC
material_render_preview: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_reviewB
material_review: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +4 more. Returns: result
production.material_statusCRead-onlyIdempotent
material_status: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_graphCRead-onlyIdempotent
material_validate_graph: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_heightCRead-onlyIdempotent
material_validate_height: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_normalsCRead-onlyIdempotent
material_validate_normals: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_pbrCRead-onlyIdempotent
material_validate_pbr: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_profileCRead-onlyIdempotent
material_validate_profile: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_tangent_workflowCRead-onlyIdempotent
material_validate_tangent_workflow: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_udimCRead-onlyIdempotent
material_validate_udim: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.material_validate_uvCRead-onlyIdempotent
material_validate_uv: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.mesh_candidate_createB
Create a candidate mesh (object + mesh copy, hidden from render) after checkpoint and asset guard; reports preservation per dependency. Reuses the existing candidate of the same source state instead of duplicating.
Inputs: object_name (required), source_fingerprint (required), operation_id. Returns: result
production.mesh_candidate_verifyBRead-onlyIdempotent
Compare a candidate mesh with its source (section by section) and optionally verify locked regions. Accept/reject is not implemented (M4).
Inputs: object_name (required), candidate_name (required), regions_manifest. Returns: result
production.mesh_region_defineA
Define LOCKED/EDITABLE regions by vertex_group, face_set, mask or explicit indices bound to a topology fingerprint; stores a local manifest with the locked data. Never edits the mesh.
Inputs: regions (required), object_name (required), operation_id. Returns: result
production.mesh_region_verifyARead-onlyIdempotent
Verify a region manifest against the mesh (or a candidate): locked positions, shape keys and weights must stay within tolerance; topology/membership changes fail.
Inputs: manifest (required), object_name. Returns: result
production.mesh_signatureB
Compact per-section fingerprints of a mesh (topology, geometry, shape keys, vertex groups/weights, UV/UDIM, normals, materials, armature modifiers, relationships, transform, custom properties). The full signature is stored locally; no per-vertex data is returned.
Inputs: object_name (required), operation_id. Returns: result
production.mocap_analyzeCIdempotent
Read-only mocap hierarchy, root motion, scale, channel/jitter and rest-pose analysis.
Inputs: object_name (required), options. Returns: result
production.mocap_cleanupC
Analyze/propose one safe cleanup at a time; apply=false default; exact source and measured motion preservation.
Inputs: mode, apply, options, strategy, +3 more. Returns: result
production.mocap_map_skeletonDRead-onlyIdempotent
Combine semantic evidence; validate one-to-one reviewed required mapping before retarget.
Inputs: source_armature (required), target_armature (required), mapping, mapping_approved, +1 more. Returns: result
production.mocap_preview_retargetC
Without operation propose; with immutable operation bake checkpointed new preview Action and restore target assignment.
Inputs: options, operation, object_name, operation_id. Returns: result
production.mocap_retargetC
Reviewed mapping → immutable proposal → checkpoint → new Action → dense correspondence/contact/limb/root QA.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.operation_statusARead-onlyIdempotent
What happened to an operation: ledger state (NEW/RUNNING/SUCCEEDED/FAILED/UNCERTAIN/REVERTED) of a client operation_id or of a correction_id's preview/apply/revert. Never contacts Blender.
Inputs: operation_id, correction_id. Returns: result
production.physics_acceptB
Inspect, propose, or execute physics_accept on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_analyze_accessoryCIdempotent
Inspect, propose, or execute physics_analyze_accessory on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_clothCIdempotent
Inspect, propose, or execute physics_analyze_cloth on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_hairCIdempotent
Inspect, propose, or execute physics_analyze_hair on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_motionCIdempotent
Inspect, propose, or execute physics_analyze_motion on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_penetrationCIdempotent
Inspect, propose, or execute physics_analyze_penetration on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_soft_regionCIdempotent
Inspect, propose, or execute physics_analyze_soft_region on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_analyze_stabilityCIdempotent
Inspect, propose, or execute physics_analyze_stability on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_bake_cacheB
Inspect, propose, or execute physics_bake_cache on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_bake_secondary_motionC
Inspect, propose, or execute physics_bake_secondary_motion on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_cache_planC
Inspect, propose, or execute physics_cache_plan on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_classify_secondaryBIdempotent
Inspect, propose, or execute physics_classify_secondary on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_collision_reportCIdempotent
Inspect, propose, or execute physics_collision_report on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_compare_before_afterC
Inspect, propose, or execute physics_compare_before_after on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_compatibility_reportCIdempotent
Inspect, propose, or execute physics_compatibility_report on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_create_briefCRead-onlyIdempotent
Inspect, propose, or execute physics_create_brief on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_create_candidateB
Inspect, propose, or execute physics_create_candidate on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_generate_accessory_motionC
Inspect, propose, or execute physics_generate_accessory_motion on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_generate_hair_secondaryC
Inspect, propose, or execute physics_generate_hair_secondary on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_generate_secondary_bonesC
Inspect, propose, or execute physics_generate_secondary_bones on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_generate_soft_secondaryB
Inspect, propose, or execute physics_generate_soft_secondary on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_inspect_characterCIdempotent
Inspect, propose, or execute physics_inspect_character on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_planC
Inspect, propose, or execute physics_plan on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_plan_cloth_pinsCIdempotent
Inspect, propose, or execute physics_plan_cloth_pins on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_plan_hairC
Inspect, propose, or execute physics_plan_hair on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_prepare_collidersB
Inspect, propose, or execute physics_prepare_colliders on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_refineC
Inspect, propose, or execute physics_refine on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_rejectC
Inspect, propose, or execute physics_reject on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_render_previewC
Inspect, propose, or execute physics_render_preview on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_reviewC
Inspect, propose, or execute physics_review on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_setup_clothB
Inspect, propose, or execute physics_setup_cloth on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_setup_spring_chainB
Inspect, propose, or execute physics_setup_spring_chain on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_simulate_clothC
Inspect, propose, or execute physics_simulate_cloth on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +3 more. Returns: result
production.physics_statusCIdempotent
Inspect, propose, or execute physics_status on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.physics_verify_primary_integrityCIdempotent
Inspect, propose, or execute physics_verify_primary_integrity on isolated secondary candidates. Body/face preserved. apply defaults false; fixed physics plan and explicit QA/review gates.
Inputs: apply, brief, intent, options, +2 more. Returns: result
production.qa_capture_viewportB
Capture actual viewport to a unique local PNG, restoring temporary render settings.
Inputs: max_size, operation_id. Returns: result
production.qa_compare_before_afterC
Equivalent cameras/framing/FPS/resolution and range for preserved original and candidate Actions.
Inputs: object_name (required), after_action (required), before_action (required), options, +1 more. Returns: result
production.qa_render_multiviewC
Checkpointed lightweight FRONT/SIDE/THREE_QUARTER previews with restored scene settings.
Inputs: object_name (required), options, operation_id. Returns: result
production.qa_render_previewC
Render a bounded PNG sequence using scene camera; save checkpoint and restore settings.
Inputs: step, width, height, frame_end, +4 more. Returns: result
production.restore_checkpointBDestructive
Plan by default; apply saves recovery checkpoint then opens a new working copy.
Inputs: checkpoint (required), dry_run, operation_id. Returns: result
production.retopology_analyzeBRead-onlyIdempotent
Base-mesh topology audit in world metres: manifoldness, open boundaries, degenerate/sliver triangles, normal consistency, components, valence and bounded problem IDs. No raw topology dump.
Inputs: object_name (required), options. Returns: result
production.retopology_analyze_deformation_regionsC
Inspect explicit/deform-group articulation regions; optional checkpointed stress poses restore the rig.
Inputs: relationship (required), options, operation_id. Returns: result
production.retopology_analyze_densityCRead-onlyIdempotent
Surface/world-unit density, grid distribution, edge-length quantiles and explicit-region curvature/deformation/visual/silhouette priorities. Density variation is measured, not universally penalized.
Inputs: object_name (required), options. Returns: result
production.retopology_analyze_morph_transferBRead-onlyIdempotent
Measure source morphs and preservation; topology-changed morph transfer reports manual/later-pipeline required.
Inputs: relationship (required), options. Returns: result
production.retopology_budgetBRead-onlyIdempotent
Configurable triangle target/min/max and region absolute/percentage/density-weight allocations. Protected-region floor produces an explicit safe-impossibility report.
Inputs: object_name (required), options. Returns: result
production.retopology_compare_silhouetteCRead-onlyIdempotent
Equivalent orthographic FRONT/SIDE/THREE_QUARTER/BACK ray masks with shared bounds: IoU, disagreement area and symmetric boundary-distance metrics in metres, with configurable gates and raster resolution.
Inputs: relationship (required), options. Returns: result
production.retopology_compare_sourceBRead-onlyIdempotent
Reproducible sampled bidirectional HIGH↔LOW mean/median/P95/P99/max world-metre deviation and normal-angle quantiles. Does not claim full Hausdorff equivalence.
Inputs: relationship (required), options. Returns: result
production.retopology_create_candidateB
Create checkpointed Candidate Game Mesh and immutable HIGH→LOW relationship using the fresh M5 signature. Copies dependencies; MASTER refused. Optional target_object is explicit, not name-matched.
Inputs: object_name (required), source_fingerprint (required), options, operation_id. Returns: result
production.retopology_optimize_regionA
Explicit GUIDED_DECIMATION/LOCAL_RETOPOLOGY on a new child candidate: global target plus semantic/curvature priorities and zero-weight protection. Analyze→propose→preview/apply→verify/revert; frozen operation after proposal. Shape-key topology changes rejected; budget/surface/silhouette/protected checks gate acceptance.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.retopology_planBRead-onlyIdempotent
Explicit retopology strategy and budget, protected/deformation priorities, attribute/UV/weight/morph consequences and risks; apply=false. Unsupported remesh/hybrid cases report manual-required.
Inputs: object_name (required), options. Returns: result
production.retopology_priority_mapCRead-onlyIdempotent
Reusable compact priority rule set: explicit regions, curvature, protected/deformation vertices, material/sharp/boundary protection. Per-vertex reduction weights remain local and are recomputed.
Inputs: object_name (required), options. Returns: result
production.retopology_project_to_sourceB
Bounded BVH source projection on a new candidate. Distance/normal/competing-component correspondence gates reject unrelated surfaces; protected vertices remain fixed. Same immutable proposal/checkpoint cycle as optimization.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.retopology_transfer_attributesC
Explicit material/POINT/CORNER/FACE attribute/custom-property transfer with per-attribute QA on a new candidate.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.retopology_transfer_morphsC
Only exact already-preserved morph dependencies are supported; changed-topology morphs are safely rejected.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.retopology_transfer_weightsC
Propose barycentric surface transfer to a new candidate; verify sums/influences/leakage and optional explicit poses.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.retopology_validateBRead-onlyIdempotent
LOW topology and explicit protected-source-region verification: manifold/open boundary/degenerates/slivers/normal consistency/component/valence reports. Does not require all-quads and does not certify deformation or artistic quality.
Inputs: relationship (required), options. Returns: result
production.retopology_validate_weightsC
Bounded weight QA with configurable influence/normalization limits and explicit side pairs; optional stress QA.
Inputs: relationship (required), options, operation_id. Returns: result
production.rig_analyzeCRead-onlyIdempotent
Detect actual IK constraints and infer FK/control chains with confidence.
Inputs: armature (required), limit, offset. Returns: result
production.rig_analyze_controlsDRead-onlyIdempotent
Constraint targets, poles, control candidates, properties and driver relationships.
Inputs: object_name (required), options. Returns: result
production.rig_analyze_limbsCRead-onlyIdempotent
Limb chains, present control mode and explicit switch relationships.
Inputs: object_name (required), options. Returns: result
production.rig_bake_fk_to_ikC
Bake explicit FK limb motion to IK target/pole with sampled error verification.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.rig_bake_ik_to_fkC
Bake explicit IK limb motion into FK keys without removing solver/driver structure.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.rig_classifyCRead-onlyIdempotent
Classify limb-level IK/FK, switches, deform/control rigs; unknown is valid.
Inputs: object_name (required), options. Returns: result
production.rig_compatibility_reportCRead-onlyIdempotent
Feature-specific support conditions and limitations; never blanket compatibility.
Inputs: object_name (required), options. Returns: result
production.rig_map_semanticsCRead-onlyIdempotent
Hierarchy/rest/constraint/name evidence, confidence and alternatives; no mutation.
Inputs: object_name (required), options. Returns: result
production.rig_match_fk_to_ikC
Proposal-first explicit two-bone FK to IK pose match, checkpoint and duplicate Action.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.rig_match_ik_to_fkC
Match evaluated IK pose to FK channels on a duplicate; verify world-space pose.
Inputs: mode, options, operation, object_name, +1 more. Returns: result
production.scene_auditBRead-onlyIdempotent
Summarize scene, units, frame range, objects and issues; paginated.
Inputs: limit, detail, offset, object_name. Returns: result
production.texture_dependency_reportCRead-onlyIdempotent
texture_dependency_report: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.texture_inspectCRead-onlyIdempotent
texture_inspect: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.texture_validate_channelsCRead-onlyIdempotent
texture_validate_channels: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.texture_validate_colorspaceCRead-onlyIdempotent
texture_validate_colorspace: inspect or propose by default; apply=true writes only owned candidate materials. Use material plan references for lifecycle calls, explicit channels/profiles, technical QA, controlled lighting and a real visual review before acceptance. Original slots, images, UVs, geometry and animation remain unchanged.
Inputs: apply, options, profile, material, +3 more. Returns: result
production.udim_apply_planB
Immutable proposal/application of explicit tile assignments with bounded packing, pixel padding and rotation policy on a NEW Candidate; verify geometry/weights/morphs/materials preserved.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.udim_planBRead-onlyIdempotent
Plan explicit semantic material_index or faces assignments to configurable UDIM1001+ tiles; reject incomplete/ambiguous/cross-island assignments, apply=false.
Inputs: options (required), relationship (required). Returns: result
production.uv_analyzeCRead-onlyIdempotent
Base UV layers/islands/overlap/flips/degenerates/UDIM/stretch/padding/density with bounded tile/material summaries. Requires current explicit high/low relationship.
Inputs: relationship (required), options. Returns: result
production.uv_analyze_texel_densityBRead-onlyIdempotent
Measure texels/metre from world surface area and UV area; resolution 32..8192, per-tile resolution overrides. Reports distribution and material-region density; no universal density target.
Inputs: relationship (required), options. Returns: result
production.uv_generateB
Explicit seam proposal using configured angle/material/sharp/edge signals; angle-based unwrap and deterministic shelf pack on a NEW Candidate. analyze/propose/preview/apply/verify/revert. UV-immutable locks refuse generation.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.uv_packB
One deterministic shelf pack per existing tile, configurable padding and rotation, proposal first. Preserves topology and semantic tile assignments; no endless occupancy search.
Inputs: mode, options, operation, operation_id, +1 more. Returns: result
production.uv_validateCRead-onlyIdempotent
UV gates with configurable overlap/flip/stretch/pixel padding and expected tile policy; incomplete checks cannot pass.
Inputs: relationship (required), options. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 274 tools
While many names are individually descriptive, large blocks of tools share verbatim boilerplate descriptions (every M6 animation_* unit, every facial_* unit, every physics_* unit, every material_*/texture_* unit), so an agent must infer purpose from the name suffix alone. There is also genuine conceptual overlap: mesh_region_define / character_define_regions / character_lock_regions / mesh_region_verify / character_validate_locked_regions all manipulate and check region manifests, and mesh_candidate_create / character_create_candidate / retopology_create_candidate / physics_create_candidate all create candidates with nearly identical semantics described separately.
Names follow a stable snake_case pattern with a domain prefix (mesh_, character_, rig_, animation_, retopology_, uv_, bake_, material_, facial_, physics_) plus a verb_noun suffix, which is predictable and greppable. A few entries drop the verb (scene_audit, physics_plan, physics_status) and prefix families overlap slightly (uv_analyze vs uv_analyze_texel_density), but overall the convention holds.
274 tools is a massive mismatch for any single MCP server surface, far beyond what an agent can reliably select from. Many are near-duplicate lifecycle stages (analyze/propose/preview/apply/verify/revert) replicated per subdomain, inflating the count well past usefulness.
Coverage of the Blender production pipeline is genuinely deep: checkpointing, asset roles, region locking, retopology, UV/UDIM, baking, rig analysis, animation/mocap/facial, physics, materials and textures, each with QA gates and a plan-first mutation model. Gaps are minor (little direct scene-object/export manipulation), but the surface is arguably over-complete rather than incomplete.
Maintenance
Related MCP Connectors
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Connect your AI assistant to Blender for 3D modeling, Geometry Nodes, materials, lighting, animation, rendering and export. Inspect real scenes and viewport images, refine the result and restore checkpoints. OAuth connects your chat to Blender Bridge Desktop on an online Windows 10/11 x64 computer running Blender 4.2+. The chat can run on another device. Requires an active Blender Bridge account; 7-day trial available. AI model access is separate.
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables connecting Blender 3D to AI assistants via MCP, allowing prompt-driven 3D modeling, scene editing, and real-time manipulation. Supports object/material control, scene inspection, viewport screenshots, and integrations with Poly Haven, Sketchfab, and AI model generators.22MIT
- AlicenseDqualityBmaintenanceEnables Blender automation via MCP with 107 tools for complex mesh modeling, PBR texturing, UV mapping, rigging, animation, lighting, rendering, and a pre-export curing pipeline for Godot 4.x/Redot GLB export.107GPL 3.0
- AlicenseAqualityCmaintenanceEnables AI agents and MCP clients to perform 3D asset creation and verification: exact b-rep CAD, GLB validation with embedded certificates, mesh inspection, and physics scenes, with most tools running without Blender.3648 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to build models, import assets, animate scenes, render images, and save versioned projects through validated MCP tools backed by headless Blender, with a live browser viewer for inspection.GPL 3.0