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

1,744 lines 87.7 kB
{
  "id": "basis",
  "name": "Basis",
  "displayName": "Basis",
  "category": "SOP",
  "subcategory": "Generators",
  "version": "",
  "lastUpdated": "2025-08-08T00:37:39.624Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Basis_SOP.htm",
  "url": "",
  "description": "The Basis SOP provides a set of operations applicable to the parametric space of spline curves and surfaces. The parametric space, also known as the \"domain\" of a NURBS or Bzier primitive, is defined by one basis in the U direction and, if the primitive is a surface, another basis in the V direction. The size of the domain is given by the values of the knots that make up the basis.",
  "summary": "The Basis SOP provides a set of operations applicable to the parametric space of spline curves and surfaces. The parametric space, also known as the \"domain\" of a NURBS or Bzier primitive, is defined ",
  "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 Basis  provides a set of operations applicable to the parametric space of spline curves and surfaces. The parametric space, also known as the \"domain\" of a NURBS or Bzier primitive, is defined by one basis in the U direction and, if the primitive is a surface, another basis in the V direction. The size of the domain is given by the values of the knots that make up the basis.\t\t\n\n\t\t\t\nThe Basis  contains both ratio-preserving and non ratio-preserving operations.\t\t\t\nIf the basis reparameterization does not change the distance ratios between knots, the shape of a NURBS primitive is not affected. If the ratios are not preserved, however, a NURBS primitive will change shape in the area influenced by the modified knots; furthermore, if the primitive is a NURBS or Bzier surface, any profiles it may contain will be affected as well.\t\t\t\nFor more information about bases and knots see Breakpoints, Knots, and Spline Basis in the Primitive and Spline articles.\nbasisSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  group - Group of spline primitives (accepts patterns, as described in: Scripting Guide). Non-spline types are ignored.\t\nTwo sets of pages follow, one for each parametric direction (U and V). In each set the operations are applied in tab order, starting from the left:  Parameterization, Mapping, and then raising the spline Order. To disable all the operations of a set, toggle off the U or V check mark above it. The V set is meaningful only for spline surfaces, and is ignored otherwise. Channel names are given for both the U and V pages.\n\n\n\n\n\n  ubasis - Enable editing of the U Basis.\n\n\n\n  uparmtype -  - Select the method of parameterization in u from the options below.\n\n nochange - Does not change the basis. uniform - Distributes all the knots evenly, maintaining the basis origin and length. Recommended only for regular shapes. chord - Computes the knot ratios based on the distances between successive CVs. This is the most common and most effective parameterization method. centripetal - Similar to the chord length method. Recommended for shapes containing sharp turns. manualone - Loads the basis with the knots listed in the \"Knot Sequence\" below. If the  input contains several primitives, only the basis of the first spline primitive will be affected. manualall - Same as above + it copies the basis to the basis of all the other spline primitives in the model or in the group. Using this feature on curves that have the point count and degree will generate cleaner surfaces, i.e. surfaces with fewer isoparms. slide - Shift clusters of knots within the basis. See  (From ) for discussion.\n\t\t\n  uknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  uread - Loads the original knots of the basis into the  field when the  type is .\n\n\n\t\t\n  urange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nurange1 -urange2 -\n\t\t\n  ubias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\n  uconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  udoorigin - Enables the Origin parameter.\n\n\n\t\t\n  uorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  udolength - Enables the Length parameter.\n\n\n\t\t\n  ulength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  udoscale - Enables the Scale parameter.\n\n\n\t\t\n  uscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  uraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderu - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n  vbasis - Enable editing of the V Basis.\n\n\n\t\t\t\n  vparmtype -  - Select the method of parameterization in v from the options below.\n\n nochange - uniform - chord - centripetal - manualone - manualall - slide -\n\t\t\n  vknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  vread - Loads the original knots of the basis into the  field when the  type is \n\n\n\t\t\n  vrange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nvrange1 -vrange2 -\n\t\t\n  vbias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\t\n  vconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  vdoorigin - Enables the Origin parameter.\n\n\n\t\t\n  vorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  vdolength - Enables the Length parameter.\n\n\n\t\t\n  vlength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  vdoscale - Enables the Scale parameter.\n\n\n\t\t\n  vscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  vraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderv - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n -\n\nExtra Information for the Basis  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=Basis_SOP&oldid=29698\"\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:39.612Z",
      "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 Basis  provides a set of operations applicable to the parametric space of spline curves and surfaces. The parametric space, also known as the \"domain\" of a NURBS or Bzier primitive, is defined by one basis in the U direction and, if the primitive is a surface, another basis in the V direction. The size of the domain is given by the values of the knots that make up the basis.\t\t\n\n\t\t\t\nThe Basis  contains both ratio-preserving and non ratio-preserving operations.\t\t\t\nIf the basis reparameterization does not change the distance ratios between knots, the shape of a NURBS primitive is not affected. If the ratios are not preserved, however, a NURBS primitive will change shape in the area influenced by the modified knots; furthermore, if the primitive is a NURBS or Bzier surface, any profiles it may contain will be affected as well.\t\t\t\nFor more information about bases and knots see Breakpoints, Knots, and Spline Basis in the Primitive and Spline articles.\nbasisSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  group - Group of spline primitives (accepts patterns, as described in: Scripting Guide). Non-spline types are ignored.\t\nTwo sets of pages follow, one for each parametric direction (U and V). In each set the operations are applied in tab order, starting from the left:  Parameterization, Mapping, and then raising the spline Order. To disable all the operations of a set, toggle off the U or V check mark above it. The V set is meaningful only for spline surfaces, and is ignored otherwise. Channel names are given for both the U and V pages.\n\n\n\n\n\n  ubasis - Enable editing of the U Basis.\n\n\n\n  uparmtype -  - Select the method of parameterization in u from the options below.\n\n nochange - Does not change the basis. uniform - Distributes all the knots evenly, maintaining the basis origin and length. Recommended only for regular shapes. chord - Computes the knot ratios based on the distances between successive CVs. This is the most common and most effective parameterization method. centripetal - Similar to the chord length method. Recommended for shapes containing sharp turns. manualone - Loads the basis with the knots listed in the \"Knot Sequence\" below. If the  input contains several primitives, only the basis of the first spline primitive will be affected. manualall - Same as above + it copies the basis to the basis of all the other spline primitives in the model or in the group. Using this feature on curves that have the point count and degree will generate cleaner surfaces, i.e. surfaces with fewer isoparms. slide - Shift clusters of knots within the basis. See  (From ) for discussion.\n\t\t\n  uknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  uread - Loads the original knots of the basis into the  field when the  type is .\n\n\n\t\t\n  urange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nurange1 -urange2 -\n\t\t\n  ubias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\n  uconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  udoorigin - Enables the Origin parameter.\n\n\n\t\t\n  uorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  udolength - Enables the Length parameter.\n\n\n\t\t\n  ulength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  udoscale - Enables the Scale parameter.\n\n\n\t\t\n  uscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  uraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderu - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n  vbasis - Enable editing of the V Basis.\n\n\n\t\t\t\n  vparmtype -  - Select the method of parameterization in v from the options below.\n\n nochange - uniform - chord - centripetal - manualone - manualall - slide -\n\t\t\n  vknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  vread - Loads the original knots of the basis into the  field when the  type is \n\n\n\t\t\n  vrange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nvrange1 -vrange2 -\n\t\t\n  vbias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\t\n  vconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  vdoorigin - Enables the Origin parameter.\n\n\n\t\t\n  vorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  vdolength - Enables the Length parameter.\n\n\n\t\t\n  vlength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  vdoscale - Enables the Scale parameter.\n\n\n\t\t\n  vscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  vraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderv - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n -\n\nExtra Information for the Basis  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=Basis_SOP&oldid=29698\"\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:39.613Z",
      "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 Basis  provides a set of operations applicable to the parametric space of spline curves and surfaces. The parametric space, also known as the \"domain\" of a NURBS or Bzier primitive, is defined by one basis in the U direction and, if the primitive is a surface, another basis in the V direction. The size of the domain is given by the values of the knots that make up the basis.\t\t\n\n\t\t\t\nThe Basis  contains both ratio-preserving and non ratio-preserving operations.\t\t\t\nIf the basis reparameterization does not change the distance ratios between knots, the shape of a NURBS primitive is not affected. If the ratios are not preserved, however, a NURBS primitive will change shape in the area influenced by the modified knots; furthermore, if the primitive is a NURBS or Bzier surface, any profiles it may contain will be affected as well.\t\t\t\nFor more information about bases and knots see Breakpoints, Knots, and Spline Basis in the Primitive and Spline articles.\nbasisSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  group - Group of spline primitives (accepts patterns, as described in: Scripting Guide). Non-spline types are ignored.\t\nTwo sets of pages follow, one for each parametric direction (U and V). In each set the operations are applied in tab order, starting from the left:  Parameterization, Mapping, and then raising the spline Order. To disable all the operations of a set, toggle off the U or V check mark above it. The V set is meaningful only for spline surfaces, and is ignored otherwise. Channel names are given for both the U and V pages.\n\n\n\n\n\n  ubasis - Enable editing of the U Basis.\n\n\n\n  uparmtype -  - Select the method of parameterization in u from the options below.\n\n nochange - Does not change the basis. uniform - Distributes all the knots evenly, maintaining the basis origin and length. Recommended only for regular shapes. chord - Computes the knot ratios based on the distances between successive CVs. This is the most common and most effective parameterization method. centripetal - Similar to the chord length method. Recommended for shapes containing sharp turns. manualone - Loads the basis with the knots listed in the \"Knot Sequence\" below. If the  input contains several primitives, only the basis of the first spline primitive will be affected. manualall - Same as above + it copies the basis to the basis of all the other spline primitives in the model or in the group. Using this feature on curves that have the point count and degree will generate cleaner surfaces, i.e. surfaces with fewer isoparms. slide - Shift clusters of knots within the basis. See  (From ) for discussion.\n\t\t\n  uknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  uread - Loads the original knots of the basis into the  field when the  type is .\n\n\n\t\t\n  urange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nurange1 -urange2 -\n\t\t\n  ubias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\n  uconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  udoorigin - Enables the Origin parameter.\n\n\n\t\t\n  uorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  udolength - Enables the Length parameter.\n\n\n\t\t\n  ulength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  udoscale - Enables the Scale parameter.\n\n\n\t\t\n  uscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  uraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderu - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n  vbasis - Enable editing of the V Basis.\n\n\n\t\t\t\n  vparmtype -  - Select the method of parameterization in v from the options below.\n\n nochange - uniform - chord - centripetal - manualone - manualall - slide -\n\t\t\n  vknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.\n\n\n\t\t\n  vread - Loads the original knots of the basis into the  field when the  type is \n\n\n\t\t\n  vrange -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\n\nvrange1 -vrange2 -\n\t\t\n  vbias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.\n\n\n\t\t\t\n  vconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.\n\n\n\t\t\n  vdoorigin - Enables the Origin parameter.\n\n\n\t\t\n  vorigin - The new origin of the basis, or the origin of the cummulated bases if  is .\n\n\n\t\t\n  vdolength - Enables the Length parameter.\n\n\n\t\t\n  vlength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.\n\n\n\t\t\n  vdoscale - Enables the Scale parameter.\n\n\n\t\t\n  vscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.\n\n\n\t\t\t\n  vraise - Enables the Raise to parameter.\n\n\n\t\t\n  orderv - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.\n\n\n\n\n\n -\n\nExtra Information for the Basis  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=Basis_SOP&oldid=29698\"",
      "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:39.622Z",
      "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 - Group of spline primitives (accepts patterns, as described in: Scripting Guide). Non-spline types are ignored.\t\nTwo sets of pages follow, one for each parametric direction (U and V). In each set the operations are applied in tab order, starting from the left:  Parameterization, Mapping, and then raising the spline Order. To disable all the operations of a set, toggle off the U or V check mark above it. The V set is meaningful only for spline surfaces, and is ignored otherwise. Channel names are given for both the U and V pages.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Edit the U Basis",
      "label": "Edit the U Basis",
      "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": "ubasis - Enable editing of the U Basis.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Parameterization",
      "label": "Parameterization",
      "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": "uparmtype -  - Select the method of parameterization in u from the options below.\n\n nochange - Does not change the basis. uniform - Distributes all the knots evenly, maintaining the basis origin and length. Recommended only for regular shapes. chord - Computes the knot ratios based on the distances between successive CVs. This is the most common and most effective parameterization method. centripetal - Similar to the chord length method. Recommended for shapes containing sharp turns. manualone - Loads the basis with the knots listed in the \"Knot Sequence\" below. If the  input contains several primitives, only the basis of the first spline primitive will be affected. manualall - Same as above + it copies the basis to the basis of all the other spline primitives in the model or in the group. Using this feature on curves that have the point count and degree will generate cleaner surfaces, i.e. surfaces with fewer isoparms. slide - Shift clusters of knots within the basis. See  (From ) for discussion.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Unchanged",
      "label": "Unchanged",
      "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": "nochange - Does not change the basis. uniform - Distributes all the knots evenly, maintaining the basis origin and length. Recommended only for regular shapes. chord - Computes the knot ratios based on the distances between successive CVs. This is the most common and most effective parameterization method. centripetal - Similar to the chord length method. Recommended for shapes containing sharp turns. manualone - Loads the basis with the knots listed in the \"Knot Sequence\" below. If the  input contains several primitives, only the basis of the first spline primitive will be affected. manualall - Same as above + it copies the basis to the basis of all the other spline primitives in the model or in the group. Using this feature on curves that have the point count and degree will generate cleaner surfaces, i.e. surfaces with fewer isoparms. slide - Shift clusters of knots within the basis. See  (From ) for discussion.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Knot Sequence",
      "label": "Knot Sequence",
      "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": "uknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Read Basis",
      "label": "Read Basis",
      "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": "uread - Loads the original knots of the basis into the  field when the  type is .",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Range",
      "label": "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 -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Bias",
      "label": "Bias",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "ubias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Concatenate",
      "label": "Concatenate",
      "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": "uconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Origin",
      "label": "Origin",
      "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": "udoorigin - Enables the Origin parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Origin",
      "label": "Origin",
      "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": "uorigin - The new origin of the basis, or the origin of the cummulated bases if  is .",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Length",
      "label": "Length",
      "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": "udolength - Enables the Length parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Length",
      "label": "Length",
      "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": "ulength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Scale",
      "label": "Scale",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "udoscale - Enables the Scale parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Scale",
      "label": "Scale",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "uscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Raise to",
      "label": "Raise to",
      "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": "uraise - Enables the Raise to parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Raise U to",
      "label": "Raise U to",
      "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": "orderu - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.",
      "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:39.622Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Edit the V Basis",
      "label": "Edit the V Basis",
      "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": "vbasis - Enable editing of the V Basis.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Parameterization",
      "label": "Parameterization",
      "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": "vparmtype -  - Select the method of parameterization in v from the options below.\n\n nochange - uniform - chord - centripetal - manualone - manualall - slide -",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Unchanged",
      "label": "Unchanged",
      "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": "nochange - uniform - chord - centripetal - manualone - manualall - slide -",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Knot Sequence",
      "label": "Knot Sequence",
      "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": "vknots - The basis of the first spline primitive in the input loads its knot sequence with the data specified in this field when the  is set to . The values must be in ascending order, and their total count must match the number of knots in the basis. To ensure an exact count, click on the  button to read the original knot sequence into this field.\t\nNote: Bezier bases cannot have repeated knots. NURBS bases accept repeated knots as long as the knot multiplicity does not exceed the degree of the basis. The first two and last two knots of a NURBS basis must be identical.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Read Basis",
      "label": "Read Basis",
      "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": "vread - Loads the original knots of the basis into the  field when the  type is",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Range",
      "label": "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 -  - Range specifies the domain interval to be shifted. All the knots captured in this range are shifted by the same amount as far as the closest neighbouring knot on either side.\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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Bias",
      "label": "Bias",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "vbias - Bias indicates the direction and the amount of translation. A  of 0.5 does not displace the knots at all. As the  decreases, the knot cluster migrates closer to its left-neighbouring knot. A  greater than 0.5 forces a migration to the right.\t\nSometimes a  of 0 or 1 does not clamp the knot cluster to the closest neighbouring knot. The reason for this behaviour is that the knot multiplicity cannot be allowed to exceed the  of the basis. For example, an order 4 (degree 3, or \"cubic\") spline can have at most 3 identical knots in sequence.\t\t\t\nWhen sliding the knot of a NURBS basis, a larger area of that spline is affected. This may create the impression than more knots than those in the cluster are being displaced.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Concatenate",
      "label": "Concatenate",
      "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": "vconcat - Indicates whether the bases of the input spline primitives should be concatenated such that the last knot of the first primitive coincides with the first knot of the second primitive, and so on. This operation is performed before the ones below it, thus allowing a whole set of bases to be mapped onto a given interval (usually [0,1]) while enforcing basis continuity.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Origin",
      "label": "Origin",
      "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": "vdoorigin - Enables the Origin parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Origin",
      "label": "Origin",
      "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": "vorigin - The new origin of the basis, or the origin of the cummulated bases if  is .",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Length",
      "label": "Length",
      "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": "vdolength - Enables the Length parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Length",
      "label": "Length",
      "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": "vlength - The new length of the basis, or the total length of the cummulated bases if  is . The , which represents the distance between the first and last knot, must be greater than zero.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Scale",
      "label": "Scale",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "vdoscale - Enables the Scale parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Scale",
      "label": "Scale",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "vscale - The multiplier applied to the basis starting at the basis origin. The  must be greater than zero.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Raise to",
      "label": "Raise to",
      "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": "vraise - Enables the Raise to parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:39.623Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Raise V to",
      "label": "Raise V to",
      "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": "orderv - The only operation here is raising the order (or degree) of the spline basis. Valid orders range from 2 to 11. Orders lower than the current spline order are ignored. The operation preserves the shape of the primitive.\t\nProduction Tip: Before applying a spline-based texture projection with the Texture , remap the U and/or V bases of the spline surface between 0 and 1 to ensure a complete mapping of the texture. If a single texture map must be shared by several surfaces, the surface bases should be concatenated prior to being remapped.",
      "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:39.623Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "basis",
    "provides",
    "operations",
    "applicable",
    "parametric",
    "space",
    "spline",
    "curves",
    "surfaces."
  ],
  "tags": [
    "SOP",
    "TouchDesigner",
    "Basis"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-08T00:37:39.624Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}