Skip to main content

License: MIT PyPI Blender Tests

blendertk

Blender 4.x+ tech-art toolkit mirroring mayatk's public API (btk.Xmtk.X) — modeling, animation, materials, rigging, and scene-pipeline automation over native bpy/bmesh, plus tool panels and one-click bridges into Marmoset, Substance Painter, RizomUV, Maya, Unity, and the browser.

blendertk is the Blender layer of the pythontk → uitk → {mayatk, blendertk} → tentacle ecosystem. It mirrors mayatk at the name + behavior level — not signatures, not line counts — so the shared tentacle slot/UI layer stays branch-free across DCCs. Where Blender ships the capability natively, blendertk stays a thin adapter over bpy/bmesh operators; where it doesn't, the DCC-agnostic core lives upstream in pythontk and both DCC layers adapt it.

Installation

pip install blendertk

Requirements: Blender 4.x+ (developed against 5.1 / Python 3.13) · pythontk. bpy is provided by the Blender runtime — importing blendertk and resolving its surface never needs a running Blender (all bpy imports are deferred into call bodies).

Packages

Same subpackage names, main-module filenames, and namespace classes as mayatk — the full correspondence map (including what is deliberately absent on each side, and why) is STRUCTURE.md.

Package What it covers
anim_utils Shots suite (store, manifest, sequencer panels over the shared pythontk shots engine), smart bake, blendshape animation, key scaling/staggering
audio_utils Sound-strip CRUD over the Video Sequence Editor (deliberately not a mirror of Maya's DG-node audio machinery)
cam_utils Camera utilities
core_utils CoreUtils, AutoInstancer, Preview, script-job manager over bpy.app.handlers, diagnostics
display_utils Color ID, exploded view, Blender-only OutlinerTint
edit_utils EditUtils, mirror, cut-on-axis, duplicate (linear/radial/grid), bevel, bridge, snap, naming, curtain rig, target weld
env_utils BlenderConnection, workspaces (workspace.mel shared with Maya), reference manager, hierarchy sync, FBX/USD, scene exporter, Maya + Unity bridges, WebXR preview, docked script console
light_utils Lightmap baker + web export, HDR manager, lights-from-geometry
mat_utils Game shader, material updater, texture path editor, shader templates, render opacity, image-to-plane, emissive groups, Marmoset + Substance live-RPC bridges
node_utils NodeUtils, DataNodes (shared scene data carriers), Channels tool
nurbs_utils Curve helpers (relaxed mirror), ImageTracer, curve-to-tube
rig_utils Constraints/drivers/armature primitives; tube / wheel / telescope / shadow rigs
ui_utils BlenderUiHandler, native-menu wrapper, Qt dock container, calculator, style setter
uv_utils UV utilities, Rizom bridge
xform_utils Transforms and matrix IO

Classes — and, for the wildcard-scanned *_utils roots, their public methods — are exposed at the package root via the lazy-loading resolver:

import blendertk as btk

btk.selected_objects()                      # bare form — CoreUtils.selected_objects, wildcard-exposed
btk.EditUtils.mirror(...)                   # class-qualified — mirrors mtk.EditUtils.mirror
btk.AutoInstancer(tolerance=0.001).run()    # same call in mayatk: mtk.AutoInstancer(...).run()

Full public surface (auto-generated): API_REGISTRY.md; compact index: API_INDEX.md.

Highlights

  • Maya bridge, both directionsMayaBridge.send() exports the selection and launches an interactive Maya on it; save_as() runs mayapy headlessly and returns a written .ma/.mb; MayaSceneImport pulls a Maya scene in via a blocking headless FBX round-trip, translating FBX-hostile shaders and rebuilding packed PBR maps from a manifest sidecar. Mirrored by mayatk's BlenderBridge, so each DCC reads and writes the other's native format off one shared export pipeline.
  • Lightmap pipelineLightmapBaker commits bake state (markers + manifest) that every exporter reads on its own: Unity via the FBX carrier, GLB via pythontk's lightmap applier, and LightmapWebExport wraps Blender's own glTF exporter for the live WebXR preview — a clean no-op on unbaked scenes. mayatk's Blender bridge drives this baker headlessly for the Maya round trip.
  • Drive Blender from outsideBlenderConnection mirrors mayatk's MayaConnection: fresh --background instances only, the backbone of the test suite. An artist's open session is never touched.
  • Hierarchy sync — diff a scene against a reference .blend (or .fbx, staged to a temp .blend) linked as a library, then repair drift: stub missing objects, quarantine extras, fix fuzzy renames and reparents; ObjectSwapper pulls matched reference objects in fresh.
  • Shared workspaces — one project folder serves Maya natively and Blender via blendertk: the workspace.mel codec and template store live in pythontk, and the co-located Workspace Editor panel mirrors Maya's Project Window.
  • Tool panels — every engine that warrants one ships a co-located uitk panel (<tool>.py + <tool>.ui), discovered by BlenderUiHandler — the same split mayatk uses, so tentacle's navigation stays a thin layer.

Parity — how the mirror stays honest

Parity is measured, not eyeballed: compare_panel_surface.py regenerates a per-element matrix (tentacle/docs/PARITY_SURFACE.md), every conscious divergence is ledgered with a reason in tentacle's parity_map.py, and untriaged deltas fail the sweep. The coarse gap and port-this-next recipes live in PARITY_AUDIT.md and PARITY_PORTING_PLAN.md.

Session safety

Nothing in blendertk attaches to a running Blender. Tests and headless tooling always launch a fresh blender --background --factory-startup process; BlenderConnection does the same. See CLAUDE.md for the full rule.

Guides

  • Scene data nodes — the data_internal / data_export carriers and how their metadata rides into the FBX (Blender delta of mayatk's owner doc)
  • Emissive groups → Unity (mayatk, cross-package SSoT) — runtime-toggleable emissive regions; blendertk's EmissiveGroups stores membership as per-group boolean face attributes
  • Live WebXR preview (pythontk) — the shared DCC → glTF → headset pipeline behind btk.WebXrPreview

Links

License

MIT — see LICENSE.

Release files for blendertk 0.5.85

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

Built distribution (wheel)

Table of built distributions (wheels) for blendertk 0.5.85
File Interpreter ABI Platform
blendertk-0.5.85-py3-none-any.whl Python 3 none any Details

Release files / blendertk-0.5.85-py3-none-any.whl

Download URL blendertk-0.5.85-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f8164a05cc38df9884b18235a2002c98ddc0cee25a65a14615d59610422d63bc
BLAKE2b-256 checksum
How to use checksums
d24cd19b98e79a3a3753a355485ba867da189846bf6557e8354af666b42273e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

0.10.0

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.93

1 release file

0.5.92

1 release file

0.5.91

1 release file

0.5.90

1 release file

0.5.89

1 release file

0.5.88

1 release file

0.5.87

1 release file

0.5.86

1 release file

This release

0.5.85 This release

1 release file

0.5.84

1 release file

0.5.83

1 release file

0.5.82

1 release file

0.5.79

1 release file

0.5.76

1 release file

0.5.73

1 release file

0.5.70

1 release file

0.5.67

1 release file

0.5.65

1 release file

0.5.62

1 release file

0.5.59

1 release file

0.5.56

1 release file

0.5.53

1 release file

0.5.50

1 release file

0.5.48

1 release file

0.5.45

1 release file

0.5.42

1 release file

0.5.39

1 release file

0.5.36

1 release file

0.5.33

1 release file

0.5.31

1 release file

0.5.28

1 release file

0.5.26

1 release file

0.5.24

1 release file

0.5.21

1 release file

0.5.18

1 release file

0.5.15

1 release file

0.5.12

1 release file

0.5.9

1 release file

0.5.7

1 release file

0.5.4

1 release file

0.5.1

1 release file

0.5.0

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