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

894 lines 49.6 kB
{ "id": "profile", "name": "Profile", "displayName": "Profile", "category": "SOP", "subcategory": "Generators", "version": "", "lastUpdated": "2025-08-08T00:37:51.525Z", "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Profile_SOP.htm", "url": "", "description": "The Profile SOP enables the extraction and manipulation of profiles.", "summary": "The Profile SOP enables the extraction and manipulation of profiles.", "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 Profile enables the extraction and manipulation of profiles.\t\t\nYou will usually need a Trim SOP, Bridge SOP, or Profile after a Project SOP. Use a Trim to cut a hole in the projected surface. Use a Bridge to skin the profile curve to another profile curve.\nprofileSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n group - This field allows you to specify the particular group of curves on the surface. Other primitives are ignored. You can specify profile curves within the group by providing a profile pattern (e.g. *.3 specifies the fourth profile in all spline surfaces).\n\n\n \n method - - This menu allows you to extract a stand-alone 3D curve as the world or parametric image of the profile. The non-parametric option will yield a curve whose shape and position in space are identical or very similar to those of the chosen profile. The parametric option will produce a planar, XY face whose vertices and type will be identical to those of the profile in 2D; also, if the profile is a spline it will have the same basis as the extracted curve.\n\n extract - Use the extraction parameters below to extract a 3D curve from the profile. remap - Use parametric parameters below to produce a planar face from the profile.\n\n parametric - If Fitted (this option not checked), the profile will be a spatial NURBS curve whose position and shape in space will be identical to the curve on surface. It may very well be non-planar. If Extracted Parametrically (this option checked), the result will extract the profile's parametric image as a 3D face, which will be a planar face in XY whose type (polygon, Bzier, NURBS) will the same as the profile's, and whose vertices match the profile CVs. This, however, does not guarantee spatial coincidence between profile and extracted curve, and is more of an analytical tool.\t\nTip: A profile extracted parametrically can be reapplied to the surface identically with the Project by choosing the Parametric option with no Mapping to Range. Use this method to extract the profile, pull its points or edit it as you would any 3D face, then re-project it on the surface at the same location.\n\n\n\t\t\n smooth - If enabled, it will fit a spline through the extracted points. This parameter is disabled when extracting the profile parametrically. Disable this parameter in order to bypass the fitting process which might be both expensive (in processing speed) and unnecessary when extracting profiles produced by boolean operations (see Surfsect SOP).\n\n\n\t\t\n sdivs - The number of points per span to be computed on the profile. A span is the line connecting two consecutive CVs on a polygon, or the arc between two breakpoints on a spline curve. The profile tends to become more accurate as the number of divisions is higher.\n\n\n\t\t\n tolerance - This parameter specifies the precision of the fitting process for the extracted 3D data, and is typically less than 0.01.\n\n\n\t\t\n order - The spline order of the resulting 3D curve. The type of curve (Bzier or NURBS) is inherited from the spatial curve. The order, however, is not inherited because the spline order provides useful control over the quality of the fit. If the profile is a polygon, the spatial curve will be a NURBS curve.\n\n\n\t\t\n csharp - Controls the precision with which sharp corners in the profile curve are interpolated. It should be on when the profile has areas of high changes in curvature.\n\n\n\t\t\n keepsurf - Specifies whether the parent surface should be removed after the extraction or not.\n\n\n\t\t\n delprof - When Keep Surface parameter is On, select whether to leave or delete the original profile.\n\n\n\t\t\t\n maptype - - Select how to reposition and scale an existing profile to fit within the specified domain range. It is a good means of bringing an invisible profile into view by setting the mapping range between 0 and 1 in the U and V parametric directions. A profile mapped outside the unit domain becomes invisible but is not removed from the surface. Other ways to change a profile are available through the Primitive SOP.\n\n unif - Uniform converts the spatial coordinates of the profile to (U,V) points in the domain of the surface without taking into account the parameterization of the surface. chordlen - Chord Length takes into account the surface parameterization and attempts to compute a profile best suited to the spatial and parametric determinants of the model.\n\t\n urange - - Indicates in percentages what part of the U surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the U parametric direction. The range is not restricted to the 0-1 interval.\n\nurange1 -urange2 -\n\t\t\n vrange - - Indicates in percentages what part of the V surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the V parametric direction. The range is not restricted to the 0-1 interval.\n\nvrange1 -vrange2 -\n\n\n\n -\n\nExtra Information for the Profile 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=Profile_SOP&oldid=24221\"\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:51.520Z", "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 Profile enables the extraction and manipulation of profiles.\t\t\nYou will usually need a Trim SOP, Bridge SOP, or Profile after a Project SOP. Use a Trim to cut a hole in the projected surface. Use a Bridge to skin the profile curve to another profile curve.\nprofileSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n group - This field allows you to specify the particular group of curves on the surface. Other primitives are ignored. You can specify profile curves within the group by providing a profile pattern (e.g. *.3 specifies the fourth profile in all spline surfaces).\n\n\n \n method - - This menu allows you to extract a stand-alone 3D curve as the world or parametric image of the profile. The non-parametric option will yield a curve whose shape and position in space are identical or very similar to those of the chosen profile. The parametric option will produce a planar, XY face whose vertices and type will be identical to those of the profile in 2D; also, if the profile is a spline it will have the same basis as the extracted curve.\n\n extract - Use the extraction parameters below to extract a 3D curve from the profile. remap - Use parametric parameters below to produce a planar face from the profile.\n\n parametric - If Fitted (this option not checked), the profile will be a spatial NURBS curve whose position and shape in space will be identical to the curve on surface. It may very well be non-planar. If Extracted Parametrically (this option checked), the result will extract the profile's parametric image as a 3D face, which will be a planar face in XY whose type (polygon, Bzier, NURBS) will the same as the profile's, and whose vertices match the profile CVs. This, however, does not guarantee spatial coincidence between profile and extracted curve, and is more of an analytical tool.\t\nTip: A profile extracted parametrically can be reapplied to the surface identically with the Project by choosing the Parametric option with no Mapping to Range. Use this method to extract the profile, pull its points or edit it as you would any 3D face, then re-project it on the surface at the same location.\n\n\n\t\t\n smooth - If enabled, it will fit a spline through the extracted points. This parameter is disabled when extracting the profile parametrically. Disable this parameter in order to bypass the fitting process which might be both expensive (in processing speed) and unnecessary when extracting profiles produced by boolean operations (see Surfsect SOP).\n\n\n\t\t\n sdivs - The number of points per span to be computed on the profile. A span is the line connecting two consecutive CVs on a polygon, or the arc between two breakpoints on a spline curve. The profile tends to become more accurate as the number of divisions is higher.\n\n\n\t\t\n tolerance - This parameter specifies the precision of the fitting process for the extracted 3D data, and is typically less than 0.01.\n\n\n\t\t\n order - The spline order of the resulting 3D curve. The type of curve (Bzier or NURBS) is inherited from the spatial curve. The order, however, is not inherited because the spline order provides useful control over the quality of the fit. If the profile is a polygon, the spatial curve will be a NURBS curve.\n\n\n\t\t\n csharp - Controls the precision with which sharp corners in the profile curve are interpolated. It should be on when the profile has areas of high changes in curvature.\n\n\n\t\t\n keepsurf - Specifies whether the parent surface should be removed after the extraction or not.\n\n\n\t\t\n delprof - When Keep Surface parameter is On, select whether to leave or delete the original profile.\n\n\n\t\t\t\n maptype - - Select how to reposition and scale an existing profile to fit within the specified domain range. It is a good means of bringing an invisible profile into view by setting the mapping range between 0 and 1 in the U and V parametric directions. A profile mapped outside the unit domain becomes invisible but is not removed from the surface. Other ways to change a profile are available through the Primitive SOP.\n\n unif - Uniform converts the spatial coordinates of the profile to (U,V) points in the domain of the surface without taking into account the parameterization of the surface. chordlen - Chord Length takes into account the surface parameterization and attempts to compute a profile best suited to the spatial and parametric determinants of the model.\n\t\n urange - - Indicates in percentages what part of the U surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the U parametric direction. The range is not restricted to the 0-1 interval.\n\nurange1 -urange2 -\n\t\t\n vrange - - Indicates in percentages what part of the V surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the V parametric direction. The range is not restricted to the 0-1 interval.\n\nvrange1 -vrange2 -\n\n\n\n -\n\nExtra Information for the Profile 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=Profile_SOP&oldid=24221\"\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:51.522Z", "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 Profile enables the extraction and manipulation of profiles.\t\t\nYou will usually need a Trim SOP, Bridge SOP, or Profile after a Project SOP. Use a Trim to cut a hole in the projected surface. Use a Bridge to skin the profile curve to another profile curve.\nprofileSOP_Class\n\nContents\n \n \n \n \n \n \n\n\n\n\n\n group - This field allows you to specify the particular group of curves on the surface. Other primitives are ignored. You can specify profile curves within the group by providing a profile pattern (e.g. *.3 specifies the fourth profile in all spline surfaces).\n\n\n \n method - - This menu allows you to extract a stand-alone 3D curve as the world or parametric image of the profile. The non-parametric option will yield a curve whose shape and position in space are identical or very similar to those of the chosen profile. The parametric option will produce a planar, XY face whose vertices and type will be identical to those of the profile in 2D; also, if the profile is a spline it will have the same basis as the extracted curve.\n\n extract - Use the extraction parameters below to extract a 3D curve from the profile. remap - Use parametric parameters below to produce a planar face from the profile.\n\n parametric - If Fitted (this option not checked), the profile will be a spatial NURBS curve whose position and shape in space will be identical to the curve on surface. It may very well be non-planar. If Extracted Parametrically (this option checked), the result will extract the profile's parametric image as a 3D face, which will be a planar face in XY whose type (polygon, Bzier, NURBS) will the same as the profile's, and whose vertices match the profile CVs. This, however, does not guarantee spatial coincidence between profile and extracted curve, and is more of an analytical tool.\t\nTip: A profile extracted parametrically can be reapplied to the surface identically with the Project by choosing the Parametric option with no Mapping to Range. Use this method to extract the profile, pull its points or edit it as you would any 3D face, then re-project it on the surface at the same location.\n\n\n\t\t\n smooth - If enabled, it will fit a spline through the extracted points. This parameter is disabled when extracting the profile parametrically. Disable this parameter in order to bypass the fitting process which might be both expensive (in processing speed) and unnecessary when extracting profiles produced by boolean operations (see Surfsect SOP).\n\n\n\t\t\n sdivs - The number of points per span to be computed on the profile. A span is the line connecting two consecutive CVs on a polygon, or the arc between two breakpoints on a spline curve. The profile tends to become more accurate as the number of divisions is higher.\n\n\n\t\t\n tolerance - This parameter specifies the precision of the fitting process for the extracted 3D data, and is typically less than 0.01.\n\n\n\t\t\n order - The spline order of the resulting 3D curve. The type of curve (Bzier or NURBS) is inherited from the spatial curve. The order, however, is not inherited because the spline order provides useful control over the quality of the fit. If the profile is a polygon, the spatial curve will be a NURBS curve.\n\n\n\t\t\n csharp - Controls the precision with which sharp corners in the profile curve are interpolated. It should be on when the profile has areas of high changes in curvature.\n\n\n\t\t\n keepsurf - Specifies whether the parent surface should be removed after the extraction or not.\n\n\n\t\t\n delprof - When Keep Surface parameter is On, select whether to leave or delete the original profile.\n\n\n\t\t\t\n maptype - - Select how to reposition and scale an existing profile to fit within the specified domain range. It is a good means of bringing an invisible profile into view by setting the mapping range between 0 and 1 in the U and V parametric directions. A profile mapped outside the unit domain becomes invisible but is not removed from the surface. Other ways to change a profile are available through the Primitive SOP.\n\n unif - Uniform converts the spatial coordinates of the profile to (U,V) points in the domain of the surface without taking into account the parameterization of the surface. chordlen - Chord Length takes into account the surface parameterization and attempts to compute a profile best suited to the spatial and parametric determinants of the model.\n\t\n urange - - Indicates in percentages what part of the U surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the U parametric direction. The range is not restricted to the 0-1 interval.\n\nurange1 -urange2 -\n\t\t\n vrange - - Indicates in percentages what part of the V surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the V parametric direction. The range is not restricted to the 0-1 interval.\n\nvrange1 -vrange2 -\n\n\n\n -\n\nExtra Information for the Profile 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=Profile_SOP&oldid=24221\"", "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:51.524Z", "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 - This field allows you to specify the particular group of curves on the surface. Other primitives are ignored. You can specify profile curves within the group by providing a profile pattern (e.g. *.3 specifies the fourth profile in all spline surfaces).", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Method", "label": "Method", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "method - - This menu allows you to extract a stand-alone 3D curve as the world or parametric image of the profile. The non-parametric option will yield a curve whose shape and position in space are identical or very similar to those of the chosen profile. The parametric option will produce a planar, XY face whose vertices and type will be identical to those of the profile in 2D; also, if the profile is a spline it will have the same basis as the extracted curve.\n\n extract - Use the extraction parameters below to extract a 3D curve from the profile. remap - Use parametric parameters below to produce a planar face from the profile.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Extract", "label": "Extract", "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": "extract - Use the extraction parameters below to extract a 3D curve from the profile. remap - Use parametric parameters below to produce a planar face from the profile.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Parametrically to X Y", "label": "Parametrically to X Y", "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": "parametric - If Fitted (this option not checked), the profile will be a spatial NURBS curve whose position and shape in space will be identical to the curve on surface. It may very well be non-planar. If Extracted Parametrically (this option checked), the result will extract the profile's parametric image as a 3D face, which will be a planar face in XY whose type (polygon, Bzier, NURBS) will the same as the profile's, and whose vertices match the profile CVs. This, however, does not guarantee spatial coincidence between profile and extracted curve, and is more of an analytical tool.\t\nTip: A profile extracted parametrically can be reapplied to the surface identically with the Project by choosing the Parametric option with no Mapping to Range. Use this method to extract the profile, pull its points or edit it as you would any 3D face, then re-project it on the surface at the same location.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Smooth Curve", "label": "Smooth Curve", "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 enabled, it will fit a spline through the extracted points. This parameter is disabled when extracting the profile parametrically. Disable this parameter in order to bypass the fitting process which might be both expensive (in processing speed) and unnecessary when extracting profiles produced by boolean operations (see Surfsect SOP).", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Divisions per Span", "label": "Divisions per Span", "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": "sdivs - The number of points per span to be computed on the profile. A span is the line connecting two consecutive CVs on a polygon, or the arc between two breakpoints on a spline curve. The profile tends to become more accurate as the number of divisions is higher.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Tolerance", "label": "Tolerance", "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": "tolerance - This parameter specifies the precision of the fitting process for the extracted 3D data, and is typically less than 0.01.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Order", "label": "Order", "group": "General", "page": "", "type": "float", "dataType": "number", "style": "", "defaultValue": null, "minValue": null, "maxValue": null, "step": null, "menuItems": [], "menuLabels": [], "allowCustom": false, "maxLength": null, "pattern": null, "isArray": false, "arraySize": 1, "dimensions": 1, "description": "order - The spline order of the resulting 3D curve. The type of curve (Bzier or NURBS) is inherited from the spatial curve. The order, however, is not inherited because the spline order provides useful control over the quality of the fit. If the profile is a polygon, the spatial curve will be a NURBS curve.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Preserve Sharp Corners", "label": "Preserve Sharp Corners", "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": "csharp - Controls the precision with which sharp corners in the profile curve are interpolated. It should be on when the profile has areas of high changes in curvature.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Keep Surface", "label": "Keep Surface", "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": "keepsurf - Specifies whether the parent surface should be removed after the extraction or not.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Delete Original Profile", "label": "Delete Original Profile", "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": "delprof - When Keep Surface parameter is On, select whether to leave or delete the original profile.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Mapping Type", "label": "Mapping Type", "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": "maptype - - Select how to reposition and scale an existing profile to fit within the specified domain range. It is a good means of bringing an invisible profile into view by setting the mapping range between 0 and 1 in the U and V parametric directions. A profile mapped outside the unit domain becomes invisible but is not removed from the surface. Other ways to change a profile are available through the Primitive SOP.\n\n unif - Uniform converts the spatial coordinates of the profile to (U,V) points in the domain of the surface without taking into account the parameterization of the surface. chordlen - Chord Length takes into account the surface parameterization and attempts to compute a profile best suited to the spatial and parametric determinants of the model.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "Uniform", "label": "Uniform", "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": "unif - Uniform converts the spatial coordinates of the profile to (U,V) points in the domain of the surface without taking into account the parameterization of the surface. chordlen - Chord Length takes into account the surface parameterization and attempts to compute a profile best suited to the spatial and parametric determinants of the model.", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "U Range", "label": "U Range", "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": "urange - - Indicates in percentages what part of the U surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the U parametric direction. The range is not restricted to the 0-1 interval.\n\nurange1 -urange2 -", "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:51.524Z", "rawData": {}, "sourceElement": null }, { "id": null, "name": "V Range", "label": "V Range", "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": "vrange - - Indicates in percentages what part of the V surface domain is the mapping area. A full range of 0-1 will cause the profiles to be mapped to the entire domain in the V parametric direction. The range is not restricted to the 0-1 interval.\n\nvrange1 -vrange2 -", "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:51.525Z", "rawData": {}, "sourceElement": null } ], "parameterGroups": {}, "codeExamples": [], "pythonExamples": [], "expressions": [], "commonInputs": [], "commonOutputs": [], "relatedOperators": [], "workflowPatterns": [], "images": [], "videos": [], "assets": [], "keywords": [ "profile", "enables", "extraction", "manipulation", "profiles." ], "tags": [ "SOP", "TouchDesigner", "Profile" ], "searchWeight": 1, "contentHash": "", "processingDate": "2025-08-08T00:37:51.525Z", "processingVersion": "1.0.0", "isValid": true, "validationErrors": [] }