Skip to main content
Coming soon — experimental API 0.3. This guide describes the current development surface. The familiar names do not imply bpy compatibility. If you write Blender scripts, start with the same broad division described in the Blender API quickstart: application data, current context, and explicit operations. Armorsmith adapts that structure to its documents, body measurements, viewport tools, and command history.

Read copied data

Changing these dictionaries changes only your worker’s copy. The data is captured at launch, not a live object graph. Keep handle and revision strings opaque. Discover measurement IDs from the current avatar and use the tool IDs documented in tools and context.

Declare an operation button

The picker uses editable measurements from a fresh host snapshot. Choosing a measurement updates the linked number’s current value and bounds. The measurement and number arguments are control IDs, not a body measurement name or numeric value. The declaration allows the host to resolve the user’s current choice when Apply is clicked. Python returns result and exits. Armorsmith renders the dialog and executes the validated action on its owning thread. Buttons do not call back into Python. Refresh updates the host dialog’s snapshot and revision; it does not resume the exited script.

Current limits

0.3 does not provide direct Python setters, live collections, operator polling methods, custom operator registration, persistent handlers, or scripted operation batches. You cannot run arm.ops in a Python loop to apply edits immediately. Its current builders connect native actions to dialog buttons. This structure leaves room for a future request transport with the same copied types and validated commands. That transport, broader domain operators, and plugin registration remain separate work. You can already create a floating control panel with the Python helpers and examples.