Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·part ofpackage ZeroBlender.package·originates fromworld 240544fe-7…●1problem

rigging

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

by◐Deata·posted 16d ago
What it does

rigging

<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->

TODO: describe this module.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

Armature and animation math in Blender's convention (row-major 4x4, column vectors, quaternions (w,x,y,z)): bone rest matrices from head/tail/roll, pose matrices, and F-Curve handle calculation and evaluation.

sub(a: ?, b: ?) → void

argtypedescription
a?
b?

len3(a: ?) → void

argtypedescription
a?

m3to4(r: ?, t: ?) → void

argtypedescription
r?
t?

translation(t: ?) → void

argtypedescription
t?

axisAngle(n: ?, a: ?) → void

argtypedescription
n?
a?

mul3(a: ?, b: ?) → void

argtypedescription
a?
b?

vecRollToMat3(vec: ?, roll: ?) → void

Blender's vec_roll_to_mat3: the bone's Y axis points along head->tail, roll turns it.

argtypedescription
vec?
roll?

mat3ToRoll(m3: ?, vec: ?) → void

Inverse of vecRollToMat3 for the roll: the roll that turns the rollless frame into `m3`.

argtypedescription
m3?
vec?

restMatrix(b: ?) → void

Armature-space rest matrix (Bone.matrix_local).

argtypedescription
b?

boneLength(b: ?) → void

argtypedescription
b?

basis(pb: ?) → void

Pose-bone basis from its channels.

argtypedescription
pb?

relRest(bones: ?, b: ?) → void

Local rest of a bone relative to its parent's rest.

argtypedescription
bones?
b?

poseMatrices(arm: ?, pose: ?, post: ?, override: ?) → void

Armature-space pose matrices for every bone (PoseBone.matrix), keyed by name. `post(b, m, get)` may replace a bone's matrix after it is computed (constraints); `override[name]` replaces a bone's basis (IK results).

argtypedescription
arm?
pose?
post?
override?

get(b: ?, depth: ?) → void

argtypedescription
b?
depth?

isAuto(h: ?) → void

A key: {co={x,y}, hl={x,y}, hr={x,y}, interp, h1, h2}. h1/h2 in FREE, ALIGNED, VECTOR, AUTO, AUTO_CLAMPED. Handles of AUTO/AUTO_CLAMPED/VECTOR keys are recomputed by M.recalc, as Blender does on every update.

argtypedescription
h?

recalc(fc: ?) → void

argtypedescription
fc?

smooth(K: ?, locked: ?) → void

Continuous acceleration: free automatic keys get the slopes of a C2 spline through the keys, solved between locked keys; clamped keys that would overshoot a neighbour are locked at the limit and the section re-solved.

argtypedescription
K?
locked?

slopeOut(i: ?) → void

argtypedescription
i?

slopeIn(i: ?) → void

argtypedescription
i?

bez(p0: ?, p1: ?, p2: ?, p3: ?, t: ?) → void

argtypedescription
p0?
p1?
p2?
p3?
t?

evaluate(fc: ?, f: ?) → void

argtypedescription
fc?
f?

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

Showing up to 3 levels deep. Open a part to see what it holds further down.

8+items
▣
module · born here
❒asset
# xform <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. --> TODO: describe this module.
▲ 0↑ born
❒
package · born here
❒asset
# ZeroBlender Blender-style modeling inside Zero. Install this package and you get the whole surface: the `.zblend` document type, the tools that edit it, the Python/bpy runtime behind them, the layer previews live in, and the workflow that drives a modeling job to the end. ## Contents | Path | What it is | |---|---| | `zblend.assetType/` | The `.zblend` document (Zero's `.blend`): editable `scene.json`, history, images, and a live `output.bundle`. Scene-instantiable, previewed, searchable. Its ref methods open and edit documents (below); `M.modules` exposes every module here to instances. | | `blender.toolbox/` | Blender MCP-compatible tools: `execute_blender_code`, `get_scene_info`, `get_object_info`, `get_viewport_screenshot`, `bpy_api_lookup`, `get_addon_status`, `compare_to_reference`. `api.json` is the implemented bpy surface. | | `modules/blenderSession` | The bpy/bmesh/mathutils session: objects, meshes, modifiers, materials, viewport, flush to the document and bundle. | | `modules/pythonParser`, `pythonRuntime` | The Python subset the scripts run in (Luau-hosted, not CPython). | | `modules/animation`, `rigging` | Armatures, pose, vertex groups, ARMATURE deform, auto weights, keyframes/actions/F-Curves, constraints, IK, drivers, NLA; clip baking. | | `modules/sceneOps` | Empties, duplicates, collections, collection instances, `zero_instance`, `origin_set`, cursor, snapping. | | `modules/curves`, `meshOps`, `polygonTopology`, `xform` | Curve/text meshing, edit-mode operators, topology and evaluation, matrix math. | | `modules/referenceCompare` | Silhouette scoring against a reference image. | | `modules/bpy`, `hardSurface`, `kestrel` | Older core geometry layer and hard-surface helpers used by the session. | | `workspace/ModelingWorkspace.scene` | Additive layer holding document previews, on render layer `modelingWorkspace` (hidden from the editor camera, drawn by screenshots). | | `model.workflow/` | Multi-pass modeling job: reference → model → critic/builder rounds → finish. | | `modeling.agentSkill/` | The `modeling` skill that starts the workflow. | ## Usage ```luau -- Make or open a document and edit it local doc = asset.create("zblend", "Lantern", { folder = "models" }) doc:run([[import bpy bpy.ops.mesh.primitive_cylinder_add(radius=0.1, depth=0.3)]]) doc:screenshot("ISO") doc:sceneInfo() doc:open() -- load as a live session, returns its name -- Place it (live: placed copies follow edits and play its clips) doc:instantiate(entity.find("Shelf")) -- Frozen copy doc:exportBundle("/zero/source/models/Lantern_v1.bundle") ``` Agents use the `blender` toolbox directly with `session="<folder>/<Name>"`, or start the `model` workflow for a full modeling job (`zero workflow start --name model --args '{"subject":"..."}'`). Documents default to `modeling/models/<name>.zblend`; user data (models, references, reports) is not part of the package.
▲ 0↑ born
backing path · ZeroBlender.package/modules/rigging.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

These counts cover only the parts this page shows. Problems on the parts it leaves out are not counted here.

1+problem

Inside

1 problem across 1 item
●
dep.unresolved · L4
could not resolve `~.modules.xform`
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.