| get_scene_infoB | Get detailed information about the current Blender scene |
| get_object_infoC | Get detailed information about a specific object in the Blender scene.
Parameters:
- object_name: The name of the object to get information about
|
| get_viewport_screenshotA | Capture a screenshot of the current Blender 3D viewport.
Parameters:
- max_size: Maximum size in pixels for the largest dimension (default: 800)
Returns the screenshot as an Image.
|
| execute_blender_codeB | Execute arbitrary Python code in Blender. Make sure to do it step-by-step by breaking it into smaller chunks.
Now includes shared context between executions! You can use:
- shared['variable_name'] = value # Store variables for later use
- get_object('handle_name') # Get stored object references
- get_material('handle_name') # Get stored material references
- store_object('handle', 'obj_name') # Store object reference
- store_material('handle', 'mat_name') # Store material reference
Parameters:
- code: The Python code to execute
|
| get_shared_contextA | Get the current shared context state - shows persistent variables, object handles,
material handles, and operation history that persists between tool calls. |
| clear_shared_contextA | Clear shared context. Useful for starting fresh.
Parameters:
- section: What to clear (all, variables, objects, materials, operations, history)
|
| get_operation_historyB | Get recent operation history for debugging.
Parameters:
- count: Number of recent operations to show (default 10)
|
| create_object_handleA | Create a handle for an object to reference in future operations.
This allows you to easily reference objects across multiple tool calls.
Parameters:
- handle: The handle name to create (e.g., 'my_cube', 'main_character')
- object_name: The name of the Blender object
|
| create_material_handleA | Create a handle for a material to reference in future operations.
This allows you to easily reference materials across multiple tool calls.
Parameters:
- handle: The handle name to create (e.g., 'wood_mat', 'metal_shader')
- material_name: The name of the Blender material
|
| list_object_handlesA | List all object handles and their details.
Shows which objects you can reference with get_object() in scripts.
|
| list_material_handlesA | List all material handles and their details.
Shows which materials you can reference with get_material() in scripts.
|
| get_polyhaven_categoriesA | Get a list of categories for a specific asset type on Polyhaven.
Parameters:
- asset_type: The type of asset to get categories for (hdris, textures, models, all)
|
| search_polyhaven_assetsA | Search for assets on Polyhaven with optional filtering.
Parameters:
- asset_type: Type of assets to search for (hdris, textures, models, all)
- categories: Optional comma-separated list of categories to filter by
Returns a list of matching assets with basic information.
|
| download_polyhaven_assetA | Download and import a Polyhaven asset into Blender.
Parameters:
- asset_id: The ID of the asset to download
- asset_type: The type of asset (hdris, textures, models)
- resolution: The resolution to download (e.g., 1k, 2k, 4k)
- file_format: Optional file format (e.g., hdr, exr for HDRIs; jpg, png for textures; gltf, fbx for models)
Returns a message indicating success or failure.
|
| set_textureA | Apply a previously downloaded Polyhaven texture to an object.
Parameters:
- object_name: Name of the object to apply the texture to
- texture_id: ID of the Polyhaven texture to apply (must be downloaded first)
Returns a message indicating success or failure.
|
| get_polyhaven_statusA | Check if PolyHaven integration is enabled in Blender.
Returns a message indicating whether PolyHaven features are available. |
| get_hyper3d_statusA | Check if Hyper3D Rodin integration is enabled in Blender.
Returns a message indicating whether Hyper3D Rodin features are available. Don't emphasize the key type in the returned message, but sliently remember it. |
| get_sketchfab_statusB | Check if Sketchfab integration is enabled in Blender.
Returns a message indicating whether Sketchfab features are available. |
| search_sketchfab_modelsA | Search for models on Sketchfab with optional filtering.
Parameters:
- query: Text to search for
- categories: Optional comma-separated list of categories
- count: Maximum number of results to return (default 20)
- downloadable: Whether to include only downloadable models (default True)
Returns a formatted list of matching models.
|
| download_sketchfab_modelC | Download and import a Sketchfab model by its UID.
Parameters:
- uid: The unique identifier of the Sketchfab model
Returns a message indicating success or failure.
The model must be downloadable and you must have proper access rights.
|
| generate_hyper3d_model_via_textA | Generate 3D asset using Hyper3D by giving description of the desired asset, and import the asset into Blender.
The 3D asset has built-in materials.
The generated model has a normalized size, so re-scaling after generation can be useful.
Parameters:
- text_prompt: A short description of the desired model in **English**.
- bbox_condition: Optional. If given, it has to be a list of floats of length 3. Controls the ratio between [Length, Width, Height] of the model.
Returns a message indicating success or failure.
|
| generate_hyper3d_model_via_imagesA | Generate 3D asset using Hyper3D by giving images of the wanted asset, and import the generated asset into Blender.
The 3D asset has built-in materials.
The generated model has a normalized size, so re-scaling after generation can be useful.
Parameters:
- input_image_paths: The **absolute** paths of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in MAIN_SITE mode.
- input_image_urls: The URLs of input images. Even if only one image is provided, wrap it into a list. Required if Hyper3D Rodin in FAL_AI mode.
- bbox_condition: Optional. If given, it has to be a list of ints of length 3. Controls the ratio between [Length, Width, Height] of the model.
Only one of {input_image_paths, input_image_urls} should be given at a time, depending on the Hyper3D Rodin's current mode.
Returns a message indicating success or failure.
|
| poll_rodin_job_statusA | Check if the Hyper3D Rodin generation task is completed.
For Hyper3D Rodin mode MAIN_SITE:
Parameters:
- subscription_key: The subscription_key given in the generate model step.
Returns a list of status. The task is done if all status are "Done".
If "Failed" showed up, the generating process failed.
This is a polling API, so only proceed if the status are finally determined ("Done" or "Canceled").
For Hyper3D Rodin mode FAL_AI:
Parameters:
- request_id: The request_id given in the generate model step.
Returns the generation task status. The task is done if status is "COMPLETED".
The task is in progress if status is "IN_PROGRESS".
If status other than "COMPLETED", "IN_PROGRESS", "IN_QUEUE" showed up, the generating process might be failed.
This is a polling API, so only proceed if the status are finally determined ("COMPLETED" or some failed state).
|
| import_generated_assetA | Import the asset generated by Hyper3D Rodin after the generation task is completed.
Parameters:
- name: The name of the object in scene
- task_uuid: For Hyper3D Rodin mode MAIN_SITE: The task_uuid given in the generate model step.
- request_id: For Hyper3D Rodin mode FAL_AI: The request_id given in the generate model step.
Only give one of {task_uuid, request_id} based on the Hyper3D Rodin Mode!
Return if the asset has been imported successfully.
|
| complete_geometry_nodeA | Create a complete geometry node network for procedural modeling.
This tool enables AI-driven procedural modeling by creating sophisticated geometry node networks.
Perfect for creating parametric objects like tables, chairs, organic shapes, and complex procedural geometry.
Parameters:
- object_name: Name of the object to apply geometry nodes to (will be created if doesn't exist)
- nodes: List of node definitions, each containing:
- type: Node type (e.g., "GeometryNodeMeshCube", "GeometryNodeSubdivisionSurface")
- location: [x, y] position in node editor (optional)
- label: Custom label for the node (optional)
- inputs: Dict of input values {input_name: value} (optional)
- properties: Dict of node properties {property_name: value} (optional)
- links: List of connections between nodes:
- from_node: Source node index (int) or name (str)
- from_socket: Source socket name (str) or index (int)
- to_node: Target node index (int) or name (str)
- to_socket: Target socket name (str) or index (int)
- input_sockets: Interface inputs for the node group (optional):
- name: Input name
- type: Socket type (e.g., "VALUE", "VECTOR", "GEOMETRY")
- value: Default value (optional)
Example for a simple procedural table:
nodes = [
{"type": "NodeGroupInput", "location": [0, 0]},
{"type": "GeometryNodeMeshCube", "location": [200, 200], "inputs": {"Size": [2, 0.1, 1]}},
{"type": "GeometryNodeMeshCube", "location": [200, 0], "inputs": {"Size": [0.1, 1.8, 0.1]}},
{"type": "GeometryNodeJoinGeometry", "location": [400, 100]},
{"type": "NodeGroupOutput", "location": [600, 100]}
]
links = [
{"from_node": 1, "from_socket": "Mesh", "to_node": 3, "to_socket": 0},
{"from_node": 2, "from_socket": "Mesh", "to_node": 3, "to_socket": 0},
{"from_node": 3, "from_socket": "Geometry", "to_node": 4, "to_socket": "Geometry"}
]
Returns success message with details about the created node network.
|
| get_geometry_nodes_statusA | Check the status of Geometry Nodes support in Blender. Returns information about Blender version and geometry nodes capabilities. |
| register_context_scriptA | Register a Python script for later execution in Blender.
Args:
script_name: Name for the script (without .py extension)
script_content: The Python code to save
category: Category/folder to organize scripts (default: "default")
permanent: If True, script survives context clearing operations (default: False)
Returns:
Success/error message
|
| execute_context_scriptC | Execute a previously registered Python script in Blender.
Args:
script_name: Name of the script to execute (without .py extension)
category: Category/folder the script is in (default: "default")
Returns:
Script execution results
|
| list_context_scriptsA | List all registered context scripts.
Args:
category: Optional category to filter by. If None, lists all scripts.
Returns:
List of available scripts with metadata
|
| clear_context_scriptsA | Clear context scripts from the registry.
Args:
category: Optional category to clear. If None, clears all categories.
script_name: Optional specific script to clear. Requires category to be specified.
clear_permanent: If True, also clears permanent scripts. If False (default), only clears temporary scripts.
Returns:
Confirmation message
|