UNPKG

@bottobot/td-mcp

Version:

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

1,462 lines 63 kB
{
  "id": "sort_sop",
  "name": "Sort SOP",
  "displayName": "Sort SOP",
  "category": "SOP",
  "subcategory": "Generators",
  "version": "",
  "lastUpdated": "2025-08-07T07:50:09.779Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Sort_SOP.htm",
  "url": "",
  "description": "The Sort SOP allows you to sort points and primitives in different ways. Sometimes the primitives are arranged in the desired order, but the point order is not. There are many possible combinations. To sort vertices, use the Primitive SOP.",
  "summary": "The Sort SOP allows you to sort points and primitives in different ways. Sometimes the primitives are arranged in the desired order, but the point order is not. There are many possible combinations. T",
  "details": "",
  "usage": "",
  "tips": [],
  "warnings": [],
  "parameters": [
    {
      "id": null,
      "name": "Point Sort",
      "label": "Point Sort",
      "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 Sort  allows you to sort points and primitives in different ways. Sometimes the primitives are arranged in the desired order, but the point order is not. There are many possible combinations. To sort vertices, use the Primitive SOP.\nsortSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  ptsort -  - Sort the points in the input geometry, according to the following criteria:\n\n none - No sorting is applied. vtxord - Order points in same order as vertices. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse the point order. seed - Randomize point order using the specified seed without changing the point positions. shift - Shift points by the amount specified on the Offset parameter. prox - Sort points by their proximity to the specified point. vector - Sorts points along either a user or object-defined vector. object - Sorts points based on distance to the object specified in the Vector Object parameter. neighbour - Reorders points based on next closest. Slow nxn search.\n\t\t\n  pointseed - The random seed when  is set to .\n\n\n\t\t\n  pointoffset - Shift point order by the amount specified on the offset line.\n\n\n\t\t\n  pointprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n pointproxx - pointproxy - pointproxz -\n\t\t\n  pointobj - Sort points along a vector defined by the object's transformation values.\n\n\n\t\t\n  pointdir -  - Allows you to specify a unique vector along which points can be sorted.\n\n pointdirx - pointdiry - pointdirz -\n\n\n\n  primsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. bytype - rev - Reverse primitive order. seed - Randomize primitive order using the specified seed without changing the primitive positions. shift - Shift primitives by the amount the specified on the Offset parameter. prox - Sort primitives by their proximity to the specified point. vector - Sorts primitives along either a user or object-defined vector. object - Sorts primitive based on distance to the object specified in the Vector Object parameter.\n\t\t\n  primseed - Random seed when sorting by .\n\n\n\t\t\n  primoffset - Shift primitive order by the amount specified on the offset line.\n\n\n\t\t\n  primprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n primproxx - primproxy - primproxz -\n\t\t\n  primobj - Sort primitives along a vector defined by the object's translation.\n\n\n\t\t\n  primdir -  - Allows you to specify a unique vector along which primitives can be sorted.\n\n primdirx - primdiry - primdirz -\n\n\n\nParticles are sorted on a per-particle system basis. That is if you have a  with 2 different particle system primitives, they are sorted independently of each other.\n\n  partsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse particle order. shift - Shift particles by the amount the specified on the Offset parameter. prox - Sort particle by their proximity to the specified point. vector - Sorts particles along either a user or object-defined vector. object - Sorts particles based on distance to the object specified in the Vector Object parameter.\n\t\t\n  partreverse - Reverses the result from the Particle Sort as defined above.\n\n\n\t\t\n  partoffset - Shift particle order by the amount specified on the offset line.\n\n\n\t\t\n  partprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n partproxx - partproxy - partproxz -\n\t\t\n  partobj - Sort particles along a vector defined by the object's translation.\n\n\n\t\t\n  partdir -  - Allows you to specify a unique vector along which particles can be sorted.\n\n partdirx - partdiry - partdirz -\n\n\n\n -\n\nExtra Information for the Sort  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\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\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\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\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Sort_SOP&oldid=24269\"\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:09.774Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point Sort",
      "label": "Point Sort",
      "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 Sort  allows you to sort points and primitives in different ways. Sometimes the primitives are arranged in the desired order, but the point order is not. There are many possible combinations. To sort vertices, use the Primitive SOP.\nsortSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  ptsort -  - Sort the points in the input geometry, according to the following criteria:\n\n none - No sorting is applied. vtxord - Order points in same order as vertices. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse the point order. seed - Randomize point order using the specified seed without changing the point positions. shift - Shift points by the amount specified on the Offset parameter. prox - Sort points by their proximity to the specified point. vector - Sorts points along either a user or object-defined vector. object - Sorts points based on distance to the object specified in the Vector Object parameter. neighbour - Reorders points based on next closest. Slow nxn search.\n\t\t\n  pointseed - The random seed when  is set to .\n\n\n\t\t\n  pointoffset - Shift point order by the amount specified on the offset line.\n\n\n\t\t\n  pointprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n pointproxx - pointproxy - pointproxz -\n\t\t\n  pointobj - Sort points along a vector defined by the object's transformation values.\n\n\n\t\t\n  pointdir -  - Allows you to specify a unique vector along which points can be sorted.\n\n pointdirx - pointdiry - pointdirz -\n\n\n\n  primsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. bytype - rev - Reverse primitive order. seed - Randomize primitive order using the specified seed without changing the primitive positions. shift - Shift primitives by the amount the specified on the Offset parameter. prox - Sort primitives by their proximity to the specified point. vector - Sorts primitives along either a user or object-defined vector. object - Sorts primitive based on distance to the object specified in the Vector Object parameter.\n\t\t\n  primseed - Random seed when sorting by .\n\n\n\t\t\n  primoffset - Shift primitive order by the amount specified on the offset line.\n\n\n\t\t\n  primprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n primproxx - primproxy - primproxz -\n\t\t\n  primobj - Sort primitives along a vector defined by the object's translation.\n\n\n\t\t\n  primdir -  - Allows you to specify a unique vector along which primitives can be sorted.\n\n primdirx - primdiry - primdirz -\n\n\n\nParticles are sorted on a per-particle system basis. That is if you have a  with 2 different particle system primitives, they are sorted independently of each other.\n\n  partsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse particle order. shift - Shift particles by the amount the specified on the Offset parameter. prox - Sort particle by their proximity to the specified point. vector - Sorts particles along either a user or object-defined vector. object - Sorts particles based on distance to the object specified in the Vector Object parameter.\n\t\t\n  partreverse - Reverses the result from the Particle Sort as defined above.\n\n\n\t\t\n  partoffset - Shift particle order by the amount specified on the offset line.\n\n\n\t\t\n  partprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n partproxx - partproxy - partproxz -\n\t\t\n  partobj - Sort particles along a vector defined by the object's translation.\n\n\n\t\t\n  partdir -  - Allows you to specify a unique vector along which particles can be sorted.\n\n partdirx - partdiry - partdirz -\n\n\n\n -\n\nExtra Information for the Sort  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\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\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\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\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Sort_SOP&oldid=24269\"\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:09.775Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point Sort",
      "label": "Point Sort",
      "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 Sort  allows you to sort points and primitives in different ways. Sometimes the primitives are arranged in the desired order, but the point order is not. There are many possible combinations. To sort vertices, use the Primitive SOP.\nsortSOP_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  ptsort -  - Sort the points in the input geometry, according to the following criteria:\n\n none - No sorting is applied. vtxord - Order points in same order as vertices. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse the point order. seed - Randomize point order using the specified seed without changing the point positions. shift - Shift points by the amount specified on the Offset parameter. prox - Sort points by their proximity to the specified point. vector - Sorts points along either a user or object-defined vector. object - Sorts points based on distance to the object specified in the Vector Object parameter. neighbour - Reorders points based on next closest. Slow nxn search.\n\t\t\n  pointseed - The random seed when  is set to .\n\n\n\t\t\n  pointoffset - Shift point order by the amount specified on the offset line.\n\n\n\t\t\n  pointprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n pointproxx - pointproxy - pointproxz -\n\t\t\n  pointobj - Sort points along a vector defined by the object's transformation values.\n\n\n\t\t\n  pointdir -  - Allows you to specify a unique vector along which points can be sorted.\n\n pointdirx - pointdiry - pointdirz -\n\n\n\n  primsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. bytype - rev - Reverse primitive order. seed - Randomize primitive order using the specified seed without changing the primitive positions. shift - Shift primitives by the amount the specified on the Offset parameter. prox - Sort primitives by their proximity to the specified point. vector - Sorts primitives along either a user or object-defined vector. object - Sorts primitive based on distance to the object specified in the Vector Object parameter.\n\t\t\n  primseed - Random seed when sorting by .\n\n\n\t\t\n  primoffset - Shift primitive order by the amount specified on the offset line.\n\n\n\t\t\n  primprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n primproxx - primproxy - primproxz -\n\t\t\n  primobj - Sort primitives along a vector defined by the object's translation.\n\n\n\t\t\n  primdir -  - Allows you to specify a unique vector along which primitives can be sorted.\n\n primdirx - primdiry - primdirz -\n\n\n\nParticles are sorted on a per-particle system basis. That is if you have a  with 2 different particle system primitives, they are sorted independently of each other.\n\n  partsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse particle order. shift - Shift particles by the amount the specified on the Offset parameter. prox - Sort particle by their proximity to the specified point. vector - Sorts particles along either a user or object-defined vector. object - Sorts particles based on distance to the object specified in the Vector Object parameter.\n\t\t\n  partreverse - Reverses the result from the Particle Sort as defined above.\n\n\n\t\t\n  partoffset - Shift particle order by the amount specified on the offset line.\n\n\n\t\t\n  partprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n partproxx - partproxy - partproxz -\n\t\t\n  partobj - Sort particles along a vector defined by the object's translation.\n\n\n\t\t\n  partdir -  - Allows you to specify a unique vector along which particles can be sorted.\n\n partdirx - partdiry - partdirz -\n\n\n\n -\n\nExtra Information for the Sort  can be accessed via an Info CHOP.\n\n\n\n - Number of points in this . - Number of primitives in this . - Number of particles in this . - Time spent in another thread updating geometry data on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time. - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the  from the 's CPU data. As it is part of another thread, this time is not part of the usual frame time.\n - Number of times the operator has cooked since the process started. - Duration of the last cook in milliseconds. - Frame number when this operator was last cooked relative to the component timeline. - Frame number when this operator was last cooked relative to the absolute time. - Time in milliseconds at which the operator started cooking in the frame it was cooked. - Time in milliseconds at which the operator finished cooking in the frame it was cooked. - 1 if operator was cooked this frame. - Number of warnings in this operator if any. - Number of errors in this operator if any.\nTouchDesigner Build: Latest\\n2021.100002018.28070before 2018.28070\nSOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nA Operator Family that reads, creates and modifies 3D points, polygons, lines, particles, surfaces, spheres and meatballs. Particles and point clouds are now done primarily on the GPU using TOPs.\n\n\n\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\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\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\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nThe Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Sort_SOP&oldid=24269\"",
      "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:09.777Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point Sort",
      "label": "Point Sort",
      "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": "ptsort -  - Sort the points in the input geometry, according to the following criteria:\n\n none - No sorting is applied. vtxord - Order points in same order as vertices. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse the point order. seed - Randomize point order using the specified seed without changing the point positions. shift - Shift points by the amount specified on the Offset parameter. prox - Sort points by their proximity to the specified point. vector - Sorts points along either a user or object-defined vector. object - Sorts points based on distance to the object specified in the Vector Object parameter. neighbour - Reorders points based on next closest. Slow nxn search.",
      "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:09.777Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "No change",
      "label": "No change",
      "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": "none - No sorting is applied. vtxord - Order points in same order as vertices. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse the point order. seed - Randomize point order using the specified seed without changing the point positions. shift - Shift points by the amount specified on the Offset parameter. prox - Sort points by their proximity to the specified point. vector - Sorts points along either a user or object-defined vector. object - Sorts points based on distance to the object specified in the Vector Object parameter. neighbour - Reorders points based on next closest. Slow nxn search.",
      "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:09.777Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Seed",
      "label": "Seed",
      "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": "pointseed - The random seed when  is set to .",
      "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:09.777Z",
      "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": "pointoffset - Shift point order by the amount specified on the offset 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:09.777Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point",
      "label": "Point",
      "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": "pointprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n pointproxx - pointproxy - pointproxz -",
      "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:09.778Z",
      "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": "pointproxx - pointproxy - pointproxz -",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector Object",
      "label": "Vector 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": "pointobj - Sort points along a vector defined by the object's transformation values.",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector",
      "label": "Vector",
      "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": "pointdir -  - Allows you to specify a unique vector along which points can be sorted.\n\n pointdirx - pointdiry - pointdirz -",
      "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:09.778Z",
      "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": "pointdirx - pointdiry - pointdirz -",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Primitive Sort",
      "label": "Primitive Sort",
      "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": "primsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. bytype - rev - Reverse primitive order. seed - Randomize primitive order using the specified seed without changing the primitive positions. shift - Shift primitives by the amount the specified on the Offset parameter. prox - Sort primitives by their proximity to the specified point. vector - Sorts primitives along either a user or object-defined vector. object - Sorts primitive based on distance to the object specified in the Vector Object parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "No change",
      "label": "No change",
      "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": "none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. bytype - rev - Reverse primitive order. seed - Randomize primitive order using the specified seed without changing the primitive positions. shift - Shift primitives by the amount the specified on the Offset parameter. prox - Sort primitives by their proximity to the specified point. vector - Sorts primitives along either a user or object-defined vector. object - Sorts primitive based on distance to the object specified in the Vector Object parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Seed",
      "label": "Seed",
      "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": "primseed - Random seed when sorting by .",
      "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:09.778Z",
      "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": "primoffset - Shift primitive order by the amount specified on the offset 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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point",
      "label": "Point",
      "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": "primprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n primproxx - primproxy - primproxz -",
      "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:09.778Z",
      "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": "primproxx - primproxy - primproxz -",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector Object",
      "label": "Vector 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": "primobj - Sort primitives along a vector defined by the object's translation.",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector",
      "label": "Vector",
      "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": "primdir -  - Allows you to specify a unique vector along which primitives can be sorted.\n\n primdirx - primdiry - primdirz -",
      "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:09.778Z",
      "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": "primdirx - primdiry - primdirz -",
      "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:09.778Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Particle Sort",
      "label": "Particle Sort",
      "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": "partsort -  - Sort the primitives according to the following criteria:\n\n none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse particle order. shift - Shift particles by the amount the specified on the Offset parameter. prox - Sort particle by their proximity to the specified point. vector - Sorts particles along either a user or object-defined vector. object - Sorts particles based on distance to the object specified in the Vector Object parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:09.779Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "No change",
      "label": "No change",
      "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": "none - No sorting is applied. byx - Sort according to X position. byy - Sort according to Y position. byz - Sort according to Z position. rev - Reverse particle order. shift - Shift particles by the amount the specified on the Offset parameter. prox - Sort particle by their proximity to the specified point. vector - Sorts particles along either a user or object-defined vector. object - Sorts particles based on distance to the object specified in the Vector Object parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-07T07:50:09.779Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Reverse Results",
      "label": "Reverse Results",
      "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": "partreverse - Reverses the result from the Particle Sort as defined above.",
      "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:09.779Z",
      "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": "partoffset - Shift particle order by the amount specified on the offset 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:09.779Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Point",
      "label": "Point",
      "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": "partprox -  - The X, Y and Z coordinates to reference when sorting by .\n\n partproxx - partproxy - partproxz -",
      "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:09.779Z",
      "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": "partproxx - partproxy - partproxz -",
      "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:09.779Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector Object",
      "label": "Vector 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": "partobj - Sort particles along a vector defined by the object's translation.",
      "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:09.779Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Vector",
      "label": "Vector",
      "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": "partdir -  - Allows you to specify a unique vector along which particles can be sorted.\n\n partdirx - partdiry - partdirz -",
      "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:09.779Z",
      "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": "partdirx - partdiry - partdirz -",
      "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:09.779Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "sort",
    "sop",
    "allows",
    "points",
    "primitives",
    "different",
    "ways.",
    "sometimes",
    "arranged"
  ],
  "tags": [
    "SOP",
    "TouchDesigner",
    "Sort SOP"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-07T07:50:09.779Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}