armature
You block the shot. The model shoots it.
A video model can produce motion, light and life that no renderer can. It cannot be told who is on screen and where they are standing. armature supplies exactly that: a canonical character mesh is staged and animated in headless Blender, and the render becomes a per-frame control sequence the video model must obey — so AI-generated video can carry one persistent main character whose position and pose are known every frame.
armature is image-to-video with a GLB instead of an image. Everything spatial is authored, and the model paints life over it. The deliverable is footage — film, cutscenes, character poses and movement, any shot at all. A game is one consumer of that footage, never the boundary of the tool.
Install
pip install armature-studio
armature check
What this package is
The installable package is armature_core — the measured pieces of the pipeline, every one
of which imports under a plain CPython:
- Gates that raise.
gates,route_gates,rig_gates,donor_gate— predicates that refuse a bad step inside the tool performing it, rather than warning beside it. - Framing and turnaround.
framing,turnaround,startframe— perspective and orthographic camera solves, shared-scale shot-sets, silhouette extent, and the frame-clearance checks that refuse a cropped subject. - Control channels.
channels,openpose,aapose,landmarks,lift_solve— channel maths and pose conventions for driving a video model. - Rig and mesh.
joints,binding,parts,posearc,walk,glb. - Contracts and records.
shotspec,subject,sitelist,assembly,clipstats,clipcompare,pngio,errors.
from armature_core import turnaround, framing
plan = turnaround.projection_plan(ortho=True, ortho_scale=1.1235359256161628)
What this package is not
The rendering scripts are not console entry points, deliberately.
render_turnaround.py, stage_render.py and their siblings run inside Blender's own
interpreter:
blender -b -P tools/render_turnaround.py -- --glb subject.glb --out renders --ortho
A console script installed on your Python could not import bpy and would fail on its first
line, so shipping one would be a promise the package cannot keep. Those scripts live in the
repository, where the invocation that works is the one written down.
armature_core.blender_scene is the single module that imports bpy. It is packaged, and it
resolves only under Blender — armature check reports it as needs-blender rather than as a
defect.
The discipline this comes from
armature is an experiment repository whose product is its record: a spec before the work, a report after, a ruling last, and the Director's eye as the verdict of record. Metrics are diagnostics and gate nothing on their own. Every generation records its model, payload, seed and control hashes, because a recipe that does not reproduce its output is not a recipe. No non-commercially-licensed model, weight or dependency enters the pipeline — anywhere, including experiments.
- Docs and handbook: https://mcp-tool-shop-org.github.io/armature/
- Repository and the full record: https://github.com/mcp-tool-shop-org/armature
Requirements
Python 3.10+ and numpy. Blender 5.x is required only for the rendering scripts in the repository, not for this package.
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file armature_studio-0.3.0.tar.gz.
File metadata
- Download URL: armature_studio-0.3.0.tar.gz
- Upload date:
- Size: 379.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
587b9a776db157edea22dd9b7ef9c1e197d1769850d15c0c8e5e74a069304fca
|
|
| MD5 |
5ba03ed658a05346ee9f8afcf898fe8e
|
|
| BLAKE2b-256 |
e0f532d60a151f55d2af3bc74910f2a3617e0b440808914a6c0141c65d1044dd
|
Provenance
The following attestation bundles were made for armature_studio-0.3.0.tar.gz:
Publisher:
release.yml on mcp-tool-shop-org/armature
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
armature_studio-0.3.0.tar.gz -
Subject digest:
587b9a776db157edea22dd9b7ef9c1e197d1769850d15c0c8e5e74a069304fca - Sigstore transparency entry: 2500388960
- Sigstore integration time:
-
Permalink:
mcp-tool-shop-org/armature@c7549b9d39cda396bc7957b519edbefa7410d90b -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/mcp-tool-shop-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c7549b9d39cda396bc7957b519edbefa7410d90b -
Trigger Event:
release
-
Statement type:
File details
Details for the file armature_studio-0.3.0-py3-none-any.whl.
File metadata
- Download URL: armature_studio-0.3.0-py3-none-any.whl
- Upload date:
- Size: 179.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ec0aaa715cf808a40460184730d0b28e90e1ac91839cbd036992f9ba741ffc3
|
|
| MD5 |
f58486020e5325106bef512a6bab1b62
|
|
| BLAKE2b-256 |
23960124b74443b53ec607d02614741e3033a5e7d59013e0bf733831cdc4fe90
|
Provenance
The following attestation bundles were made for armature_studio-0.3.0-py3-none-any.whl:
Publisher:
release.yml on mcp-tool-shop-org/armature
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
armature_studio-0.3.0-py3-none-any.whl -
Subject digest:
8ec0aaa715cf808a40460184730d0b28e90e1ac91839cbd036992f9ba741ffc3 - Sigstore transparency entry: 2500388966
- Sigstore integration time:
-
Permalink:
mcp-tool-shop-org/armature@c7549b9d39cda396bc7957b519edbefa7410d90b -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/mcp-tool-shop-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c7549b9d39cda396bc7957b519edbefa7410d90b -
Trigger Event:
release
-
Statement type: