{
  "id": "clip_sop",
  "name": "Clip SOP",
  "displayName": "Clip SOP",
  "category": "SOP",
  "subcategory": "Generators",
  "version": "",
  "lastUpdated": "2025-08-07T07:49:58.487Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Clip_SOP.htm",
  "url": "",
  "description": "The Clip SOP cuts and creases source geometry with a plane.",
  "summary": "The Clip SOP cuts and creases source geometry with a plane.",
  "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": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Clip  cuts and creases source geometry with a plane.\nclipSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n  group - If there are input groups, specifying a group name in this field will cause this  to act only upon the group specified. Accepts patterns, as described in  in the Scripting Guide.\n\n\n\t\t\n  clipop -  - Options controlling what part of the clip to keep:\n\n above - Retain the primitives above the cutting plane. below - Retain the primitives below the cutting plane. both - Retain both the top and bottom primitives generated by the cutting plane. Creates a crease in the geometry.\n\t\t\n  dist - Allows you to move the cutting plane along the Direction vector. If the  (plane's normal) is 0 1 0, putting a positive number in the  field moves the plane up in Y.\n\n\n\t\t\n  dir -  - The default values of 0 1 0 creates a Normal vector straight up in Y, which is perpendicular to the XZ plane, which becomes the clipping plane. 1 0 0 points the normal in positive X, giving a clipping plane in YZ. The plane may be positioned at an angle by using values typed in (1 1 0 gives a 45 angle plane) or interactively by using the direction vector jack.\n\n dirx - diry - dirz -\n\t\t\n  newg - When checked, allows you to generate specific groups for the geometry above and below the cutting plane. See the two group option fields below. This option is only available when  are kept.\n\n\n\t\t\n  above - When  is checked, you can assign the geometry below the cutting plane to the  name typed in this field.\n\n\n\t\t\n  below - When  is checked, you can assign the geometry above the cutting plane to the  name typed in this field.\n\n\n\n\n\n -\n\nExtra Information for the Clip  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2022.241402021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nMatching names using wildcard characters and bracketing. Useful in \"Select\" type parameters to select multiple operators, paths, channels, etc.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Clip_SOP&oldid=24180\"\n\t\tCategory: SOPs",
      "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.484Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Group",
      "label": "Group",
      "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": "From Derivative\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tJump to navigation\n\t\tJump to search\n\t\t\nThe Clip  cuts and creases source geometry with a plane.\nclipSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n  group - If there are input groups, specifying a group name in this field will cause this  to act only upon the group specified. Accepts patterns, as described in  in the Scripting Guide.\n\n\n\t\t\n  clipop -  - Options controlling what part of the clip to keep:\n\n above - Retain the primitives above the cutting plane. below - Retain the primitives below the cutting plane. both - Retain both the top and bottom primitives generated by the cutting plane. Creates a crease in the geometry.\n\t\t\n  dist - Allows you to move the cutting plane along the Direction vector. If the  (plane's normal) is 0 1 0, putting a positive number in the  field moves the plane up in Y.\n\n\n\t\t\n  dir -  - The default values of 0 1 0 creates a Normal vector straight up in Y, which is perpendicular to the XZ plane, which becomes the clipping plane. 1 0 0 points the normal in positive X, giving a clipping plane in YZ. The plane may be positioned at an angle by using values typed in (1 1 0 gives a 45 angle plane) or interactively by using the direction vector jack.\n\n dirx - diry - dirz -\n\t\t\n  newg - When checked, allows you to generate specific groups for the geometry above and below the cutting plane. See the two group option fields below. This option is only available when  are kept.\n\n\n\t\t\n  above - When  is checked, you can assign the geometry below the cutting plane to the  name typed in this field.\n\n\n\t\t\n  below - When  is checked, you can assign the geometry above the cutting plane to the  name typed in this field.\n\n\n\n\n\n -\n\nExtra Information for the Clip  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2022.241402021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nMatching names using wildcard characters and bracketing. Useful in \"Select\" type parameters to select multiple operators, paths, channels, etc.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Clip_SOP&oldid=24180\"\n\t\tCategory: SOPs",
      "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.485Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Group",
      "label": "Group",
      "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": "The Clip  cuts and creases source geometry with a plane.\nclipSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n  group - If there are input groups, specifying a group name in this field will cause this  to act only upon the group specified. Accepts patterns, as described in  in the Scripting Guide.\n\n\n\t\t\n  clipop -  - Options controlling what part of the clip to keep:\n\n above - Retain the primitives above the cutting plane. below - Retain the primitives below the cutting plane. both - Retain both the top and bottom primitives generated by the cutting plane. Creates a crease in the geometry.\n\t\t\n  dist - Allows you to move the cutting plane along the Direction vector. If the  (plane's normal) is 0 1 0, putting a positive number in the  field moves the plane up in Y.\n\n\n\t\t\n  dir -  - The default values of 0 1 0 creates a Normal vector straight up in Y, which is perpendicular to the XZ plane, which becomes the clipping plane. 1 0 0 points the normal in positive X, giving a clipping plane in YZ. The plane may be positioned at an angle by using values typed in (1 1 0 gives a 45 angle plane) or interactively by using the direction vector jack.\n\n dirx - diry - dirz -\n\t\t\n  newg - When checked, allows you to generate specific groups for the geometry above and below the cutting plane. See the two group option fields below. This option is only available when  are kept.\n\n\n\t\t\n  above - When  is checked, you can assign the geometry below the cutting plane to the  name typed in this field.\n\n\n\t\t\n  below - When  is checked, you can assign the geometry above the cutting plane to the  name typed in this field.\n\n\n\n\n\n -\n\nExtra Information for the Clip  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2022.241402021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\nMatching names using wildcard characters and bracketing. Useful in \"Select\" type parameters to select multiple operators, paths, channels, etc.\n\n\n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Clip_SOP&oldid=24180\"",
      "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.486Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Group",
      "label": "Group",
      "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": "group - If there are input groups, specifying a group name in this field will cause this  to act only upon the group specified. Accepts patterns, as described in  in the Scripting Guide.",
      "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.486Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Keep",
      "label": "Keep",
      "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": "clipop -  - Options controlling what part of the clip to keep:\n\n above - Retain the primitives above the cutting plane. below - Retain the primitives below the cutting plane. both - Retain both the top and bottom primitives generated by the cutting plane. Creates a crease in the geometry.",
      "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.486Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Primitives Above the Plane",
      "label": "Primitives Above the Plane",
      "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": "above - Retain the primitives above the cutting plane. below - Retain the primitives below the cutting plane. both - Retain both the top and bottom primitives generated by the cutting plane. Creates a crease in the geometry.",
      "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.486Z",
      "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 - Allows you to move the cutting plane along the Direction vector. If the  (plane's normal) is 0 1 0, putting a positive number in the  field moves the plane up in Y.",
      "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.486Z",
      "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 default values of 0 1 0 creates a Normal vector straight up in Y, which is perpendicular to the XZ plane, which becomes the clipping plane. 1 0 0 points the normal in positive X, giving a clipping plane in YZ. The plane may be positioned at an angle by using values typed in (1 1 0 gives a 45 angle plane) or interactively by using the direction vector jack.\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.486Z",
      "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": "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.486Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Create Groups",
      "label": "Create Groups",
      "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": "newg - When checked, allows you to generate specific groups for the geometry above and below the cutting plane. See the two group option fields below. This option is only available when  are kept.",
      "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.486Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Above Plane",
      "label": "Above Plane",
      "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": "above - When  is checked, you can assign the geometry below the cutting plane to the  name typed in this field.",
      "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.487Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Below Plane",
      "label": "Below Plane",
      "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": "below - When  is checked, you can assign the geometry above the cutting plane to the  name typed in this field.",
      "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.487Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "clip",
    "sop",
    "cuts",
    "creases",
    "source",
    "geometry",
    "plane."
  ],
  "tags": [
    "SOP",
    "TouchDesigner",
    "Clip SOP"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-07T07:49:58.487Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}