Quickstart
1. Inspect before editing
Call scene_info. It returns the Blender version, file, workspace, collection tree and a page of objects. Use name to inspect one object, or limit and offset to page through the scene.
{"name": "Cube"}Use exact object names from this response in later calls.
2. Claim ownership
Every mutation requires an edit lease. Read-only calls do not.
- Call
session_controlwithaction="inspect". - Claim the returned
project_idwithaction="claim", anownerlabel and
that exact expected_project.
- Pass the returned
lease_idon every mutation.
{
"action": "claim",
"owner": "asset-agent",
"expected_project": "<project_id from inspect>",
"ttl_seconds": 600
}Renew or release with the same lease_id. Release and expiry never save, close or discard a project. See Share application ownership.
3. Make a bounded change
Create a primitive:
{
"action": "create_primitive",
"name": "Crate_01",
"kind": "cube",
"lease_id": "<lease_id>"
}Then move it:
{
"action": "transform",
"name": "Crate_01",
"location": [0, 0, 0.5],
"rotation_degrees": [0, 0, 45],
"lease_id": "<lease_id>"
}The tool refuses unrelated action parameters before contacting Blender.
4. Inspect and preview
Run inspect_mesh_quality with checks=["topology", "lightmap", "transforms", "materials"]. Then call render_preview with a new workspace .png path. Previews do not need a lease and restore scene state.
5. Export
Call asset_io with action="export", the exact mesh names and a new workspace path:
{
"action": "export",
"names": ["Crate_01"],
"path": "exports/crate_01.fbx",
"axis": "unity",
"lease_id": "<lease_id>"
}Existing files are refused. The parent directory must already exist.
Continue with Import and export assets or the full tools reference.