com um clique
create-operator
MUST READ before calling create_op. Contains required verification, positioning, and error-checking steps.
Menu
MUST READ before calling create_op. Contains required verification, positioning, and error-checking steps.
MUST READ before first MCP tool call in a session. Complete Envoy tool catalog with parameters and usage.
Run Embody's test suite and write new tests (Embody development)
MUST READ before writing TD Python via execute_python, set_dat_content, or edit_dat_content. API reference for parameters, storage, operators, threading.
Workflow for running multiple TD instances with Envoy, switching between them, and understanding the instance registry.
MUST READ before calling externalize_op or save_externalization. Required workflow steps.
MUST READ before calling create_extension. Required parameters, lifecycle methods, and wiring steps.
| name | create-operator |
| description | MUST READ before calling create_op. Contains required verification, positioning, and error-checking steps. |
Follow these steps every time you create operators via MCP:
/local or /local/*. The /local storage is not for project data. Always place new operators under the project root (e.g., /project1/...) or wherever the user's active network lives. If the user says "create in the current network," use execute_python with result = ui.panes.current.owner.path to find it — do NOT default to /local.query_network on the target parent to confirm it exists and see existing operatorsget_network_layout on the parent COMP. Note each operator's nodeX, nodeY, nodeWidth, and nodeHeight — operators vary in size (100–300+ units wide)create_op with the desired type and nameset_op_position to place it at the pre-computed grid position. Auto-placement is NOT acceptable — it produces messy, unreadable networks. You MUST explicitly position every operator you create.connect_ops to wire inputs/outputs. Wires must flow left-to-right (positive X). If a wire would go backward, the downstream op is misplaced — reposition it.cam) or relative paths (../shared/lut) — NEVER absolute paths (/project1/scene/cam). See parameters.md § OP-Reference Parameter Values.get_network_layout again. Confirm no overlaps, grid alignment is intact, and signal flows left-to-right.get_op_errors with recurse=true to check for errors and warnings. Fix all errors before considering the task completenodeWidth/nodeHeight from get_network_layout, never on a fixed offset like "+300 from nodeX".next_x = prev_nodeX + prev_nodeWidth + 200 (minimum). Round up to the next multiple of 200.nodeX than the operator feeding it. Supporting DATs (pixel shaders, scripts) go to the left of or below the operator they feed into.get_network_layout call.get_network_layout to verify no overlaps were introduced.layout() for production networksexecute_python with result = ui.panes.current.owner.path