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

616 lines 28.7 kB
{ "id": "line_thick", "name": "Line Thick", "displayName": "Line Thick", "category": "SOP", "subcategory": "Generators", "version": "", "lastUpdated": "2025-08-08T00:37:46.281Z", "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Line_Thick_SOP.htm", "url": "", "description": "The Line Thick SOP extrudes a surface from a curved line. The line can be of polygon, NURBS, or Bezier geometry type.", "summary": "The Line Thick SOP extrudes a surface from a curved line. The line can be of polygon, NURBS, or Bezier geometry type.", "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 Line Thick extrudes a surface from a curved line. The line can be of polygon, NURBS, or Bezier geometry type.\nlinethickSOP_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.\n\n\n\t\t\n startwidth - - Controls the width of the surface created at the start of the line. Startwidth1 adjusts the width on the inside of the curve, Startwidth2 adjusts the width on the outside of the curve.\n\nstartwidth1 -startwidth2 -\n\t\t\n endwidth - - Controls the width of the surface created at the end of the line. Endwidth1 adjusts the width on the inside of the curve, Endwidth2 adjusts the width on the outside of the curve.\n\nendwidth1 -endwidth2 -\n\t\t\n divisions - Number of Divisions (Columns) in the surface geometry created.\n\n\n\t\t\n rows - Number of Rows in the surface geometry created.\n\n\n\t\t\n domain - - Fraction of the input curve that is used to create the new surface geometry. Domain1 sets position on the curve for Startwidth, Domain2 sets position on the curve for Endwidth.\n\ndomain1 -domain2 -\n\t\t\n shape - - This menu selects the type of interpolation used between Startwidth and Endwidth.\n\n linear - easein - easeout - ease - cubic -\n\t\t\n symmetric - When this is selected, the Endwidth is positioned at the middlepoint on the curve between Domain1 and Domain2. Startwidth is placed at Domain1 and Domain2. The result is a symmetric surface.\n\n\n\n\n\n -\n\nExtra Information for the Line Thick 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\\n2021.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=Line_Thick_SOP&oldid=24264\"\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:46.278Z", "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 Line Thick extrudes a surface from a curved line. The line can be of polygon, NURBS, or Bezier geometry type.\nlinethickSOP_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.\n\n\n\t\t\n startwidth - - Controls the width of the surface created at the start of the line. Startwidth1 adjusts the width on the inside of the curve, Startwidth2 adjusts the width on the outside of the curve.\n\nstartwidth1 -startwidth2 -\n\t\t\n endwidth - - Controls the width of the surface created at the end of the line. Endwidth1 adjusts the width on the inside of the curve, Endwidth2 adjusts the width on the outside of the curve.\n\nendwidth1 -endwidth2 -\n\t\t\n divisions - Number of Divisions (Columns) in the surface geometry created.\n\n\n\t\t\n rows - Number of Rows in the surface geometry created.\n\n\n\t\t\n domain - - Fraction of the input curve that is used to create the new surface geometry. Domain1 sets position on the curve for Startwidth, Domain2 sets position on the curve for Endwidth.\n\ndomain1 -domain2 -\n\t\t\n shape - - This menu selects the type of interpolation used between Startwidth and Endwidth.\n\n linear - easein - easeout - ease - cubic -\n\t\t\n symmetric - When this is selected, the Endwidth is positioned at the middlepoint on the curve between Domain1 and Domain2. Startwidth is placed at Domain1 and Domain2. The result is a symmetric surface.\n\n\n\n\n\n -\n\nExtra Information for the Line Thick 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\\n2021.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=Line_Thick_SOP&oldid=24264\"\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:46.279Z", "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 Line Thick extrudes a surface from a curved line. The line can be of polygon, NURBS, or Bezier geometry type.\nlinethickSOP_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.\n\n\n\t\t\n startwidth - - Controls the width of the surface created at the start of the line. Startwidth1 adjusts the width on the inside of the curve, Startwidth2 adjusts the width on the outside of the curve.\n\nstartwidth1 -startwidth2 -\n\t\t\n endwidth - - Controls the width of the surface created at the end of the line. Endwidth1 adjusts the width on the inside of the curve, Endwidth2 adjusts the width on the outside of the curve.\n\nendwidth1 -endwidth2 -\n\t\t\n divisions - Number of Divisions (Columns) in the surface geometry created.\n\n\n\t\t\n rows - Number of Rows in the surface geometry created.\n\n\n\t\t\n domain - - Fraction of the input curve that is used to create the new surface geometry. Domain1 sets position on the curve for Startwidth, Domain2 sets position on the curve for Endwidth.\n\ndomain1 -domain2 -\n\t\t\n shape - - This menu selects the type of interpolation used between Startwidth and Endwidth.\n\n linear - easein - easeout - ease - cubic -\n\t\t\n symmetric - When this is selected, the Endwidth is positioned at the middlepoint on the curve between Domain1 and Domain2. Startwidth is placed at Domain1 and Domain2. The result is a symmetric surface.\n\n\n\n\n\n -\n\nExtra Information for the Line Thick 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\\n2021.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=Line_Thick_SOP&oldid=24264\"", "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:46.280Z", "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.", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Start Width", "label": "Start Width", "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": "startwidth - - Controls the width of the surface created at the start of the line. Startwidth1 adjusts the width on the inside of the curve, Startwidth2 adjusts the width on the outside of the curve.\n\nstartwidth1 -startwidth2 -", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "End Width", "label": "End Width", "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": "endwidth - - Controls the width of the surface created at the end of the line. Endwidth1 adjusts the width on the inside of the curve, Endwidth2 adjusts the width on the outside of the curve.\n\nendwidth1 -endwidth2 -", "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:46.280Z", "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": "divisions - Number of Divisions (Columns) in the surface geometry created.", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Rows", "label": "Rows", "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": "rows - Number of Rows in the surface geometry created.", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Domain", "label": "Domain", "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": "domain - - Fraction of the input curve that is used to create the new surface geometry. Domain1 sets position on the curve for Startwidth, Domain2 sets position on the curve for Endwidth.\n\ndomain1 -domain2 -", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Shape", "label": "Shape", "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": "shape - - This menu selects the type of interpolation used between Startwidth and Endwidth.\n\n linear - easein - easeout - ease - cubic -", "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:46.280Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Linear", "label": "Linear", "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": "linear - easein - easeout - ease - cubic -", "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:46.281Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Symmetric", "label": "Symmetric", "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": "symmetric - When this is selected, the Endwidth is positioned at the middlepoint on the curve between Domain1 and Domain2. Startwidth is placed at Domain1 and Domain2. The result is a symmetric surface.", "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:46.281Z", "rawData": {}, "sourceElement": null } ], "parameterGroups": {}, "codeExamples": [], "pythonExamples": [], "expressions": [], "commonInputs": [], "commonOutputs": [], "relatedOperators": [], "workflowPatterns": [], "images": [], "videos": [], "assets": [], "keywords": [ "line", "thick", "extrudes", "surface", "curved", "line.", "polygon,", "nurbs,", "bezier" ], "tags": [ "SOP", "TouchDesigner", "Line Thick" ], "searchWeight": 1, "contentHash": "", "processingDate": "2025-08-08T00:37:46.281Z", "processingVersion": "1.0.0", "isValid": true, "validationErrors": [] }