{
  "id": "limit_sop",
  "name": "Limit SOP",
  "displayName": "Limit SOP",
  "category": "SOP",
  "subcategory": "Generators",
  "version": "",
  "lastUpdated": "2025-08-07T07:50:03.227Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Limit_SOP.htm",
  "url": "",
  "description": "The Limit SOP creates geometry from samples fed to it by CHOPs. It creates geometry at every point in the sample. Different types of geometry can be created using the Output Type parameter on the Channels Page.",
  "summary": "The Limit SOP creates geometry from samples fed to it by CHOPs. It creates geometry at every point in the sample. Different types of geometry can be created using the Output Type parameter on the Chan",
  "details": "",
  "usage": "",
  "tips": [],
  "warnings": [],
  "parameters": [
    {
      "id": null,
      "name": "CHOP",
      "label": "CHOP",
      "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 Limit  creates geometry from samples fed to it by CHOPs. It creates geometry at every point in the sample. Different types of geometry can be created using the Output Type parameter on the Channels Page.\nlimitSOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n  chop - Specifies which  Network /  contains the sample data to fetch.\n\n\n\n  rord -  - Specifies the order in which the Rotate Channel X / Y / Z channels are applied.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\n  chanx - Channels used to specify the point's positions, tx.\n\n\n\n  chany - Channels used to specify the point's positions, ty.\n\n\n\n  chanz - Channels used to specify the point's positions, tz.\n\n\n\n  chanrx - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanry - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrz - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrad - Uniformly controls the radius of the geometry created at each point. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradx - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanrady - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradz - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanalpha - Controls the point alpha, giving you alpha control of any geometry created at those points.\t\nNote: If using a Copy SOP, turn on the Use Template   option in the Copy 's  Page to allow the geometry to inherit the point attributes.\n\n\n\n  chanr - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chang - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chanb - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  texturew - Controls the w texture-offset for the point(s) This is most often used as a frame-offset or time-offset, expressed in # of frames from the current frame or frame 1 of an image sequence.\n\n\n\n\n\nAllows custom attributes to be added to the geometry created. Use the + button to add additional parameters to add more custom attributes.\n\n  customattr - Sequence of custom attributes to be added to the geometry created.\n\n\n\n  customattr0name - Specify the name of the custom attribute, for example pscale, age, or any custom name.\n\n\n\n  customattr0chan0 - Select which channel to assign to the [0] index of the attribute. ie. pscale[0]\n\n\n\n  customattr0chan1 - Select which channel to assign to the [1] index of the attribute. ie. pscale[1]\n\n\n\n  customattr0chan2 - Select which channel to assign to the [2] index of the attribute. ie. pscale[2]\n\n\n\n  customattr0chan3 - Select which channel to assign to the [3] index of the attribute. ie. pscale[3]\n\n\n\n\n\n\n  output -  - The type of geometry the Limit  produces from its sample data.\n\n line - Creates a point for each sample and connects them with a polygonal line. polys - Places a polygon at each sample point. Number of points in polygon defined by Divisions. circles - Places a primitive circle at each sample point. spheres - Places a primitive sphere at each smaple point. polyspheres - Places a polygonal sphere at each sample point. Sphere's frequency defined by Divisions. tubes - Creates a tube down the path. Tubes cross-section defined by Divisions. strips - Creates a strip down the path. Number of points in strip defined by Divisions.\n\n  divisions - Only works on the following Output Types.\t\n at Each  - Number of points per polygon.\nPoly Sphere at Each  - Frequency of each Polygonal Sphere.\nTubes - Number of points in cross-section of the tube.\nStrips - Number of points in cross-section of the strip.\n\n\n  rad - Radius of geometry created. Disabled for \"Polygonal Line\".\n\n\n\n  flipsmooth - Dynamically controls the twist of each instance of geometry on a series of points to avoid frame-by-frame flipping, which can sometimes occur when geometry is oriented along a path.\n\n\n\n  dolimit -  - Creates a bounding box for the position of the output geometry. Drop down menu determines behavior when outside bounded region.\n\n off - Bounding region off. clamp - Clamps position to specified value. loop - Loops position between bounded region. zigzag - Zigzags position back and forth between bounded region.\n\n  xlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nxlimitmin -xlimitmax -\n\n  ylimit -  - Parameters to set edges of bounding region when Limit is active.\n\nylimitmin -ylimitmax -\n\n  zlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nzlimitmin -zlimitmax -\n\n  texture - Applys u, v, and w texture coordinates to the created geometry.\n\n\n\n  texscale -  - Scales the texture coordinates a specific amount.\n\ntexscale1 -texscale2 -\n\n  texoffset -  - Offsets the texture coordinates a specific amount.\n\ntexoffset1 -texoffset2 -\n\n  orient - If this option is selected, the object will be oriented along the path. To see what the path looks like, change the Output Type to \"Polygonal Line\". When the Output Type is \"/ Circle at Each \", the positive Z axis of each object will be pointing down the path. When the Output Type is \"Tubes/Strips\" then the cross-section of the geometry created will be pointing down the path.\n\n\n\n  lookat - Orient to  must be checked for Lookat Object to have any effect. This allows you to orient your geometry by naming the object you would like it to Look At, or point to. Once you have designated this object to look at, it will continue to face that object, even if you move it. The Look At parameter points the each piece of geometry at the other object's origin individually.\n\n\n\n  dorotate -  - Rotate the geometry at each point using the Rotate parameter (below). Only works for Output Type is \"/ Circle at Each \".\n\n off - Do not rotate polys. Rotate parameter is greyed out. on - Add value of Rotate to polys equally. cum - Add value of Rotate to polys cumulatively (ie. increasing with each poly).\n\n  rotate -  - Rotation channels rx, ry, and rz for Rotate Polys parameter.\n\n rotatex - rotatey - rotatez -\n\n  normals - Computes normals for the geometry created.\n\n\n\n\n\nExtra Information for the Limit  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\\nwikieditorwikieditorwikieditor2021.100002020.200002018.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\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nInformation associated with SOP geometry. Points and primitives (polygons, NURBS, etc.) can have any number of attributes - position (P) is standard, and built-in optional attributes are normals (N), texture coordinates (uv), color (Cd), etc.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\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=Limit_SOP&oldid=32299\"\n\t\tCategory: SOPs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.221Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "CHOP",
      "label": "CHOP",
      "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 Limit  creates geometry from samples fed to it by CHOPs. It creates geometry at every point in the sample. Different types of geometry can be created using the Output Type parameter on the Channels Page.\nlimitSOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n  chop - Specifies which  Network /  contains the sample data to fetch.\n\n\n\n  rord -  - Specifies the order in which the Rotate Channel X / Y / Z channels are applied.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\n  chanx - Channels used to specify the point's positions, tx.\n\n\n\n  chany - Channels used to specify the point's positions, ty.\n\n\n\n  chanz - Channels used to specify the point's positions, tz.\n\n\n\n  chanrx - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanry - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrz - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrad - Uniformly controls the radius of the geometry created at each point. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradx - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanrady - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradz - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanalpha - Controls the point alpha, giving you alpha control of any geometry created at those points.\t\nNote: If using a Copy SOP, turn on the Use Template   option in the Copy 's  Page to allow the geometry to inherit the point attributes.\n\n\n\n  chanr - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chang - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chanb - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  texturew - Controls the w texture-offset for the point(s) This is most often used as a frame-offset or time-offset, expressed in # of frames from the current frame or frame 1 of an image sequence.\n\n\n\n\n\nAllows custom attributes to be added to the geometry created. Use the + button to add additional parameters to add more custom attributes.\n\n  customattr - Sequence of custom attributes to be added to the geometry created.\n\n\n\n  customattr0name - Specify the name of the custom attribute, for example pscale, age, or any custom name.\n\n\n\n  customattr0chan0 - Select which channel to assign to the [0] index of the attribute. ie. pscale[0]\n\n\n\n  customattr0chan1 - Select which channel to assign to the [1] index of the attribute. ie. pscale[1]\n\n\n\n  customattr0chan2 - Select which channel to assign to the [2] index of the attribute. ie. pscale[2]\n\n\n\n  customattr0chan3 - Select which channel to assign to the [3] index of the attribute. ie. pscale[3]\n\n\n\n\n\n\n  output -  - The type of geometry the Limit  produces from its sample data.\n\n line - Creates a point for each sample and connects them with a polygonal line. polys - Places a polygon at each sample point. Number of points in polygon defined by Divisions. circles - Places a primitive circle at each sample point. spheres - Places a primitive sphere at each smaple point. polyspheres - Places a polygonal sphere at each sample point. Sphere's frequency defined by Divisions. tubes - Creates a tube down the path. Tubes cross-section defined by Divisions. strips - Creates a strip down the path. Number of points in strip defined by Divisions.\n\n  divisions - Only works on the following Output Types.\t\n at Each  - Number of points per polygon.\nPoly Sphere at Each  - Frequency of each Polygonal Sphere.\nTubes - Number of points in cross-section of the tube.\nStrips - Number of points in cross-section of the strip.\n\n\n  rad - Radius of geometry created. Disabled for \"Polygonal Line\".\n\n\n\n  flipsmooth - Dynamically controls the twist of each instance of geometry on a series of points to avoid frame-by-frame flipping, which can sometimes occur when geometry is oriented along a path.\n\n\n\n  dolimit -  - Creates a bounding box for the position of the output geometry. Drop down menu determines behavior when outside bounded region.\n\n off - Bounding region off. clamp - Clamps position to specified value. loop - Loops position between bounded region. zigzag - Zigzags position back and forth between bounded region.\n\n  xlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nxlimitmin -xlimitmax -\n\n  ylimit -  - Parameters to set edges of bounding region when Limit is active.\n\nylimitmin -ylimitmax -\n\n  zlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nzlimitmin -zlimitmax -\n\n  texture - Applys u, v, and w texture coordinates to the created geometry.\n\n\n\n  texscale -  - Scales the texture coordinates a specific amount.\n\ntexscale1 -texscale2 -\n\n  texoffset -  - Offsets the texture coordinates a specific amount.\n\ntexoffset1 -texoffset2 -\n\n  orient - If this option is selected, the object will be oriented along the path. To see what the path looks like, change the Output Type to \"Polygonal Line\". When the Output Type is \"/ Circle at Each \", the positive Z axis of each object will be pointing down the path. When the Output Type is \"Tubes/Strips\" then the cross-section of the geometry created will be pointing down the path.\n\n\n\n  lookat - Orient to  must be checked for Lookat Object to have any effect. This allows you to orient your geometry by naming the object you would like it to Look At, or point to. Once you have designated this object to look at, it will continue to face that object, even if you move it. The Look At parameter points the each piece of geometry at the other object's origin individually.\n\n\n\n  dorotate -  - Rotate the geometry at each point using the Rotate parameter (below). Only works for Output Type is \"/ Circle at Each \".\n\n off - Do not rotate polys. Rotate parameter is greyed out. on - Add value of Rotate to polys equally. cum - Add value of Rotate to polys cumulatively (ie. increasing with each poly).\n\n  rotate -  - Rotation channels rx, ry, and rz for Rotate Polys parameter.\n\n rotatex - rotatey - rotatez -\n\n  normals - Computes normals for the geometry created.\n\n\n\n\n\nExtra Information for the Limit  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\\nwikieditorwikieditorwikieditor2021.100002020.200002018.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\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nInformation associated with SOP geometry. Points and primitives (polygons, NURBS, etc.) can have any number of attributes - position (P) is standard, and built-in optional attributes are normals (N), texture coordinates (uv), color (Cd), etc.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\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=Limit_SOP&oldid=32299\"\n\t\tCategory: SOPs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.222Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "CHOP",
      "label": "CHOP",
      "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 Limit  creates geometry from samples fed to it by CHOPs. It creates geometry at every point in the sample. Different types of geometry can be created using the Output Type parameter on the Channels Page.\nlimitSOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n  chop - Specifies which  Network /  contains the sample data to fetch.\n\n\n\n  rord -  - Specifies the order in which the Rotate Channel X / Y / Z channels are applied.\n\n xyz - xzy - yxz - yzx - zxy - zyx -\n\n  chanx - Channels used to specify the point's positions, tx.\n\n\n\n  chany - Channels used to specify the point's positions, ty.\n\n\n\n  chanz - Channels used to specify the point's positions, tz.\n\n\n\n  chanrx - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanry - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrz - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".\n\n\n\n  chanrad - Uniformly controls the radius of the geometry created at each point. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradx - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanrady - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanradz - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.\n\n\n\n  chanalpha - Controls the point alpha, giving you alpha control of any geometry created at those points.\t\nNote: If using a Copy SOP, turn on the Use Template   option in the Copy 's  Page to allow the geometry to inherit the point attributes.\n\n\n\n  chanr - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chang - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  chanb - These channels control the point color, or the color of any geometry created at those points.\n\n\n\n  texturew - Controls the w texture-offset for the point(s) This is most often used as a frame-offset or time-offset, expressed in # of frames from the current frame or frame 1 of an image sequence.\n\n\n\n\n\nAllows custom attributes to be added to the geometry created. Use the + button to add additional parameters to add more custom attributes.\n\n  customattr - Sequence of custom attributes to be added to the geometry created.\n\n\n\n  customattr0name - Specify the name of the custom attribute, for example pscale, age, or any custom name.\n\n\n\n  customattr0chan0 - Select which channel to assign to the [0] index of the attribute. ie. pscale[0]\n\n\n\n  customattr0chan1 - Select which channel to assign to the [1] index of the attribute. ie. pscale[1]\n\n\n\n  customattr0chan2 - Select which channel to assign to the [2] index of the attribute. ie. pscale[2]\n\n\n\n  customattr0chan3 - Select which channel to assign to the [3] index of the attribute. ie. pscale[3]\n\n\n\n\n\n\n  output -  - The type of geometry the Limit  produces from its sample data.\n\n line - Creates a point for each sample and connects them with a polygonal line. polys - Places a polygon at each sample point. Number of points in polygon defined by Divisions. circles - Places a primitive circle at each sample point. spheres - Places a primitive sphere at each smaple point. polyspheres - Places a polygonal sphere at each sample point. Sphere's frequency defined by Divisions. tubes - Creates a tube down the path. Tubes cross-section defined by Divisions. strips - Creates a strip down the path. Number of points in strip defined by Divisions.\n\n  divisions - Only works on the following Output Types.\t\n at Each  - Number of points per polygon.\nPoly Sphere at Each  - Frequency of each Polygonal Sphere.\nTubes - Number of points in cross-section of the tube.\nStrips - Number of points in cross-section of the strip.\n\n\n  rad - Radius of geometry created. Disabled for \"Polygonal Line\".\n\n\n\n  flipsmooth - Dynamically controls the twist of each instance of geometry on a series of points to avoid frame-by-frame flipping, which can sometimes occur when geometry is oriented along a path.\n\n\n\n  dolimit -  - Creates a bounding box for the position of the output geometry. Drop down menu determines behavior when outside bounded region.\n\n off - Bounding region off. clamp - Clamps position to specified value. loop - Loops position between bounded region. zigzag - Zigzags position back and forth between bounded region.\n\n  xlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nxlimitmin -xlimitmax -\n\n  ylimit -  - Parameters to set edges of bounding region when Limit is active.\n\nylimitmin -ylimitmax -\n\n  zlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nzlimitmin -zlimitmax -\n\n  texture - Applys u, v, and w texture coordinates to the created geometry.\n\n\n\n  texscale -  - Scales the texture coordinates a specific amount.\n\ntexscale1 -texscale2 -\n\n  texoffset -  - Offsets the texture coordinates a specific amount.\n\ntexoffset1 -texoffset2 -\n\n  orient - If this option is selected, the object will be oriented along the path. To see what the path looks like, change the Output Type to \"Polygonal Line\". When the Output Type is \"/ Circle at Each \", the positive Z axis of each object will be pointing down the path. When the Output Type is \"Tubes/Strips\" then the cross-section of the geometry created will be pointing down the path.\n\n\n\n  lookat - Orient to  must be checked for Lookat Object to have any effect. This allows you to orient your geometry by naming the object you would like it to Look At, or point to. Once you have designated this object to look at, it will continue to face that object, even if you move it. The Look At parameter points the each piece of geometry at the other object's origin individually.\n\n\n\n  dorotate -  - Rotate the geometry at each point using the Rotate parameter (below). Only works for Output Type is \"/ Circle at Each \".\n\n off - Do not rotate polys. Rotate parameter is greyed out. on - Add value of Rotate to polys equally. cum - Add value of Rotate to polys cumulatively (ie. increasing with each poly).\n\n  rotate -  - Rotation channels rx, ry, and rz for Rotate Polys parameter.\n\n rotatex - rotatey - rotatez -\n\n  normals - Computes normals for the geometry created.\n\n\n\n\n\nExtra Information for the Limit  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\\nwikieditorwikieditorwikieditor2021.100002020.200002018.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\nA CHOP outputs one or more channels, where a channel is simply a sequence of numbers (Samples), representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. Channels can be Exported to Parameters.\n\n\n\nA polygon is a type of Primitive that is formed from a set of Vertices in 3D that are implicitly connected together to form a multi-edge shape.\n\n\n\nEach SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.\n\n\n\nA surface type in SOPs that includes polygon, curve (NURBS and Bezier), patch (NURBS and Bezier) and other basic shapes like sphere, tube and metaball. Points and Primitives are part of the Geometry Detail, which is a part of a SOP.\n\n\n\nInformation associated with SOP geometry. Points and primitives (polygons, NURBS, etc.) can have any number of attributes - position (P) is standard, and built-in optional attributes are normals (N), texture coordinates (uv), color (Cd), etc.\n\n\n\nThe location of an operator within the TouchDesigner environment, for example, /geo1/circle1, a node called circle1 in a component called geo1. The path / is called Root. This path is displayed at the top of every Pane, showing which Component's network you are currently in. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.\n\n\n\nThe sub-Family of Component types that are used to define and render 3D scenes. A Geometry Component is an Object that contains the 3D shapes to render. A Camera COMP and Light COMP are other Object types. Separately, \"Objects\" also refers to Python objects.\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=Limit_SOP&oldid=32299\"",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "CHOP",
      "label": "CHOP",
      "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": "chop - Specifies which  Network /  contains the sample data to fetch.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate Order",
      "label": "Rotate 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": "rord -  - Specifies the order in which the Rotate Channel X / Y / Z channels are applied.\n\n xyz - xzy - yxz - yzx - zxy - zyx -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rx Ry Rz",
      "label": "Rx Ry Rz",
      "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": "xyz - xzy - yxz - yzx - zxy - zyx -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "X Channel",
      "label": "X Channel",
      "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": "chanx - Channels used to specify the point's positions, tx.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Y Channel",
      "label": "Y Channel",
      "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": "chany - Channels used to specify the point's positions, ty.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Z Channel",
      "label": "Z Channel",
      "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": "chanz - Channels used to specify the point's positions, tz.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate Channel X",
      "label": "Rotate Channel X",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "chanrx - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.224Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate Channel Y",
      "label": "Rotate Channel 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": "chanry - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate Channel Z",
      "label": "Rotate Channel Z",
      "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": "chanrz - Channels used to specify the rotational data of the geomtery created at each point. Only used when Output Type is \" at Each \" or \" Circle at Each \".",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Radius Channel",
      "label": "Radius Channel",
      "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": "chanrad - Uniformly controls the radius of the geometry created at each point. The Radius channels are multiplied with the Radius parameter on the Output Page.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Radius Channel X",
      "label": "Radius Channel X",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "chanradx - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Radius Channel Y",
      "label": "Radius Channel 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": "chanrady - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Radius Channel Z",
      "label": "Radius Channel Z",
      "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": "chanradz - Channels that control the radius on the respective axis. The Radius channels are multiplied with the Radius parameter on the Output Page.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Alpha Channel",
      "label": "Alpha Channel",
      "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": "chanalpha - Controls the point alpha, giving you alpha control of any geometry created at those points.\t\nNote: If using a Copy SOP, turn on the Use Template   option in the Copy 's  Page to allow the geometry to inherit the point attributes.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Red Channel",
      "label": "Red Channel",
      "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": "chanr - These channels control the point color, or the color of any geometry created at those points.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Green Channel",
      "label": "Green Channel",
      "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": "chang - These channels control the point color, or the color of any geometry created at those points.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Blue Channel",
      "label": "Blue Channel",
      "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": "chanb - These channels control the point color, or the color of any geometry created at those points.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Texture W",
      "label": "Texture W",
      "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": "texturew - Controls the w texture-offset for the point(s) This is most often used as a frame-offset or time-offset, expressed in # of frames from the current frame or frame 1 of an image sequence.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attribute",
      "label": "Custom Attribute",
      "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": "customattr - Sequence of custom attributes to be added to the geometry created.\n\n\n\n  customattr0name - Specify the name of the custom attribute, for example pscale, age, or any custom name.\n\n\n\n  customattr0chan0 - Select which channel to assign to the [0] index of the attribute. ie. pscale[0]\n\n\n\n  customattr0chan1 - Select which channel to assign to the [1] index of the attribute. ie. pscale[1]\n\n\n\n  customattr0chan2 - Select which channel to assign to the [2] index of the attribute. ie. pscale[2]\n\n\n\n  customattr0chan3 - Select which channel to assign to the [3] index of the attribute. ie. pscale[3]",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Name",
      "label": "Name",
      "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": "customattr0name - Specify the name of the custom attribute, for example pscale, age, or any custom name.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Channel Zero",
      "label": "Channel Zero",
      "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": "customattr0chan0 - Select which channel to assign to the [0] index of the attribute. ie. pscale[0]",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Channel One",
      "label": "Channel One",
      "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": "customattr0chan1 - Select which channel to assign to the [1] index of the attribute. ie. pscale[1]",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Channel Two",
      "label": "Channel Two",
      "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": "customattr0chan2 - Select which channel to assign to the [2] index of the attribute. ie. pscale[2]",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Channel Three",
      "label": "Channel Three",
      "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": "customattr0chan3 - Select which channel to assign to the [3] index of the attribute. ie. pscale[3]",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Output Type",
      "label": "Output 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": "output -  - The type of geometry the Limit  produces from its sample data.\n\n line - Creates a point for each sample and connects them with a polygonal line. polys - Places a polygon at each sample point. Number of points in polygon defined by Divisions. circles - Places a primitive circle at each sample point. spheres - Places a primitive sphere at each smaple point. polyspheres - Places a polygonal sphere at each sample point. Sphere's frequency defined by Divisions. tubes - Creates a tube down the path. Tubes cross-section defined by Divisions. strips - Creates a strip down the path. Number of points in strip defined by Divisions.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Polygonal Line",
      "label": "Polygonal Line",
      "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": "line - Creates a point for each sample and connects them with a polygonal line. polys - Places a polygon at each sample point. Number of points in polygon defined by Divisions. circles - Places a primitive circle at each sample point. spheres - Places a primitive sphere at each smaple point. polyspheres - Places a polygonal sphere at each sample point. Sphere's frequency defined by Divisions. tubes - Creates a tube down the path. Tubes cross-section defined by Divisions. strips - Creates a strip down the path. Number of points in strip defined by Divisions.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Divisions",
      "label": "Divisions",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "divisions - Only works on the following Output Types.\t\n at Each  - Number of points per polygon.\nPoly Sphere at Each  - Frequency of each Polygonal Sphere.\nTubes - Number of points in cross-section of the tube.\nStrips - Number of points in cross-section of the strip.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Radius",
      "label": "Radius",
      "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": "rad - Radius of geometry created. Disabled for \"Polygonal Line\".",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.225Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Smooth Flip",
      "label": "Smooth Flip",
      "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": "flipsmooth - Dynamically controls the twist of each instance of geometry on a series of points to avoid frame-by-frame flipping, which can sometimes occur when geometry is oriented along a path.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Limit",
      "label": "Limit",
      "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": "dolimit -  - Creates a bounding box for the position of the output geometry. Drop down menu determines behavior when outside bounded region.\n\n off - Bounding region off. clamp - Clamps position to specified value. loop - Loops position between bounded region. zigzag - Zigzags position back and forth between bounded region.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Off",
      "label": "Off",
      "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": "off - Bounding region off. clamp - Clamps position to specified value. loop - Loops position between bounded region. zigzag - Zigzags position back and forth between bounded region.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "X Limit",
      "label": "X Limit",
      "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": "xlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nxlimitmin -xlimitmax -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Y Limit",
      "label": "Y Limit",
      "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": "ylimit -  - Parameters to set edges of bounding region when Limit is active.\n\nylimitmin -ylimitmax -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Z Limit",
      "label": "Z Limit",
      "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": "zlimit -  - Parameters to set edges of bounding region when Limit is active.\n\nzlimitmin -zlimitmax -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Apply Texture",
      "label": "Apply Texture",
      "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": "texture - Applys u, v, and w texture coordinates to the created geometry.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "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": "texscale -  - Scales the texture coordinates a specific amount.\n\ntexscale1 -texscale2 -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Offset",
      "label": "Offset",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "texoffset -  - Offsets the texture coordinates a specific amount.\n\ntexoffset1 -texoffset2 -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Orient to Path",
      "label": "Orient to Path",
      "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": "orient - If this option is selected, the object will be oriented along the path. To see what the path looks like, change the Output Type to \"Polygonal Line\". When the Output Type is \"/ Circle at Each \", the positive Z axis of each object will be pointing down the path. When the Output Type is \"Tubes/Strips\" then the cross-section of the geometry created will be pointing down the path.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Lookat Object",
      "label": "Lookat Object",
      "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": "lookat - Orient to  must be checked for Lookat Object to have any effect. This allows you to orient your geometry by naming the object you would like it to Look At, or point to. Once you have designated this object to look at, it will continue to face that object, even if you move it. The Look At parameter points the each piece of geometry at the other object's origin individually.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate Polys",
      "label": "Rotate Polys",
      "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": "dorotate -  - Rotate the geometry at each point using the Rotate parameter (below). Only works for Output Type is \"/ Circle at Each \".\n\n off - Do not rotate polys. Rotate parameter is greyed out. on - Add value of Rotate to polys equally. cum - Add value of Rotate to polys cumulatively (ie. increasing with each poly).",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Off",
      "label": "Off",
      "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": "off - Do not rotate polys. Rotate parameter is greyed out. on - Add value of Rotate to polys equally. cum - Add value of Rotate to polys cumulatively (ie. increasing with each poly).",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Rotate",
      "label": "Rotate",
      "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": "rotate -  - Rotation channels rx, ry, and rz for Rotate Polys parameter.\n\n rotatex - rotatey - rotatez -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "X",
      "label": "X",
      "group": "General",
      "page": "",
      "type": "float",
      "dataType": "number",
      "style": "",
      "defaultValue": null,
      "minValue": null,
      "maxValue": null,
      "step": null,
      "menuItems": [],
      "menuLabels": [],
      "allowCustom": false,
      "maxLength": null,
      "pattern": null,
      "isArray": false,
      "arraySize": 1,
      "dimensions": 1,
      "description": "rotatex - rotatey - rotatez -",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Compute Normals",
      "label": "Compute Normals",
      "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": "normals - Computes normals for the geometry created.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:03.226Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "limit",
    "sop",
    "creates",
    "geometry",
    "samples",
    "chops.",
    "every",
    "point",
    "sample."
  ],
  "tags": [
    "SOP",
    "TouchDesigner",
    "Limit SOP"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-07T07:50:03.227Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}