01 / Abstract
A first rig becomes an editable starting point.
Volumetric Motion Rigging (VMR) estimates character motion from video-derived geometry and transfers that motion to a carried character mesh. The initial result can capture a performance while retaining local problems: abrupt joint motion, facial stretching, soft armor or incorrect binding around the pelvis. This paper describes the addition of a Model Context Protocol (MCP) interface to the final skeletal editor in blenDojo.
A user connects their own assistant, describes a visible defect, and lets it inspect source frames, rig data and draft previews. The assistant writes structured pose or weight edits. A separate rebake produces a new animated asset while preserving the original. In the documented armored-walk case, six exported stages progressed from leg-motion corrections to facial and pelvic binding changes, armor stiffening, a repair of an overbroad armor selection, and a final correction of small breastplate surface fragments.
The result is a practical correction loop with inspectable versions. It combines an existing reconstruction pipeline, standard skeletal deformation, language-guided tool use and human review. The evidence here is one character sequence; it does not establish general recovery accuracy or fully automatic rigging.
02 / Method
Estimate. Inspect. Correct. Rebake.
The pre-MCP baseline in this case is the saved VMR bone-motion result available when the session began. It incorporates the existing pipeline and prior tuning; it is not presented as an untouched first run on an unseen video. Its carried mesh has 54,319 vertices and 96,732 triangles, driven by 17 bones at 55 sampled poses. The last sample is at 1.8 seconds. The correction sequence keeps this topology and timeline.
The assistant can read the bone hierarchy, bind geometry, skin weights, time samples and source-frame mapping. Image tools provide corresponding source frames and orthographic draft diagnostics. These diagnostics show geometry and skeletons; they are not textured final renders. A browser editor offers immediate draft review, including source comparison and weight visualization.
Drafts support rest-joint changes, frame-centered pose corrections with temporal falloff, and normalized per-vertex weights. Each successful save increments the draft version. In this particular sequence the saved corrections changed poses and weights; all six snapshots contain zero rest-joint edits. A rebake freezes the chosen version, evaluates the deformation and exports an actual armature and skin to FBX and GLB. It does not rerun image-to-3D generation.
The MCP connection worked after authentication and a client restart. The reported session initially encountered OAuth discovery/login friction, so this is evidence of a working authenticated connection rather than a claim that every client connects without setup.
03 / Recorded correction sequence
Natural language, concrete rig changes.
The prompts below are lightly edited for spelling and readability from the supplied session transcript. Action descriptions summarize the assistant’s reports; the associated saved snapshots and completed exports were checked separately. Draft numbers identify actual saved versions, not a count of prompts or model runs.
Correct the motion first
“Inspect the model through the frames, advise on fixes needed, and apply them so we can queue a rebake.”
The assistant reported inspecting the 55-frame motion, comparing selected source and diagnostic views, and smoothing abrupt knee and ankle transitions while preserving the loop endpoints.
The saved snapshot contains pose edits. No new character mesh or extra finger controls were created.
Change which bones own the surface
“The model’s face is stretching too much, and the groin section is stretching too much.”
The assistant shifted facial influence toward the head and central groin influence toward the pelvis, with blended transitions around the selections.
This addresses skin binding as well as motion: smoother joint trajectories alone cannot stop a facial vertex from following the wrong bone.
Make armor follow a rigid transform
“The armor around his head is too jello. It should be more rigid.”
The assistant assigned collar armor and side rails fully to the chest. The next user review found that the face appeared to break apart.
The assistant subsequently reported that its collar selection had included head geometry. Rigid weights are useful only when the region and driving bone are correct.
Repair the selection boundary
“Review again. The face seems to be breaking apart.”
The assistant used component-colored close-ups, spatial bounds and seam neighbors to separate head geometry from connected collar geometry. Its reported head selection contained 1,057 vertices, including 243 previously bound fully to the chest. It reassigned the head assembly and added a short neck transition, changing 1,112 weight rows.
The supplied session reports that the maximum internal edge-length ratio in that selected head assembly fell from about 1.927 to 1.0 across 55 locally skinned poses. The next user response was “that’s better.” These selection-specific diagnostics and qualitative feedback are separate from final textured-export validation.
Refine the chest and shoulder guards
“Make the breastplate more rigid, and make the edges near the shoulders of the head armor more rigid.”
The assistant found that one breastplate component averaged about 95.4% upper-arm influence. It assigned the main plate components and outer collar rail to the chest, and the separate shoulder-mounted guard to the left upper arm. The session reports 2,662 changed weight rows, with protected face vertices excluded and all 39 pose edits retained.
The reported local checks gave edge-length ratios near 1.0 inside the selected rigid parts. Smaller surface and edge pieces remained outside that selection, leading to the final repair below.
Bring the remaining surface pieces with the plate
“On the left side of the breastplate there is a deformation defect. Fix it.”
The assistant checked both sides rather than assuming character-left or viewer-left. Small surface and edge fragments still followed the arms while the main breastplate followed the chest, pulling a patch away during the arm swing. It assigned the remaining 123 vertices to the chest and preserved the earlier pose edits.
The session reports that the maximum change in distances to nearby main-plate vertices fell from about 0.09975 model units to numerical zero over 55 poses. A preview check focused on frame 17, the strongest measured separation frame. The transcript ended with draft 10 queued; the publication audit subsequently confirmed completion and the new FBX/GLB exports.
Detailed diagnostic record for the final three passes
The following component identifiers and local measurements come from the supplied session summary. Component numbers identify selections in this particular mesh and are not reusable anatomical labels.
- Draft 8: 1,057 selected head-assembly vertices; 243 had full chest influence. The reported pass changed 1,112 weight rows. The largest selected internal edge-length ratio changed from approximately 1.927 to 1.0.
- Draft 9: breastplate components 15839, 4254, 46846, 26044, 19992 and 15301, plus collar rail 30699, were assigned to Chest. Shoulder-guard components 9734 and 38342 were assigned to UpperArm.L. The reported pass changed 2,662 weight rows.
- Draft 10: components 19990, 1793 and 23870 comprised the remaining 123 vertices. The reported maximum change in distance to nearby main-plate vertices fell from approximately 0.09975 model units to numerical zero.
Those local diagnostic selections differ from the whole-mesh rigid-interior audit below. The diagnostics used MCP tools and local Python, NumPy and Pillow. The session’s only explicitly invoked skill was openai-docs during initial connection setup; no additional skill was reported for these correction passes.
Record counts describe each cumulative saved draft, not additional edits made in that step. The transcript’s reported work durations are not controlled latency measurements and are not used as performance benchmarks.
04 / Deformation model
Stiff armor is a binding decision.
For a bind-space vertex v, the editor uses linear blend skinning: each bone transforms the vertex relative to its rest head, and the result is the weighted sum of those transformed positions.
If every vertex in a plate has weight 1 on the same bone, that region follows one rigid transform and preserves its internal distances. Blending different bone transforms across the plate can bend or shear it. The MCP weight tools let the assistant act on the semantic request “make this armor rigid” by changing the driving influences for selected vertices.

The draft-7 regression illustrates the other half of the problem: identifying the right surface. Head geometry accidentally assigned to the chest will resist the intended head motion. Draft 8 revised the head/armor boundary; draft 9 extended the rigidity work to the breastplate and guards. Draft 10 then brought the remaining small breastplate fragments under the same chest transform. Shared or transition vertices still require careful inspection.
These edits do not segment the mesh into independent armor objects, add mechanical joints, simulate collisions or create missing anatomy. Rigid weighting can improve a connected generated mesh, but a production asset may still need separate armor pieces, topology repair and artist-authored articulation.
05 / Evidence
What the saved artifacts establish.
All six correction stages have completed skeletal exports. The saved arrays retain identical rest vertices, triangle indices and time samples, and contain finite poses, rotations and weights. Weights remain normalized within numerical precision. Comparing the saved draft-9 and draft-10 arrays independently confirms 123 changed weight rows above a 10⁻⁷ tolerance and identical bone motion. The remaining weights differ by at most floating-point roundoff (approximately 1.1 × 10⁻¹⁶). Draft 10 contains 39 pose records and 13,950 vertex-weight records.
| Final rigid region | Interior edges | Starting rig | Draft 10 |
|---|---|---|---|
| Head-bound vertices | 2,877 | 28.43% | < 0.001% |
| Chest-bound vertices | 20,570 | 24.33% | < 0.001% |
For each named bone, select edges whose two endpoints have final weight 1 on that bone. Measure |animated length / bind length − 1| across all 55 poses. Use the same edges in the baseline and final. This covers rigid interiors, excludes blended boundaries, and does not isolate armor semantically. Near-zero final strain is expected by construction; it is not a score for anatomical or motion accuracy. Read the aggregate evidence and export hashes.
The comparison videos were rendered from the saved Blender scenes with the same camera, lighting and sampling. Source frames follow the stored mapping, including repeated source frames where the loop was retimed. Different camera projection, estimated depth and generated geometry prevent a simple pixel comparison from being a ground-truth error measurement.
This is one armored walk, with no held-out benchmark or controlled comparison against an artist rig. Reported all-frame checks in the assistant transcript do not prove that every textured frame was visually inspected. The final character can still have boundary seams, penetration, imperfect foot contact and missing finger articulation. This new draft-10 export has not been independently validated in Unity; validation of the earlier VMR demonstration does not transfer automatically to it.
06 / Interaction and access
The assistant works inside the editor’s boundaries.
MCP exposes named tools with structured inputs, allowing an assistant to inspect and change external application state. In blenDojo, the tools operate on one authorized project. Readers can review the MCP tools specification and HTTP authorization specification for the protocol foundation.
| Capability | Tools | Effect |
|---|---|---|
| Inspect | get_rig, get_draft, source_frame, preview_frame, list_rebakes | Read the project and compare saved states. |
| Edit | set_joint, set_pose, paint_weights, replace_draft | Save version-checked draft changes. |
| Export | schedule_rebake | Queue a separate result from the selected draft. |
The hosted connection uses sign-in and project-scoped access. Read/edit permissions are separate from optional rebake permission. Version checks reject stale writes; immutable snapshots protect queued work from later edits. Users can revoke a connection. The editor tool surface does not expose a shell, arbitrary server files, infrastructure secrets or other users’ projects. This describes the implemented boundary, not an independent security certification.
Joint and weight edits, draft saves and previews are free in blenDojo. Each newly queued rebake costs 30 credits, whether requested in the browser, through REST or through MCP. Failed or cancelled rebakes refund the charge; repeated requests for the same saved version return the existing job without charging again. The user’s chosen assistant or inference provider may bill separately. Shared export compute is used when a rebake is requested rather than continuously while a user edits.
To use the workflow, open a completed video project’s editor, choose Connect your AI, add its project URL to a compatible MCP client, and approve access. Start by asking for draft-only changes; compare them with the source, then rebake when ready. Read the editor and MCP guide ↗
07 / Contribution and future work
A correction loop around reconstruction.
The implemented contribution is the integration: VMR produces an editable skeletal result, an assistant observes source and rig evidence through bounded tools, a user directs correction in ordinary language, and versioned rebakes turn those edits into downloadable animations. MCP, linear blend skinning and skeletal animation are established techniques. This case study does not claim a new skinning algorithm or a trained VMR model.
The sequence also records how an assistant can introduce a regression and recover from specific visual feedback. Keeping prior versions and source references makes that recovery inspectable. The strongest practical lesson is to separate motion estimation, binding decisions and user acceptance, so a defect can be corrected at the layer that causes it.
A future evaluation should use diverse characters and motions, measure foot sliding and contact, examine boundary strain and penetration, and include blinded visual ratings. Curated tuples of initial rig, source evidence, user request, structured edits and accepted result could support training a correction model. That requires consent, data curation and held-out evaluation; the existing correction logs alone are not a trained model.
08 / Artifacts, credit and references
Inspect the result yourself.
Author and project direction: redazul, DiscoSea Lab. The recorded correction session used a Codex-connected assistant. The supplied transcript does not identify the inference model for those edits. GPT-6-Astra is acknowledged for assistance in earlier VMR experimental work; this paper does not attribute the MCP corrections to an unverified model identity.
The prompt sequence comes from the author-supplied conversation. The artifact audit, rendering and paper preparation were assisted by an AI coding agent. The author remains responsible for interpretation and publication. Character files are provided for inspection of this case study; this release does not establish third-party character or artwork rights.
- Volumetric Motion Rigging — the foundation paper. Prior method and demonstration, distinct from the armored-walk case here.
- Model Context Protocol: tools, specification 2025-11-25.
- Model Context Protocol: authorization, specification 2025-11-25.
- blenDojo editor API and MCP guide. Implemented editing and export interface.
- Case-study evidence manifest. Aggregate checks derived from the saved arrays; no private connection tokens or account records.