Tool tree
gradeNot graded
page: Every page
scene_get_stateAnswer
Read a concise canonical SceneDoc overview: revision, object/component counts, roots, materials, camera, environment, and current selection. Call this before preparing revision-safe actions.
View tool JSON
{
"name": "scene_get_state",
"kind": "answer",
"impl": "imperative",
"description": "Read a concise canonical SceneDoc overview: revision, object/component counts, roots, materials, camera, environment, and current selection. Call this before preparing revision-safe actions.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
},
"page": "/"
}scene_find_objectsAnswer
Search canonical SceneDoc objects by stable ID or human name, optionally filtering by component type and visibility. Returns concise object records with transforms for planning actions.
View tool JSON
{
"name": "scene_find_objects",
"kind": "answer",
"impl": "imperative",
"description": "Search canonical SceneDoc objects by stable ID or human name, optionally filtering by component type and visibility. Returns concise object records with transforms for planning actions.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"query": {
"type": "string",
"maxLength": 120,
"description": "Case-insensitive substring of object name or stable ID. Empty returns all objects up to limit."
},
"types": {
"type": "array",
"maxItems": 6,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"group",
"mesh",
"light",
"model",
"prefab",
"physics"
]
}
},
"visibleOnly": {
"type": "boolean",
"default": false
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
}
},
"page": "/"
}scene_focus_objectAction
Request that the visible Studio UI focus and select one canonical object by stable ID so the viewport and Inspector converge. This only changes ephemeral UI state; it never mutates the canonical SceneDoc or commits an edit.
View tool JSON
{
"name": "scene_focus_object",
"kind": "act",
"impl": "imperative",
"description": "Request that the visible Studio UI focus and select one canonical object by stable ID so the viewport and Inspector converge. This only changes ephemeral UI state; it never mutates the canonical SceneDoc or commits an edit.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"objectId"
],
"properties": {
"objectId": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Stable SceneDoc object or material ID."
}
}
},
"page": "/"
}scene_preview_actionsAction
Validate and visibly stage 1-12 reversible scene actions against an exact canonical revision. This never commits: a human must review and explicitly commit the opaque proposal in the Studio UI. Use scene_get_state and scene_find_objects first.
View tool JSON
{
"name": "scene_preview_actions",
"kind": "act",
"impl": "imperative",
"description": "Validate and visibly stage 1-12 reversible scene actions against an exact canonical revision. This never commits: a human must review and explicitly commit the opaque proposal in the Studio UI. Use scene_get_state and scene_find_objects first.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"expectedRevision",
"title",
"operations"
],
"properties": {
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Exact canonical revision returned by scene_get_state."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Short human-facing proposal title."
},
"rationale": {
"type": "string",
"maxLength": 400,
"description": "Why these actions help the user's stated goal."
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"items": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"target",
"name"
],
"properties": {
"kind": {
"const": "rename-entity"
},
"target": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Stable SceneDoc object or material ID."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"target",
"transform"
],
"properties": {
"kind": {
"const": "set-transform"
},
"target": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Stable SceneDoc object or material ID."
},
"transform": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"description": "Only include transform fields to change. Rotation is XYZ Euler radians.",
"properties": {
"position": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"z"
],
"properties": {
"x": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"y": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"z": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
}
},
"rotation": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"z"
],
"properties": {
"x": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"y": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"z": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
}
},
"scale": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"z"
],
"properties": {
"x": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"y": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
},
"z": {
"type": "number",
"minimum": -1000000,
"maximum": 1000000
}
}
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"target",
"material"
],
"properties": {
"kind": {
"const": "assign-material"
},
"target": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Stable SceneDoc object or material ID."
},
"material": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Stable SceneDoc object or material ID."
}
}
}
]
}
}
}
},
"page": "/"
}