UNPKG

@bottobot/td-mcp

Version:

TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit

945 lines 47 kB
{ "id": "divide", "name": "Divide", "displayName": "Divide", "category": "SOP", "subcategory": "Generators", "version": "", "lastUpdated": "2025-08-08T00:37:42.354Z", "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Divide_SOP.htm", "url": "", "description": "The Divide SOP divides incoming polygonal geometry. It will smooth input polygons, dividing polygons, as well as sub-divide input polygons using the Bricker option. Bricker is also useful for polygon faces with more than four edges to chop them up into quads and triangles allowing for proper shading when using deformation tools.", "summary": "The Divide SOP divides incoming polygonal geometry. It will smooth input polygons, dividing polygons, as well as sub-divide input polygons using the Bricker option. Bricker is also useful for polygon ", "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 Divide divides incoming polygonal geometry. It will smooth input polygons, dividing polygons, as well as sub-divide input polygons using the Bricker option. Bricker is also useful for polygon faces with more than four edges to chop them up into quads and triangles allowing for proper shading when using deformation tools.\ndivideSOP_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 Pattern Matching.\n\n\n\t\t\n convex - When checked, this option will convex all incoming polygons to the maximum number of sides as specified in the field below. This is useful for reducing the number of sides of polygons that are concave and not shading properly, e.g. to generate triangles from all incoming geometry, check this option and change the Maximum Edges field below to 3. You will see that all of the polygons are reduced to three sides maximum (triangles).\n\n\n\t\t\n numsides - Input value determines the maximum number of edges that all of the input polygons will be reduced to if they exceed this number. Sets the maximum number of sides for convexed polygons. There must be at least three sides. Using small numbers in the range of 3-6 gives the best results; the resulting polygons are not so long and thin. If input polygons have fewer edges than specified, no change will be executed on those polygons.\n\n\n\t\t\n planar - Triangulates any non-planar polygons.\n\n\n\t\t\n smooth - If checked, this feature will divide the polygons which are adjacent to each other and are not flat, as in the corners of a box. The threshold of the smoothing and the amount of polygon divisions that are added are controlled by the fields below.\t\nAll incoming geometry must have shared points for Smooth Polygons to work. You may have to pass the geometry through a Facet SOP > Consolidate Points to achieve this. For example, to create a dice from a box, add a Box SOP followed by a Facet > Consolidate Points then through the Divide with Smooth Polygons enabled; set the Weight fields set to: 4,0.5 and the Divisions set to: 2.\n\n\n\t\t\n weight - - Determines the localization effect of the added polygons. You can isolate the divisions to where there are edges in the geometry with values greater than 1 enhancing the edges by smoothing out the angle transitions. Values less than 1 tend to put the divisions in the flatter areas of the source geometry and alter the shape of the geometry considerably by pulling in the edges.\n\nweight1 -weight2 -\n\t\t\n divs - Determine the level of sub-divisions for the Smooth Polygons option. A value of 1 doubles the number of polygons at the corners, a value of 2 will add twice as much sub-division. Values of 3 and greater may add a substantial number of polygons and should be used with care - you can exponentially increase the complexity.\n\n\n\t\t\n brick - Selecting this option divides the input polygon geometry into grid-like squares, though the output is not a mesh. Brickering creates new polygons. It can be used to divide a surface so that it deforms more naturally when wrapped on another surface using a Creep SOP, or twisted with a Lattice SOP.\t\nIt can also be used to divide a planar surface into smaller pieces to apply point colors using a Point SOP. The size and location of the square divisions created by brickering is determined by the following three options.\n\n\n\t\t\n size - - Sets the size of the bricker grid divisions in each of the three axes.\n\n sizex - sizey - sizez -\n\t\t\n offset - - Sets the XYZ offset of the grid divisions to the Source geometry (the Brickering Grid is moved).\n\n offsetx - offsety - offsetz -\n\t\t\n angle - - Determines the angle relative to XYZ axes, at which Bricker Polygons are created.\n\n anglex - angley - anglez -\n\t\t\n removesh - Eliminates any common edges.\n\n\n\t\t\n dual - Convert the polyhedron into its point/face dual.Convert the polyhedron into its point/face dual.\n\n\n\n\n\n -\n\nExtra Information for the Divide 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\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=Divide_SOP&oldid=24186\"\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-08T00:37:42.350Z", "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 Divide divides incoming polygonal geometry. It will smooth input polygons, dividing polygons, as well as sub-divide input polygons using the Bricker option. Bricker is also useful for polygon faces with more than four edges to chop them up into quads and triangles allowing for proper shading when using deformation tools.\ndivideSOP_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 Pattern Matching.\n\n\n\t\t\n convex - When checked, this option will convex all incoming polygons to the maximum number of sides as specified in the field below. This is useful for reducing the number of sides of polygons that are concave and not shading properly, e.g. to generate triangles from all incoming geometry, check this option and change the Maximum Edges field below to 3. You will see that all of the polygons are reduced to three sides maximum (triangles).\n\n\n\t\t\n numsides - Input value determines the maximum number of edges that all of the input polygons will be reduced to if they exceed this number. Sets the maximum number of sides for convexed polygons. There must be at least three sides. Using small numbers in the range of 3-6 gives the best results; the resulting polygons are not so long and thin. If input polygons have fewer edges than specified, no change will be executed on those polygons.\n\n\n\t\t\n planar - Triangulates any non-planar polygons.\n\n\n\t\t\n smooth - If checked, this feature will divide the polygons which are adjacent to each other and are not flat, as in the corners of a box. The threshold of the smoothing and the amount of polygon divisions that are added are controlled by the fields below.\t\nAll incoming geometry must have shared points for Smooth Polygons to work. You may have to pass the geometry through a Facet SOP > Consolidate Points to achieve this. For example, to create a dice from a box, add a Box SOP followed by a Facet > Consolidate Points then through the Divide with Smooth Polygons enabled; set the Weight fields set to: 4,0.5 and the Divisions set to: 2.\n\n\n\t\t\n weight - - Determines the localization effect of the added polygons. You can isolate the divisions to where there are edges in the geometry with values greater than 1 enhancing the edges by smoothing out the angle transitions. Values less than 1 tend to put the divisions in the flatter areas of the source geometry and alter the shape of the geometry considerably by pulling in the edges.\n\nweight1 -weight2 -\n\t\t\n divs - Determine the level of sub-divisions for the Smooth Polygons option. A value of 1 doubles the number of polygons at the corners, a value of 2 will add twice as much sub-division. Values of 3 and greater may add a substantial number of polygons and should be used with care - you can exponentially increase the complexity.\n\n\n\t\t\n brick - Selecting this option divides the input polygon geometry into grid-like squares, though the output is not a mesh. Brickering creates new polygons. It can be used to divide a surface so that it deforms more naturally when wrapped on another surface using a Creep SOP, or twisted with a Lattice SOP.\t\nIt can also be used to divide a planar surface into smaller pieces to apply point colors using a Point SOP. The size and location of the square divisions created by brickering is determined by the following three options.\n\n\n\t\t\n size - - Sets the size of the bricker grid divisions in each of the three axes.\n\n sizex - sizey - sizez -\n\t\t\n offset - - Sets the XYZ offset of the grid divisions to the Source geometry (the Brickering Grid is moved).\n\n offsetx - offsety - offsetz -\n\t\t\n angle - - Determines the angle relative to XYZ axes, at which Bricker Polygons are created.\n\n anglex - angley - anglez -\n\t\t\n removesh - Eliminates any common edges.\n\n\n\t\t\n dual - Convert the polyhedron into its point/face dual.Convert the polyhedron into its point/face dual.\n\n\n\n\n\n -\n\nExtra Information for the Divide 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\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=Divide_SOP&oldid=24186\"\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-08T00:37:42.351Z", "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 Divide divides incoming polygonal geometry. It will smooth input polygons, dividing polygons, as well as sub-divide input polygons using the Bricker option. Bricker is also useful for polygon faces with more than four edges to chop them up into quads and triangles allowing for proper shading when using deformation tools.\ndivideSOP_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 Pattern Matching.\n\n\n\t\t\n convex - When checked, this option will convex all incoming polygons to the maximum number of sides as specified in the field below. This is useful for reducing the number of sides of polygons that are concave and not shading properly, e.g. to generate triangles from all incoming geometry, check this option and change the Maximum Edges field below to 3. You will see that all of the polygons are reduced to three sides maximum (triangles).\n\n\n\t\t\n numsides - Input value determines the maximum number of edges that all of the input polygons will be reduced to if they exceed this number. Sets the maximum number of sides for convexed polygons. There must be at least three sides. Using small numbers in the range of 3-6 gives the best results; the resulting polygons are not so long and thin. If input polygons have fewer edges than specified, no change will be executed on those polygons.\n\n\n\t\t\n planar - Triangulates any non-planar polygons.\n\n\n\t\t\n smooth - If checked, this feature will divide the polygons which are adjacent to each other and are not flat, as in the corners of a box. The threshold of the smoothing and the amount of polygon divisions that are added are controlled by the fields below.\t\nAll incoming geometry must have shared points for Smooth Polygons to work. You may have to pass the geometry through a Facet SOP > Consolidate Points to achieve this. For example, to create a dice from a box, add a Box SOP followed by a Facet > Consolidate Points then through the Divide with Smooth Polygons enabled; set the Weight fields set to: 4,0.5 and the Divisions set to: 2.\n\n\n\t\t\n weight - - Determines the localization effect of the added polygons. You can isolate the divisions to where there are edges in the geometry with values greater than 1 enhancing the edges by smoothing out the angle transitions. Values less than 1 tend to put the divisions in the flatter areas of the source geometry and alter the shape of the geometry considerably by pulling in the edges.\n\nweight1 -weight2 -\n\t\t\n divs - Determine the level of sub-divisions for the Smooth Polygons option. A value of 1 doubles the number of polygons at the corners, a value of 2 will add twice as much sub-division. Values of 3 and greater may add a substantial number of polygons and should be used with care - you can exponentially increase the complexity.\n\n\n\t\t\n brick - Selecting this option divides the input polygon geometry into grid-like squares, though the output is not a mesh. Brickering creates new polygons. It can be used to divide a surface so that it deforms more naturally when wrapped on another surface using a Creep SOP, or twisted with a Lattice SOP.\t\nIt can also be used to divide a planar surface into smaller pieces to apply point colors using a Point SOP. The size and location of the square divisions created by brickering is determined by the following three options.\n\n\n\t\t\n size - - Sets the size of the bricker grid divisions in each of the three axes.\n\n sizex - sizey - sizez -\n\t\t\n offset - - Sets the XYZ offset of the grid divisions to the Source geometry (the Brickering Grid is moved).\n\n offsetx - offsety - offsetz -\n\t\t\n angle - - Determines the angle relative to XYZ axes, at which Bricker Polygons are created.\n\n anglex - angley - anglez -\n\t\t\n removesh - Eliminates any common edges.\n\n\n\t\t\n dual - Convert the polyhedron into its point/face dual.Convert the polyhedron into its point/face dual.\n\n\n\n\n\n -\n\nExtra Information for the Divide 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\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=Divide_SOP&oldid=24186\"", "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-08T00:37:42.353Z", "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 Pattern Matching.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Convex Polygons", "label": "Convex Polygons", "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": "convex - When checked, this option will convex all incoming polygons to the maximum number of sides as specified in the field below. This is useful for reducing the number of sides of polygons that are concave and not shading properly, e.g. to generate triangles from all incoming geometry, check this option and change the Maximum Edges field below to 3. You will see that all of the polygons are reduced to three sides maximum (triangles).", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Maximum Edges", "label": "Maximum Edges", "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": "numsides - Input value determines the maximum number of edges that all of the input polygons will be reduced to if they exceed this number. Sets the maximum number of sides for convexed polygons. There must be at least three sides. Using small numbers in the range of 3-6 gives the best results; the resulting polygons are not so long and thin. If input polygons have fewer edges than specified, no change will be executed on those polygons.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Triangulate Non-Planar", "label": "Triangulate Non-Planar", "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": "planar - Triangulates any non-planar polygons.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Smooth Polygons", "label": "Smooth Polygons", "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": "smooth - If checked, this feature will divide the polygons which are adjacent to each other and are not flat, as in the corners of a box. The threshold of the smoothing and the amount of polygon divisions that are added are controlled by the fields below.\t\nAll incoming geometry must have shared points for Smooth Polygons to work. You may have to pass the geometry through a Facet SOP > Consolidate Points to achieve this. For example, to create a dice from a box, add a Box SOP followed by a Facet > Consolidate Points then through the Divide with Smooth Polygons enabled; set the Weight fields set to: 4,0.5 and the Divisions set to: 2.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Weight", "label": "Weight", "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": "weight - - Determines the localization effect of the added polygons. You can isolate the divisions to where there are edges in the geometry with values greater than 1 enhancing the edges by smoothing out the angle transitions. Values less than 1 tend to put the divisions in the flatter areas of the source geometry and alter the shape of the geometry considerably by pulling in the edges.\n\nweight1 -weight2 -", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Divisions", "label": "Divisions", "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": "divs - Determine the level of sub-divisions for the Smooth Polygons option. A value of 1 doubles the number of polygons at the corners, a value of 2 will add twice as much sub-division. Values of 3 and greater may add a substantial number of polygons and should be used with care - you can exponentially increase the complexity.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Bricker Polygons", "label": "Bricker Polygons", "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": "brick - Selecting this option divides the input polygon geometry into grid-like squares, though the output is not a mesh. Brickering creates new polygons. It can be used to divide a surface so that it deforms more naturally when wrapped on another surface using a Creep SOP, or twisted with a Lattice SOP.\t\nIt can also be used to divide a planar surface into smaller pieces to apply point colors using a Point SOP. The size and location of the square divisions created by brickering is determined by the following three options.", "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-08T00:37:42.353Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Size", "label": "Size", "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": "size - - Sets the size of the bricker grid divisions in each of the three axes.\n\n sizex - sizey - sizez -", "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-08T00:37:42.353Z", "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": "sizex - sizey - sizez -", "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-08T00:37:42.354Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Offset", "label": "Offset", "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": "offset - - Sets the XYZ offset of the grid divisions to the Source geometry (the Brickering Grid is moved).\n\n offsetx - offsety - offsetz -", "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-08T00:37:42.354Z", "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": "offsetx - offsety - offsetz -", "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-08T00:37:42.354Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Angle", "label": "Angle", "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": "angle - - Determines the angle relative to XYZ axes, at which Bricker Polygons are created.\n\n anglex - angley - anglez -", "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-08T00:37:42.354Z", "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": "anglex - angley - anglez -", "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-08T00:37:42.354Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Remove Shared Edges", "label": "Remove Shared Edges", "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": "removesh - Eliminates any common edges.", "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-08T00:37:42.354Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Compute Dual", "label": "Compute Dual", "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": "dual - Convert the polyhedron into its point/face dual.Convert the polyhedron into its point/face dual.", "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-08T00:37:42.354Z", "rawData": {}, "sourceElement": null } ], "parameterGroups": {}, "codeExamples": [], "pythonExamples": [], "expressions": [], "commonInputs": [], "commonOutputs": [], "relatedOperators": [], "workflowPatterns": [], "images": [], "videos": [], "assets": [], "keywords": [ "divide", "divides", "incoming", "polygonal", "geometry.", "smooth", "input", "polygons,", "dividing" ], "tags": [ "SOP", "TouchDesigner", "Divide" ], "searchWeight": 1, "contentHash": "", "processingDate": "2025-08-08T00:37:42.354Z", "processingVersion": "1.0.0", "isValid": true, "validationErrors": [] }