Skip to main content
Glama
Blender Production MCP

Blender Production MCP

by DiegoArias32

Blender Production MCP

Inspect. Create. Measure. Review. Preserve.

A production workflow layer for AI-assisted game art in Blender.

License: MIT Release Tools CI

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.11

Install 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-addon

The 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:

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 → bpy

Production 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

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.py

The 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 tools
production.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_analyzeC
Read-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_balanceB
Idempotent

Conservative support-region/pelvis projection heuristic; not biomechanics and never auto-corrects.

Inputs: object_name (required), options. Returns: result

production.animation_analyze_bezierC
Read-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_contactsC
Idempotent

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_modeC
Read-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_contactC
Idempotent

Generic effector dwell/contact/sliding/penetration estimates; proximity alone is insufficient.

Inputs: object_name (required), options. Returns: result

production.animation_analyze_fcurvesC
Read-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_phaseC
Idempotent

Heel/sole/toe phases against explicit static surfaces; geometric heuristics with physical metrics.

Inputs: object_name (required), options. Returns: result

production.animation_analyze_motion_qualityB
Idempotent

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_motionC
Idempotent

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_actionsB
Idempotent

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_briefC
Read-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_qaC
Idempotent

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_surfaceC
Read-onlyIdempotent

Nearest evaluated static mesh surface at an explicit local effector marker.

Inputs: object_name (required), options. Returns: result

production.animation_detect_foot_slidingB
Idempotent

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_popsC
Idempotent

Explicit upper/lower/effector chains; contextual angle/velocity/acceleration/extension events.

Inputs: object_name (required), options. Returns: result

production.animation_detect_limb_stretchC
Idempotent

Evaluated lengths versus rest lengths; reports configured intentional stretch separately.

Inputs: object_name (required), options. Returns: result

production.animation_detect_quaternion_flipsC
Read-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_planC
Idempotent

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_statusA
Read-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_distanceB
Read-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_validateC
Read-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_asymmetryB
Read-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_intersectionsB
Read-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_proportionsB
Read-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_silhouetteA
Read-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_surfaceC
Read-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_inspectB
Read-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_auditC
Read-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_planB
Read-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_regionsB
Read-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_artifactsB
Destructive

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_analyzeB
Idempotent

Compare evaluated geometry with a reference frame; bounded edge/area/volume metrics, no weight edits.

Inputs: object_name (required), options. Returns: result

production.deformation_compareC
Idempotent

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_sceneB
Read-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_asymmetryC
Idempotent

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_bonesC
Idempotent

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_curvesC
Read-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_eyelidsC
Idempotent

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_eyesC
Idempotent

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_hybridC
Idempotent

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_jawC
Idempotent

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_conflictsC
Read-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_lipsC
Idempotent

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_keysC
Idempotent

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_rigB
Idempotent

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_reportC
Idempotent

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_briefC
Read-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_qaC
Idempotent

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_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_coarticulationC
Read-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_inspectC
Read-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_visemesB
Idempotent

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_analyzeC
Read-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_mapB
Idempotent

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_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_speechC
Read-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_expressionB
Idempotent

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_lipsyncC
Idempotent

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_tangentsB
Read-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_armatureB
Read-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_nodesC
Read-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_pbrC
Read-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_setsC
Read-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_reportC
Read-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_profileC
Read-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_inspectB
Read-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_reportC
Read-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_reportC
Read-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_statusC
Read-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_graphC
Read-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_heightC
Read-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_normalsC
Read-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_pbrC
Read-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_profileC
Read-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_workflowC
Read-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_udimC
Read-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_uvC
Read-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_verifyB
Read-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_verifyA
Read-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_analyzeC
Idempotent

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_skeletonD
Read-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_statusA
Read-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_accessoryC
Idempotent

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_clothC
Idempotent

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_hairC
Idempotent

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_motionC
Idempotent

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_penetrationC
Idempotent

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_regionC
Idempotent

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_stabilityC
Idempotent

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_secondaryB
Idempotent

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_reportC
Idempotent

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_reportC
Idempotent

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_briefC
Read-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_characterC
Idempotent

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_pinsC
Idempotent

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_statusC
Idempotent

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_integrityC
Idempotent

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_checkpointB
Destructive

Plan by default; apply saves recovery checkpoint then opens a new working copy.

Inputs: checkpoint (required), dry_run, operation_id. Returns: result

production.retopology_analyzeB
Read-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_densityC
Read-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_transferB
Read-onlyIdempotent

Measure source morphs and preservation; topology-changed morph transfer reports manual/later-pipeline required.

Inputs: relationship (required), options. Returns: result

production.retopology_budgetB
Read-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_silhouetteC
Read-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_sourceB
Read-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_planB
Read-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_mapC
Read-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_validateB
Read-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_analyzeC
Read-onlyIdempotent

Detect actual IK constraints and infer FK/control chains with confidence.

Inputs: armature (required), limit, offset. Returns: result

production.rig_analyze_controlsD
Read-onlyIdempotent

Constraint targets, poles, control candidates, properties and driver relationships.

Inputs: object_name (required), options. Returns: result

production.rig_analyze_limbsC
Read-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_classifyC
Read-onlyIdempotent

Classify limb-level IK/FK, switches, deform/control rigs; unknown is valid.

Inputs: object_name (required), options. Returns: result

production.rig_compatibility_reportC
Read-onlyIdempotent

Feature-specific support conditions and limitations; never blanket compatibility.

Inputs: object_name (required), options. Returns: result

production.rig_map_semanticsC
Read-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_auditB
Read-onlyIdempotent

Summarize scene, units, frame range, objects and issues; paginated.

Inputs: limit, detail, offset, object_name. Returns: result

production.texture_dependency_reportC
Read-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_inspectC
Read-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_channelsC
Read-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_colorspaceC
Read-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_planB
Read-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_analyzeC
Read-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_densityB
Read-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_validateC
Read-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

    C2.5/5.0

    Scored across 274 tools

    Disambiguation2/5

    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.

    Naming Consistency4/5

    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.

    Tool Count1/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      22
      MIT
    • A
      license
      D
      quality
      B
      maintenance
      Enables 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.
      107
      GPL 3.0
    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      36
      48 npm
      MIT