UNPKG

@bottobot/td-mcp

Version:

TouchDesigner MCP Server v2.8.0 - 21 MCP tools, 629 operators with clean parameter data, 69 Python API classes, 14 tutorials, 32 workflow patterns. Includes version system, experimental techniques KB, core tool enhancements, and experimental build support

1,231 lines 37.4 kB
{ "id": "clay_sop", "name": "Clay SOP", "displayName": "Clay SOP", "category": "SOP", "subcategory": "Generators", "version": "", "lastUpdated": "2025-08-07T07:49:58.400Z", "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Clay_SOP.htm", "url": "", "description": "The Clay SOP deforms faces and surfaces by pulling points that lie directly on them. As opposed to the Point SOP or other SOPs that manipulate control points (CVs), the Clay SOP operates on the primitive contours themselves, providing a direct, intuitive, and unconstrained way of reshaping geometry. Thus, rather than translating CVs to change the aspect of the primitive, the Clay SOP takes the inverse approach of manipulating the primitive's skin to reposition the CVs.", "summary": "The Clay SOP deforms faces and surfaces by pulling points that lie directly on them. As opposed to the Point SOP or other SOPs that manipulate control points (CVs), the Clay SOP operates on the primit", "details": "", "usage": "", "tips": [], "warnings": [], "parameters": [ { "id": null, "name": "Group", "label": "Group", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [ "method" ], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "If there are input groups, specifying a group name in this field will cause this to act only upon the group specified.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.394Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Warp Method", "label": "Warp Method", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "Warp Method parameter.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Matrix", "label": "Matrix", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "mat - The matrix method relocates the target point based on a transformation matrix. For a description of transforms, see the Transform SOP. vec - The vector method provides a distance and a vector to translate along. point - The point method provides a 3D point in object space that the target point must snap to. prim - The primitive method allows the target point to be snapped to a point on another primitive. Any primitive type is allowed, including metaballs, all quadrics, and even particle systems. The point on the destination primitive is expressed parametrically as a (U, V) pair.If the Clay has a second input, then the destination primitive is going to be the first primitive in that input. If there is no second input, the primitives in the first input will snap to themselves (each face or surface to itself).", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Transform Order", "label": "Transform Order", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "xord - - Sets the overall transform order for the transformations. The transform order determines the order in which transformations take place. Depending on the order, you can achieve different results using the exact same values. Choose the appropriate order from the menu.\n\n srt - str - rst - rts - tsr - trs -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Scale Rotate Translate", "label": "Scale Rotate Translate", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "srt - str - rst - rts - tsr - trs -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Rotate Order", "label": "Rotate Order", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "rord - - Sets the order of the rotations within the overall transform order.\n\n xyz - xzy - yxz - yzx - zxy - zyx -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Rx Ry Rz", "label": "Rx Ry Rz", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "xyz - xzy - yxz - yzx - zxy - zyx -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.398Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Translate", "label": "Translate", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "t - - These three fields move the Source geometry in the three axes.\n\n tx - ty - tz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "X", "label": "X", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "tx - ty - tz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Rotate", "label": "Rotate", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "r - - These three fields rotate the Source geometry in the three axes.\n\n rx - ry - rz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Scale", "label": "Scale", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "s - - These three fields scale the Source geometry in the three axes.\n\n sx - sy - sz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Pivot", "label": "Pivot", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "p - - The pivot point for the transformations (not the same as the pivot point in the pivot channels). The pivot point parameters allow you to define the point about which geometry scales and rotates. Altering the pivot point produces different results depending on the transformation performed on the object.\t\nFor example, during a scaling operation, if the pivot point of an object is located at: -1, -1, 0 and you wanted to scale the object by 0.5 (reduce its size by 50%) the object would scale toward the pivot point and appear to slide down and to the left.\t\t\t\n\t\t\t\nIn the example above, rotations performed on an object with different pivot points produce very different results.\n\n\n px - py - pz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Distance", "label": "Distance", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "dist - Specifies the translation distance along the given vector.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Normal", "label": "Normal", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "normal - When On, the translation will be performed along the primitive normal at the target (U, V) point. Otherwise an explicit direction is required, see Direction parameter below. If the input contains face primitives, the primitive normal is independent of the target (U) point. normals can be displayed from the Display Options dialog.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Direction", "label": "Direction", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "dir - - The direction of the vector is the Normal parameter above is Off.\n\n dirx - diry - dirz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Coordinates", "label": "Coordinates", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "coord - - Specifies the absolute 3D location the (U, V) target must translate to.\n\n coordx - coordy - coordz -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "U and V", "label": "U and V", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "uvsnap - - The primitive method allows the target point to be snapped to a point on another primitive specified by U and V here. See Warp Method parameter for details.\n\nuvsnap1 -uvsnap2 -", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Deform along U", "label": "Deform along U", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "uwarp - Determines whether the clay operation affects the U parametric direction. Both faces and surfaces respond to this option. If the primitives are face types and the toggle is off, clay doesn't change the inputs at all. If the inputs are surfaces and U is off, clay will pull the surfaces along the entire V direction (if V is on) or not at all.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "U", "label": "U", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "u - This value defines a point in the parametric space of a face, representing the location to be affected by the clay operation. This location is referred to as the \"target\". For surfaces, U defines a line of constant value in the parametric space of the primitive and requires a second coordinate - V - to specify a unique location (see the V> Page below). Spline faces and surfaces have explicit parametric spaces known as domains; since domains are not restricted to the unit range [0, 1], the Clay maps U to the real domain value of the primitive. For polygons and meshes, U is expressed in terms of the number or vertices and columns respectively and in terms of their relative positions.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "U Bias", "label": "U Bias", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "uusebias - Indicates whether the clay algorithm should use the bias it thinks works best for the given U parameter, or take the value explicitly stated beside the toggle. Since clay affects the CVs in the neighbourhood of the given parametric location, the bias can influence the amount of pull applied to the CVs on either side of this location. The effect is a slant of the \"wave\" the parametric point rides on - towards one side or the other.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "U Sharpness", "label": "U Sharpness", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "U Sharpness parameter.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Deform along V", "label": "Deform along V", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "vwarp - Determines whether the clay operation affects the V parametric direction of the surface. If the inputs are surfaces and V if off, clay will pull the surfaces along the entire U direction (if U is on) or not at all. If both U and V are on, clay will pull the surface at the target (U, V) point specified in the U and V folders below. This option does not affect face types.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.399Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "V", "label": "V", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "v - This value affects only surface types. V defines a line of constant value in the parametric space of the surface and together with U specifies a unique location in that space. Spline surfaces have explicit parametric spaces known as domains; since domains are not restricted to the unit range [0, 1], the Clay maps V to the real domain value of the surface. For meshes, V is expressed in terms of the number or rows and their relative positions.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.400Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "V Bias", "label": "V Bias", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "vusebias - Indicates whether the clay algorithm should use the bias it thinks works best for the given V parameter, or take the value explicitly stated beside the toggle. Since clay affects the CVs in the neighbourhood of the given parametric location, the bias can influence the amount of pull applied to the CVs on either side of this location. The effect is a slant of the \"wave\" the parametric point rides on -- towards one side or the other.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.400Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "V Sharpness", "label": "V Sharpness", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "vsharp - This parameter affects only NURBS surfaces. The pull generated by clay on these primitives can be smooth or sharp depending on the position of the target relative to the underlying domain (the farther away from a knot, the rounded the bulge) and the knot multiplicity near the target (the higher the multiplicity the sharper the pull). If the pull is too round or affects too big an area in V, the V Sharpness parameter can reduce it by inserting one or more knots at the target V value. When the V Sharpness is zero no knots are inserted. When the V Sharpness is 1, all \"degree\" knots are inserted and the surface becomes very sharp. The V Sharpness varies in discrete steps; the number of steps equals the V degree of the spline.\t\nNote: The range of the V Sharpness slider varies with the degree of the spline (i.e. the closer it is to 1, the more knots it adds). Since the number of knots added forms a discrete sequence, the slider will automatically jump to the valid positions.", "tooltip": "", "help": "", "units": "", "examples": [], "isReadOnly": false, "isAdvanced": false, "isHidden": false, "isAnimatable": true, "isExpression": false, "isPython": false, "dependsOn": [], "affects": [], "linkedTo": [], "expressionLanguage": "", "defaultExpression": "", "commonExpressions": [], "order": 0, "isVisible": true, "conditionalDisplay": null, "isValid": true, "validationErrors": [], "lastUpdated": "2025-08-07T07:49:58.400Z", "rawData": {}, "sourceElement": null } ], "parameterGroups": {}, "codeExamples": [], "pythonExamples": [], "expressions": [], "commonInputs": [], "commonOutputs": [], "relatedOperators": [], "workflowPatterns": [], "images": [], "videos": [], "assets": [], "keywords": [ "clay", "sop", "deforms", "faces", "surfaces", "pulling", "points", "directly", "them.", "opposed", "point" ], "tags": [ "SOP", "TouchDesigner", "Clay SOP" ], "searchWeight": 1, "contentHash": "", "processingDate": "2025-08-07T07:49:58.400Z", "processingVersion": "1.0.0", "isValid": true, "validationErrors": [] }