vex
vex
¶
MCP tool wrappers for Houdini VEX operations.
Each tool delegates to the corresponding handler running inside Houdini via the HTTP bridge.
Functions:
| Name | Description |
|---|---|
create_vex_expression |
Set a VEX expression on a parameter. |
create_wrangle |
Create an Attribute Wrangle node with VEX code. |
get_wrangle_code |
Read the VEX code from an Attribute Wrangle node. |
set_wrangle_code |
Set VEX code on an existing Attribute Wrangle node. |
validate_vex |
Validate VEX code by cooking the node and checking for errors. |
Functions:¶
create_vex_expression
async
¶
create_wrangle
async
¶
create_wrangle(
ctx: Context,
parent_path: str,
vex_code: str,
justification: str,
run_over: str = "Points",
name: Optional[str] = None,
) -> dict
Create an Attribute Wrangle node with VEX code.
LAST RESORT. VEX is for attribute math that no node expresses — NEVER for modeling, scattering, copying, deforming, grouping, or randomizing, which all have dedicated nodes. Building geometry in a wrangle when a native node exists is a failure, not a shortcut.
The justification parameter is mandatory: state which list_node_types searches you ran and why none of the results can do this. If you cannot write that sentence honestly, you have not checked — check first.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
|
str
|
Parent SOP network path. |
required |
|
str
|
VEX snippet to set. |
required |
|
str
|
Which native nodes you checked (the actual list_node_types filters used) and why none can express this logic. |
required |
|
str
|
Element to run over ("Points", "Vertices", "Primitives", "Detail", "Numbers"). |
'Points'
|
|
Optional[str]
|
Node name. |
None
|