Tool tree
gradeNot graded
get_scene_summaryAnswer
Read the current SynMod project, revision, hierarchy, parametric geometry, transforms, materials, Boolean features, and environment without changing it.
View tool JSON
{
"name": "get_scene_summary",
"kind": "answer",
"impl": "imperative",
"description": "Read the current SynMod project, revision, hierarchy, parametric geometry, transforms, materials, Boolean features, and environment without changing it.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_objectAnswer
Read one scene object by its stable ID. This tool does not change the scene.
View tool JSON
{
"name": "get_object",
"kind": "answer",
"impl": "imperative",
"description": "Read one scene object by its stable ID. This tool does not change the scene.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
}
},
"required": [
"object_id"
],
"additionalProperties": false
}
}get_selectionAnswer
Read the objects currently selected by the person in SynMod. This tool does not change the scene.
View tool JSON
{
"name": "get_selection",
"kind": "answer",
"impl": "imperative",
"description": "Read the objects currently selected by the person in SynMod. This tool does not change the scene.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}find_objectsAnswer
Find scene objects by normalized human-readable name, type, visibility, parent, or current selection. Returns compact IDs, transforms, and world bounds without changing the scene.
View tool JSON
{
"name": "find_objects",
"kind": "answer",
"impl": "imperative",
"description": "Find scene objects by normalized human-readable name, type, visibility, parent, or current selection. Returns compact IDs, transforms, and world bounds without changing the scene.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"match": {
"type": "string",
"enum": [
"normalized_exact",
"contains"
]
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"box",
"sphere",
"cylinder",
"cone",
"torus",
"boolean",
"group",
"glb",
"glb_node"
]
},
"uniqueItems": true
},
"visible": {
"type": "boolean"
},
"parent_id": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"selection_only": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false
}
}inspect_scene_healthAnswer
Inspect object counts, hidden feature inputs, imported nodes, textured objects, and modeling warnings without changing the scene.
View tool JSON
{
"name": "inspect_scene_health",
"kind": "answer",
"impl": "imperative",
"description": "Inspect object counts, hidden feature inputs, imported nodes, textured objects, and modeling warnings without changing the scene.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_feature_treeAnswer
Read the procedural feature tree and per-object operation history without changing the scene.
View tool JSON
{
"name": "get_feature_tree",
"kind": "answer",
"impl": "imperative",
"description": "Read the procedural feature tree and per-object operation history without changing the scene.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_project_versionsAnswer
Read local checkpoint metadata and branch ancestry without changing the scene.
View tool JSON
{
"name": "get_project_versions",
"kind": "answer",
"impl": "imperative",
"description": "Read local checkpoint metadata and branch ancestry without changing the scene.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}compare_checkpointAnswer
Compare the current scene against a named checkpoint without changing it.
View tool JSON
{
"name": "compare_checkpoint",
"kind": "answer",
"impl": "imperative",
"description": "Compare the current scene against a named checkpoint without changing it.",
"inputSchema": {
"type": "object",
"properties": {
"checkpoint_id": {
"type": "string",
"minLength": 1
}
},
"required": [
"checkpoint_id"
],
"additionalProperties": false
}
}add_primitiveAction
Add one parametric primitive to the live scene. The change is visible, autosaved, attributed to Agent, and reversible.
View tool JSON
{
"name": "add_primitive",
"kind": "act",
"impl": "imperative",
"description": "Add one parametric primitive to the live scene. The change is visible, autosaved, attributed to Agent, and reversible.",
"inputSchema": {
"type": "object",
"properties": {
"primitive_type": {
"type": "string",
"enum": [
"box",
"sphere",
"cylinder",
"cone",
"torus"
]
},
"name": {
"type": "string",
"maxLength": 80
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"rotation_degrees": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"geometry": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_top": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_bottom": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"tube": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radial_segments": {
"type": "integer",
"minimum": 3,
"maximum": 256
},
"height_segments": {
"type": "integer",
"minimum": 1,
"maximum": 128
}
},
"additionalProperties": false
},
"material": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"emissive": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"emissive_intensity": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"wireframe": {
"type": "boolean"
},
"base_color_texture": {
"type": "string",
"pattern": "^data:image/"
},
"normal_texture": {
"type": "string",
"pattern": "^data:image/"
},
"roughness_texture": {
"type": "string",
"pattern": "^data:image/"
},
"metalness_texture": {
"type": "string",
"pattern": "^data:image/"
}
},
"additionalProperties": false
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"relative_to": {
"type": "object",
"properties": {
"target": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"placement": {
"type": "string",
"enum": [
"top",
"bottom",
"left",
"right",
"front",
"back",
"center"
]
},
"gap": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"inherit_material": {
"type": "boolean"
}
},
"required": [
"target"
],
"additionalProperties": false
}
},
"required": [
"primitive_type"
],
"additionalProperties": false
}
}set_object_transformAction
Set position, rotation in degrees, or scale for one scene object. Applies immediately and is reversible.
View tool JSON
{
"name": "set_object_transform",
"kind": "act",
"impl": "imperative",
"description": "Set position, rotation in degrees, or scale for one scene object. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"rotation_degrees": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
}
},
"required": [
"object_id"
],
"additionalProperties": false
}
}set_geometry_parametersAction
Refine the dimensions and segment counts of one parametric primitive. Applies immediately and is reversible.
View tool JSON
{
"name": "set_geometry_parameters",
"kind": "act",
"impl": "imperative",
"description": "Refine the dimensions and segment counts of one parametric primitive. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_top": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_bottom": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"tube": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radial_segments": {
"type": "integer",
"minimum": 3,
"maximum": 256
},
"height_segments": {
"type": "integer",
"minimum": 1,
"maximum": 128
}
},
"required": [
"object_id"
],
"additionalProperties": false
}
}set_object_materialAction
Change PBR values or embedded texture maps for one primitive, Boolean result, or imported mesh node. Applies immediately and is reversible.
View tool JSON
{
"name": "set_object_material",
"kind": "act",
"impl": "imperative",
"description": "Change PBR values or embedded texture maps for one primitive, Boolean result, or imported mesh node. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"emissive": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"emissive_intensity": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"wireframe": {
"type": "boolean"
},
"base_color_texture": {
"type": "string",
"pattern": "^data:image/"
},
"normal_texture": {
"type": "string",
"pattern": "^data:image/"
},
"roughness_texture": {
"type": "string",
"pattern": "^data:image/"
},
"metalness_texture": {
"type": "string",
"pattern": "^data:image/"
}
},
"required": [
"object_id"
],
"additionalProperties": false
}
}boolean_objectsAction
Create a non-destructive union, subtraction, or intersection from two primitives or Boolean results. Source operands remain in the feature graph, hidden and editable. The change is reversible.
View tool JSON
{
"name": "boolean_objects",
"kind": "act",
"impl": "imperative",
"description": "Create a non-destructive union, subtraction, or intersection from two primitives or Boolean results. Source operands remain in the feature graph, hidden and editable. The change is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"union",
"subtract",
"intersect"
]
},
"operand_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"minItems": 2,
"maxItems": 2
},
"name": {
"type": "string",
"maxLength": 80
}
},
"required": [
"operation",
"operand_ids"
],
"additionalProperties": false
}
}set_scene_environmentAction
Change the HDRI environment preset, exposure, background color, or scene shadows. Applies immediately and is reversible.
View tool JSON
{
"name": "set_scene_environment",
"kind": "act",
"impl": "imperative",
"description": "Change the HDRI environment preset, exposure, background color, or scene shadows. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"environment": {
"type": "string",
"enum": [
"studio",
"sunset",
"warehouse",
"night"
]
},
"exposure": {
"type": "number",
"minimum": 0.1,
"maximum": 3
},
"background_color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"shadows": {
"type": "boolean"
}
},
"additionalProperties": false
}
}preview_scene_transactionAction
Validate and preview 1–20 modeling operations atomically without changing the scene. Use the returned revision with apply_scene_transaction.
View tool JSON
{
"name": "preview_scene_transaction",
"kind": "act",
"impl": "imperative",
"description": "Validate and preview 1–20 modeling operations atomically without changing the scene. Use the returned revision with apply_scene_transaction.",
"inputSchema": {
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required for apply; obtain it from get_scene_summary or preview_scene_transaction."
},
"label": {
"type": "string",
"maxLength": 120
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"add_primitive",
"set_transform",
"set_geometry",
"set_material",
"set_visibility",
"boolean",
"rename"
]
},
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"primitive_type": {
"type": "string",
"enum": [
"box",
"sphere",
"cylinder",
"cone",
"torus"
]
},
"name": {
"type": "string",
"maxLength": 80
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"rotation_degrees": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"geometry": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_top": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_bottom": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"tube": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radial_segments": {
"type": "integer",
"minimum": 3,
"maximum": 256
},
"height_segments": {
"type": "integer",
"minimum": 1,
"maximum": 128
}
},
"additionalProperties": false
},
"material": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"emissive": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"emissive_intensity": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"wireframe": {
"type": "boolean"
},
"base_color_texture": {
"type": "string",
"pattern": "^data:image/"
},
"normal_texture": {
"type": "string",
"pattern": "^data:image/"
},
"roughness_texture": {
"type": "string",
"pattern": "^data:image/"
},
"metalness_texture": {
"type": "string",
"pattern": "^data:image/"
}
},
"additionalProperties": false
},
"visible": {
"type": "boolean"
},
"operation": {
"type": "string",
"enum": [
"union",
"subtract",
"intersect"
]
},
"operand_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"minItems": 2,
"maxItems": 2
}
},
"required": [
"action"
],
"additionalProperties": false
}
}
},
"required": [
"operations"
],
"additionalProperties": false
}
}apply_scene_transactionAction
Atomically apply 1–20 previously previewable modeling operations as one visible revision and one undo step. Rejects stale expected_revision values and never partially applies.
View tool JSON
{
"name": "apply_scene_transaction",
"kind": "act",
"impl": "imperative",
"description": "Atomically apply 1–20 previously previewable modeling operations as one visible revision and one undo step. Rejects stale expected_revision values and never partially applies.",
"inputSchema": {
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required for apply; obtain it from get_scene_summary or preview_scene_transaction."
},
"label": {
"type": "string",
"maxLength": 120
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 20,
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"add_primitive",
"set_transform",
"set_geometry",
"set_material",
"set_visibility",
"boolean",
"rename"
]
},
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"primitive_type": {
"type": "string",
"enum": [
"box",
"sphere",
"cylinder",
"cone",
"torus"
]
},
"name": {
"type": "string",
"maxLength": 80
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"rotation_degrees": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"geometry": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_top": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_bottom": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"tube": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radial_segments": {
"type": "integer",
"minimum": 3,
"maximum": 256
},
"height_segments": {
"type": "integer",
"minimum": 1,
"maximum": 128
}
},
"additionalProperties": false
},
"material": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"emissive": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"emissive_intensity": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"wireframe": {
"type": "boolean"
},
"base_color_texture": {
"type": "string",
"pattern": "^data:image/"
},
"normal_texture": {
"type": "string",
"pattern": "^data:image/"
},
"roughness_texture": {
"type": "string",
"pattern": "^data:image/"
},
"metalness_texture": {
"type": "string",
"pattern": "^data:image/"
}
},
"additionalProperties": false
},
"visible": {
"type": "boolean"
},
"operation": {
"type": "string",
"enum": [
"union",
"subtract",
"intersect"
]
},
"operand_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"minItems": 2,
"maxItems": 2
}
},
"required": [
"action"
],
"additionalProperties": false
}
}
},
"required": [
"operations"
],
"additionalProperties": false
}
}execute_scene_transactionAction
Validate and immediately apply 1–50 safe reversible modeling operations as one visible revision and one undo step. Supports human-readable targets, temporary result references, disjoint-edit rebasing, and optional selection or focus after commit.
View tool JSON
{
"name": "execute_scene_transaction",
"kind": "act",
"impl": "imperative",
"description": "Validate and immediately apply 1–50 safe reversible modeling operations as one visible revision and one undo step. Supports human-readable targets, temporary result references, disjoint-edit rebasing, and optional selection or focus after commit.",
"inputSchema": {
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Optional optimistic concurrency boundary. Unrelated later edits are safely rebased."
},
"label": {
"type": "string",
"maxLength": 120
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 50,
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"add_primitive",
"set_transform",
"set_geometry",
"set_material",
"set_visibility",
"rename",
"duplicate",
"boolean",
"group",
"ungroup",
"set_environment"
]
},
"target": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"targets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"minItems": 2,
"uniqueItems": true
},
"operands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"minItems": 2,
"maxItems": 2
},
"primitive_type": {
"type": "string",
"enum": [
"box",
"sphere",
"cylinder",
"cone",
"torus"
]
},
"name": {
"type": "string",
"maxLength": 80
},
"result_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"rotation_degrees": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"offset": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
},
"geometry": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_top": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radius_bottom": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"tube": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000
},
"radial_segments": {
"type": "integer",
"minimum": 3,
"maximum": 256
},
"height_segments": {
"type": "integer",
"minimum": 1,
"maximum": 128
}
},
"additionalProperties": false
},
"material": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"roughness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"metalness": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"emissive": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"emissive_intensity": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"wireframe": {
"type": "boolean"
},
"base_color_texture": {
"type": "string",
"pattern": "^data:image/"
},
"normal_texture": {
"type": "string",
"pattern": "^data:image/"
},
"roughness_texture": {
"type": "string",
"pattern": "^data:image/"
},
"metalness_texture": {
"type": "string",
"pattern": "^data:image/"
}
},
"additionalProperties": false
},
"visible": {
"type": "boolean"
},
"operation": {
"type": "string",
"enum": [
"union",
"subtract",
"intersect"
]
},
"relative_to": {
"type": "object",
"properties": {
"target": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"placement": {
"type": "string",
"enum": [
"top",
"bottom",
"left",
"right",
"front",
"back",
"center"
]
},
"gap": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"inherit_material": {
"type": "boolean"
}
},
"required": [
"target"
],
"additionalProperties": false
},
"environment": {
"type": "string",
"enum": [
"studio",
"sunset",
"warehouse",
"night"
]
},
"exposure": {
"type": "number",
"minimum": 0.1,
"maximum": 3
},
"background_color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"shadows": {
"type": "boolean"
}
},
"required": [
"action"
],
"additionalProperties": false
}
},
"select_after": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"maxItems": 100
},
"focus_after": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"temp_ref": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"oneOf": [
{
"required": [
"object_id"
]
},
{
"required": [
"name"
]
},
{
"required": [
"temp_ref"
]
}
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"operations"
],
"additionalProperties": false
}
}create_checkpointAction
Create a named local checkpoint of the complete editable scene. This changes project history, autosaves locally, and is reversible.
View tool JSON
{
"name": "create_checkpoint",
"kind": "act",
"impl": "imperative",
"description": "Create a named local checkpoint of the complete editable scene. This changes project history, autosaves locally, and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"name"
],
"additionalProperties": false
}
}restore_checkpointAction
Restore all scene objects and settings from a named checkpoint. This is immediate and destructive to the current scene state, but reversible with undo. Requires the current scene revision as a stale-write safety boundary.
View tool JSON
{
"name": "restore_checkpoint",
"kind": "act",
"impl": "imperative",
"description": "Restore all scene objects and settings from a named checkpoint. This is immediate and destructive to the current scene state, but reversible with undo. Requires the current scene revision as a stale-write safety boundary.",
"inputSchema": {
"type": "object",
"properties": {
"checkpoint_id": {
"type": "string",
"minLength": 1
},
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required safety boundary. Read the current revision immediately before this operation."
}
},
"required": [
"checkpoint_id",
"expected_revision"
],
"additionalProperties": false
}
}branch_projectAction
Create and switch to a new local project branch from the current scene or a checkpoint. The source project remains saved locally.
View tool JSON
{
"name": "branch_project",
"kind": "act",
"impl": "imperative",
"description": "Create and switch to a new local project branch from the current scene or a checkpoint. The source project remains saved locally.",
"inputSchema": {
"type": "object",
"properties": {
"checkpoint_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"maxLength": 100
}
},
"additionalProperties": false
}
}duplicate_projectAction
Create and switch to a separate editable local copy of the current project. No cloud account is used.
View tool JSON
{
"name": "duplicate_project",
"kind": "act",
"impl": "imperative",
"description": "Create and switch to a separate editable local copy of the current project. No cloud account is used.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
}
},
"additionalProperties": false
}
}create_readonly_share_linkAction
Create a browser-only read-only share link containing the current project. The link can expose the scene to anyone who receives it; it does not upload to cloud storage. The browser must review this external disclosure before invocation.
View tool JSON
{
"name": "create_readonly_share_link",
"kind": "act",
"impl": "imperative",
"description": "Create a browser-only read-only share link containing the current project. The link can expose the scene to anyone who receives it; it does not upload to cloud storage. The browser must review this external disclosure before invocation.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}rename_objectAction
Rename one scene object. Applies immediately and is reversible.
View tool JSON
{
"name": "rename_object",
"kind": "act",
"impl": "imperative",
"description": "Rename one scene object. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"object_id",
"name"
],
"additionalProperties": false
}
}duplicate_objectAction
Duplicate an object or group and offset the new copy. Applies immediately and is reversible.
View tool JSON
{
"name": "duplicate_object",
"kind": "act",
"impl": "imperative",
"description": "Duplicate an object or group and offset the new copy. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"name": {
"type": "string",
"maxLength": 80
},
"offset": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3,
"description": "Exactly three finite numbers in X, Y, Z order."
}
},
"required": [
"object_id"
],
"additionalProperties": false
}
}delete_objectSensitive Action
Delete one object. Deleting a Boolean result restores its source operands. This destructive change is immediate but reversible with undo_scene_change. Requires the current scene revision as a stale-write safety boundary.
View tool JSON
{
"name": "delete_object",
"kind": "transact",
"impl": "imperative",
"description": "Delete one object. Deleting a Boolean result restores its source operands. This destructive change is immediate but reversible with undo_scene_change. Requires the current scene revision as a stale-write safety boundary.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required safety boundary. Read the current revision immediately before this operation."
}
},
"required": [
"object_id",
"expected_revision"
],
"additionalProperties": false
}
}group_objectsAction
Create a transformable group from two or more objects that share the same parent. Applies immediately and is reversible.
View tool JSON
{
"name": "group_objects",
"kind": "act",
"impl": "imperative",
"description": "Create a transformable group from two or more objects that share the same parent. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"object_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"minItems": 2,
"uniqueItems": true
},
"name": {
"type": "string",
"maxLength": 80
}
},
"required": [
"object_ids"
],
"additionalProperties": false
}
}ungroup_objectAction
Remove one group while preserving its children and visible world transforms. Applies immediately and is reversible.
View tool JSON
{
"name": "ungroup_object",
"kind": "act",
"impl": "imperative",
"description": "Remove one group while preserving its children and visible world transforms. Applies immediately and is reversible.",
"inputSchema": {
"type": "object",
"properties": {
"group_id": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
}
},
"required": [
"group_id"
],
"additionalProperties": false
}
}select_objectsAction
Change the current selection so the person can inspect requested objects. This does not change model geometry.
View tool JSON
{
"name": "select_objects",
"kind": "act",
"impl": "imperative",
"description": "Change the current selection so the person can inspect requested objects. This does not change model geometry.",
"inputSchema": {
"type": "object",
"properties": {
"object_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"uniqueItems": true
}
},
"required": [
"object_ids"
],
"additionalProperties": false
}
}focus_objectsAction
Move the viewport camera to frame existing objects. This does not change model geometry.
View tool JSON
{
"name": "focus_objects",
"kind": "act",
"impl": "imperative",
"description": "Move the viewport camera to frame existing objects. This does not change model geometry.",
"inputSchema": {
"type": "object",
"properties": {
"object_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"description": "Stable object ID from get_scene_summary or get_selection."
},
"minItems": 1,
"uniqueItems": true
}
},
"required": [
"object_ids"
],
"additionalProperties": false
}
}undo_scene_changeAction
Undo the most recent reversible modeling change and update the live scene immediately. Requires the current scene revision as a stale-write safety boundary.
View tool JSON
{
"name": "undo_scene_change",
"kind": "act",
"impl": "imperative",
"description": "Undo the most recent reversible modeling change and update the live scene immediately. Requires the current scene revision as a stale-write safety boundary.",
"inputSchema": {
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required safety boundary. Read the current revision immediately before this operation."
}
},
"required": [
"expected_revision"
],
"additionalProperties": false
}
}redo_scene_changeAction
Redo the next modeling change in history and update the live scene immediately. Requires the current scene revision as a stale-write safety boundary.
View tool JSON
{
"name": "redo_scene_change",
"kind": "act",
"impl": "imperative",
"description": "Redo the next modeling change in history and update the live scene immediately. Requires the current scene revision as a stale-write safety boundary.",
"inputSchema": {
"type": "object",
"properties": {
"expected_revision": {
"type": "integer",
"minimum": 0,
"description": "Required safety boundary. Read the current revision immediately before this operation."
}
},
"required": [
"expected_revision"
],
"additionalProperties": false
}
}