by squall01337
Turn any video into a Mixamo-rig animation - GVHMR estimator, spec-driven retarget, FK apply in Blender via MCP. Works with any Mixamo character; built to be operated end-to-end by an AI agent.
# Add to your Claude Code skills
git clone https://github.com/squall01337/mixamo-llm-mocapGuides for using ai agents skills like mixamo-llm-mocap.
Last scanned: 8/19/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-19T04:36:27.337Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how mixamo-llm-mocap compares with popular alternatives.
mixamo-llm-mocap is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by squall01337. Turn any video into a Mixamo-rig animation - GVHMR estimator, spec-driven retarget, FK apply in Blender via MCP. Works with any Mixamo character; built to be operated end-to-end by an AI agent. It has 330 GitHub stars.
Yes. mixamo-llm-mocap passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/squall01337/mixamo-llm-mocap" and add it to your Claude Code skills directory (see the Installation section above).
mixamo-llm-mocap is primarily written in Python. It is open-source under squall01337 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh mixamo-llm-mocap against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
See comparison
Turn any locked-camera video — filmed or AI-generated — into a clean FK animation on any Mixamo character. One performer, or two fighting each other. No mocap suit, no manual keyframing, and every stage scriptable enough that an AI agent can run the whole loop.

Left: AI-generated source video. Right: the automatic retarget on a Mixamo character in Blender — 10 seconds, nine punches, a slip under and a high side kick, straight through the pipeline.

Two performers, one plate, one pass. The left fighter throws four punches and a roundhouse; the right one blocks, folds over the body shot and ducks under the kick. Both tracks are split out of the same video by screen side, retargeted onto two Mixamo characters with different proportions — Y Bot and Ninja — and placed at the distance the performers actually stood, measured from the footage.
The default path transfers the estimator's SMPL-X joint rotations and runs without the Blender UI:
video plate (locked camera)
│
├─ 1. estimate_pose_gvhmr.py --smplx-only GVHMR → SMPL-X parameters, refined on the plate's 2D keypoints (+ heels/toes, + zoomed hands)
├─ 2. retarget_smplx.py rotations → your Mixamo rig; floor, foot locks, camera-true trajectory
├─ 3. bl_motion.py (blender -b) key the action in bulk and save it, or render — no MCP session
├─ 4. render_review.py 2×2 review video: plate | overlay on the plate / before | after, + hands & feet zoomed
└─ 5. eval_fidelity.py limb and head angles vs the video's keypoints, foot slide, jitter
The original landmark path below is still available for existing specs and the two-character tooling:
video plate (locked camera, T-pose bookends)
│
├─ 1. estimate_pose_gvhmr.py GVHMR (SMPL-X mesh recovery) → 33 landmarks + pelvis height
├─ 2. analyze_landmarks.py numeric beat detection → you write a beat sheet from NUMBERS
├─ 3. action_specs/<name>.json the motion as data: support schedule, rest blends, fists
├─ 4. lift_to_mixamo.py direction-preserving retarget onto YOUR rig's proportions
├─ 5. apply_mixamo_fk.py FK aim + foot planting, inside live Blender (via Blender MCP)
├─ 6. qa_clip.py automated gate: no explosions, no pops, no foot skate
├─ 7. compare_reference.py frame-by-frame vs the video → which windows still differ
├─ 8. compare_pair.py two-character plates: separation, reach, intrusion
├─ 9. run_in_blender.py contact real mesh-vs-mesh collision between two characters
└─ 10. render_preview.py preview + side-by-side showcase video
With two performers in the plate, stages 1–7 run once per fighter
(--person left|right splits the tracks), setup_duo.py builds one
scene holding both characters, and compare_pair.py checks what only
exists when there are two of them: whether they stand, reach and miss
each other the way the performers did.
The estimator provides mesh-quality joints; the lift keeps its segment
directions but rebuilds every position from your character's measured
bone lengths; the apply plants feet by solving hip height (never IK —
Mixamo rigs are FK-only); the spec contributes only what a video cannot
know: which foot is the support in each phase (including "none" for
airborne beats), when fists close, where the clip locks back to rest.
setup_rig.py builds a clean scene from
your own Mixamo download and measures it into rig_profile.json
(rest pose, bone lengths, hip and ground heights). Every stage reads
that profile.action_specs/ here (a kung-fu form, a combo with a jump, a
fight combination, a 360° jumping spin kick and a two-fighter duel)
are worked examples of the whole schema.compare_reference.py measures the
retarget against the source video frame by frame on what an eye
actually reads — hand height relative to the face, distance between
the hands, limbs inside the torso, gaze direction — and reports the
exact frame windows that diverge. Notes like "his hands are too high
and his arm clips his back" become numbers, and an over-correction
gets caught before it ships instead of after.compare_pair.py then verifies separation, strike reach
and limb intrusion against the video, frame by frame, and a Blender
BVH pass checks the actual skinned meshes for collision — because two
Mixamo characters are thicker than two humans, and a choreography
built out of 2 cm near-misses collides when you retarget it faithfully.
Clearance is bought from the stage with a declared, measured offset,
which the comparator keeps reporting so the cost stays visible.analyze_landmarks.py numbers (never from eyeballing frames), every
stage is a CLI or a socket call, and docs/PITFALLS.md encodes every
mistake so the next operator — human or AI — doesn't repeat them.Install — docs/INSTALL.md walks through every dependency (list below).
Build your rig scene:
blender --background --python pipeline\setup_rig.py -- --fbx ybot.fbx --out ybot_rest.blend
Run a plate — SMPL-X path (headless, no Blender window needed):
tools\GVHMR\.venv\Scripts\python.exe pipeline\estimate_pose_gvhmr.py --video plates\<name>\<name>.mp4 --out plates\<name>\landmarks.json --smplx-only
python pipeline\retarget_smplx.py --spec action_specs\<name>.json
blender -b ybot_rest.blend -P pipeline\bl_motion.py -- apply --motion clips\<clip>\motion.npz --save clips\<clip>\<clip>.blend
python pipeline\render_review.py --spec action_specs\<name>.json --clip clips\<clip>
python pipeline\eval_fidelity.py --spec action_specs\<name>.json --clip clips\<clip>
A spec needs only name, action_name, clip_dir, landmarks and
the fps; fists, rest blends and arm_overrides are optional.
Details: docs/PIPELINE.md section S.
Or the landmark path (Blender open on the scene; plate rules in docs/PROMPTING.md):
tools\GVHMR\.venv\Scripts\python.exe pipeline\estimate_pose_gvhmr.py --video plates\<name>\<name>.mp4 --out plates\<name>\landmarks.json
tools\GVHMR\.venv\Scripts\python.exe pipeline\analyze_landmarks.py --landmarks plates\<name>\landmarks.json
# beat sheet → action_specs\<name>.json (schema: docs/PIPELINE.md)
tools\GVHMR\.venv\Scripts\python.exe pipeline\lift_to_mixamo.py --spec action_specs\<name>.json
python pipeline\run_in_blender.py all action_specs\<name>.json
tools\GVHMR\.venv\Scripts\python.exe pipeline\qa_clip.py --spec action_specs\<name>.json
tools\GVHMR\.venv\Scripts\python.exe pipeline\compare_reference.py --spec action_specs\<name>.json
tools\GVHMR\.venv\Scripts\python.exe pipeline\render_preview.py action_specs\<name>.json --showcase
`compare_reference.p