Skip to main content

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.

Requirements

Python >=3.11,<3.15 (the interval pyproject.toml declares; CI runs 3.11 and 3.13, the rig exercises 3.14) and numpy. Blender 5.x is required only for the rendering scripts in the repository, not for this package.

License

MIT.

Metadata

Release files for armature-studio 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for armature-studio 0.5.0
File Size Uploaded
armature_studio-0.5.0.tar.gz 450.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for armature-studio 0.5.0
File Interpreter ABI Platform
armature_studio-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 908.8 kB

Release files / armature_studio-0.5.0.tar.gz

Download URL armature_studio-0.5.0.tar.gz
Size 450.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dcd983cfc0398bacba43e4aa3edf208b6c7aa7035e947b57774f21a3341ad559
BLAKE2b-256 checksum
How to use checksums
a265e41204d1e4b96c7d4b6ec4a1d86c454e8c44bfa2c79e0fd47fcf65eb2c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log

Release files / armature_studio-0.5.0-py3-none-any.whl

Download URL armature_studio-0.5.0-py3-none-any.whl
Size 458.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c0dcb0b0021ada24dd778c962c1fc05f82bf2ef4d97d8e34a5dc9f5e692bdd73
BLAKE2b-256 checksum
How to use checksums
81b0db54fd12366eb001b9fb6da0026b36b700bde037ba223adf8ebc4a533743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page