← WebMCP Directory

Tool tree

synmod.jquan287619461.chatgpt.site

Developer ToolsTools verified
Website
A WebMCP-powered 3D studio where you and an agent shape scenes together in real time.
Explore capabilities
    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
      }
    }