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

2,074 lines 102 kB
{
  "id": "render_pick",
  "name": "Render Pick",
  "displayName": "Render Pick",
  "category": "DAT",
  "subcategory": "Utilities",
  "version": "",
  "lastUpdated": "2025-08-08T00:37:52.144Z",
  "sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Render_Pick_DAT.htm",
  "url": "",
  "description": "The Render Pick DAT lets you get information about the 3D surface at any pixel of any 3D render, allowing you to implement multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP or a Render Pass TOP) and returns 3D information from the geometry at the specified pick locations.",
  "summary": "The Render Pick DAT lets you get information about the 3D surface at any pixel of any 3D render, allowing you to implement multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP",
  "details": "",
  "usage": "",
  "tips": [],
  "warnings": [],
  "parameters": [
    {
      "id": null,
      "name": "Strategy",
      "label": "Strategy",
      "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 Render Pick  lets you get information about the 3D surface at any pixel of any 3D render, allowing you to implement multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP or a Render Pass TOP) and returns 3D information from the geometry at the specified pick locations.\t\t\nYou feed it a  with minimum three columns: select, u and v. A Multi Touch In DAT is usually connected to the Render Pick , where the Multi Touch In  points to a container that is displaying the output of the Render .\t\t\t\n\t\t\t\nYou can pick from multiple cameras simultaneously. You can specify a camera which allows the pick to occur from the point of a view other than the first camera listed in the Render TOP. The value in the column can either be a path (relative to the Render Pick , or absolute) to a Camera , or it can be an integer index, started at 0. If it's an index it will select the camera to use if there are multiple cameras listed in the Render TOP, or if there are cameras listed in the 'Custom Pick Camera(s)' parameter. This is useful for various Multi-Camera Rendering setups, and cases such as VR where your picking isn't coming from the point of view of your eye cameras, but instead hand controllers.\t\t\t\nThe pick location is a u,v (horizontal, vertical) coordinate placed in the table that you connect to the Render Pick  input.  Each row of the input table represents one pick point to be sampled, except for the first row which contains column headings select, u and v (plus any other unused columns you want).  The select, u and v columns are what you would get from a Panel CHOP. The u and v values goes 0 to 1 left to right and bottom to top, no matter what the aspect ratio of the render is.\t\t\t\nWhen Strategy is Always, that u,v location is always sampled and the results are displayed in the corresponding row in the Render Pick  output. \t\t\t\nThe output table will show the path of the geometry that was picked, its position (in a choice of reference frames), surface normal (excluding bump mapping), distance from camera, texture UV coordinate, color, alpha and instance id. It properly picks surfaces with deforming vertices.\t\t\t\nThere are some examples here:\t\t\t\n\ngeoPanel in the palette.\nmultiTouch in the palette under Techniques.\nRender Pick DAT Example.See also the single-sample Render Pick CHOP.\nrenderpickDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  strategy -  - Decides when to update values based on pick interactions.\n\n select - Continuously updates values when being selected/picked. holdfirst - Holds the values first returned when geometry picked. holdlast - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space. always - Continuously updates values at the location picked.\n\t\t\n  clearprev - This parameter is only enabled when the Strategy is set to Hold Last Picked. When this is on, starting a new pick on empty space will clear the values. When off, the last values will be held if the pick starts on empty space.\n\n\n\t\t\n  responsetime -  - Determines when the values are updated.\n\n nextcook - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times. thiscook - The values are captured and updated in the current frame.\n\t\t\n  pickradius - Controls the radius of the search area for the pick. If nothing is found at the pick's center it will keep searching for geometry in the search area defined by the Pick Radius.\n\n\n\t\t\n  pickradstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'spokes' outwards from the center pick point.\n\n\n\t\t\n  pickcirstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'rings' outwards from the center pick point.\n\n\n\t\t\n  rendertop - Specifies which scene to pick on, and which camera to pick from. By default the first camera listed in the Render TOP will be used for picking. Another camera can be specified with the 'Custom Pick Camera(s)' parameter, and multiple different cameras can be selected using the camera input column.\n\n\n\t\t\n  custompickcameras - Picking can be done from the viewport of custom camera(s) by specifying one or more Camera COMP here. If this parameter is blank the cameras from the Render  are used. To pick from the viewpoint of multiple different cameras, a camera column must be specified in the input .\n\n\n\t\t\n  allowmulticamera - Multi-Camera Rendering is a faster way to render multiple passes at the same time, and is thus a speed improvement for doing many picks at the same time. This feature may not work correctly for some older GLSL MATs made in 088 though, so this parameter allows forcing off this speed improvement if necessary. Generally it should be left on though.\n\n\n\t\t\n  usepickableflags - When turned on only geometry whose Pickable Flag is on can be selected by the Render Pick . The Pickable  is found on all Object components.\n\n\n\t\t\n  includenonpickable - Includes the non-pickable objects in the picking algorithm such that non-pickable objects may occlude pickable objects.  For example, if there is only one pickable object in the scene with lots of additional non-pickable geometry is present, turning this parameter on will prevent the pickable object from being selected if it is behind a non-pickage object (occluded by the non-pickage object).\n\n\n\t\t\n  mergeinputdat - Appends input table to the Render Pick DATs columns.\n\n\n\t\t\n  activatecallbacks - Enables   for each pick event.\n\n\n\t\t\n  callbacks -  to a  containing callbacks for pick event received.\n\n\n\n\n\n  position -  - Returns the position of the point picked on the geometry. Columns tx, ty, tz.\n\n no - Do not return position values. sopspace - Return position of point picked in  transform space. worldspace - Return position of point picked in world transform space. cameraspace - Return position of point picked in camera transform space. relativetoobj - Return position of point picked relative to object specified in   parameter.\n\t\t\n  normal -  - Returns the normals of the point picked on the geometry. Columns nx, ny, nz.\n\n no - Do not return normal values. sopspace - Return normals of point picked in  transform space. worldspace - Return normals of point picked in world transform space. cameraspace - Return normals of point picked in camera transform space. relativetoobj - Return normals of point picked relative to object specified in   parameter.\n\t\t\n  referenceobj - Object used when fetching position or normals Relative to .\n\n\n\t\t\n  color - Returns the point color of the point picked on the geometry. Columns cr, cg, cb, ca.\n\n\n\t\t\n  uv - Returns the texture coordinates of the point picked on the geometry. Columns mapu, mapv, mapw.\n\n\n\t\t\n  depth - Returns the depth of the point picked on the geometry. This value a non-linear ratio of the point's position between the near and far planes of the Depth Buffer. Column is depth.\n\n\n\t\t\n  instanceid - Returns the  ID of the object. This will always be 0 if instancing is off. Column is instance.\n\n\n\t\t\n  customattrib1 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib1type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib2 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib2type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib3 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib3type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib4 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib4type - The type of attribute is selected from this menu.\n\n\n\n\n\n  language -  - Select how the  decides which script language to operate on.\n\n input - The  uses the inputs script language. node - The  uses it's own script language.\n\n  extension -  - Select the file extension this  should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n  customext - Specifiy the custom extension.\n\n\n\n  wordwrap -  - Enable Word Wrap for Node Display.\n\n input - The  uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the Render Pick  can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\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\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nTo re-compute the output data of the Operators. An operator cooks when (1) its inputs change, (2) its Parameters change, (3) when the timeline moves forward in some cases, or (4) Scripting commands are run on the node. When the operator is a Panel Component, it also cooks when a user interacts with it. When an operator cooks, it usually causes operators connected to its output to re-cook. When TouchDesigner draws the screen, it re-cooks all the Dependencies - the necessary operators in all Networks, contributing to a frame's total \"cook time\".\n\n\n\nRendering is the creation of a 3D image with the Render TOP. Rendering is also used more generally to include the compositing (with TOPs) to generate an output image.\n\n\n\nIndicator of certain states of an operator (bypass, display, lock, viewer active).\n\n\n\nSome operators have a DAT docked to them that contains some python functions. These functions, called \"callbacks\", get called when something in the operator changes.\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\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\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 Link. The grey dashed lines between nodes is a Reference or Link that indicates one operator is getting data from another operator from any Operator Family.\n\n\nThe grey dashed lines between nodes is a Reference (or Link). A Reference is (1) a Parameter Reference, a parameter in an OP that is a name or path to another operator, (2) a Node Reference, an expression in a parameter or DAT script that contains the name or path of another operator, (3) a DAT Cell Reference or (4) a CHOP Channel Reference.\n\n\nA Link or Reference is a dashed line between nodes that represent other data flowing between nodes. Examples are CHOP Exports, node Paths in parameters, and expressions in parameters referencing CHOP channels, DAT tables and other nodes. In contrast is a Wire that connects nodes in the same Operator Family.\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\n(1) A Geometry Component can instance and render its SOP geometry many times: once for each sample in a CHOP, row of a DAT table, pixel in a TOP, or point of a SOP, (2) An instance is an OP that doesn't actually have its own data, but rather just refers to an OP (or has an input) whose data it uses. This includes Null OPs, Switch OPs and in some cases Select OPs.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\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\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Render_Pick_DAT&oldid=24335\"\n\t\tCategory: DATs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.136Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Strategy",
      "label": "Strategy",
      "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 Render Pick  lets you get information about the 3D surface at any pixel of any 3D render, allowing you to implement multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP or a Render Pass TOP) and returns 3D information from the geometry at the specified pick locations.\t\t\nYou feed it a  with minimum three columns: select, u and v. A Multi Touch In DAT is usually connected to the Render Pick , where the Multi Touch In  points to a container that is displaying the output of the Render .\t\t\t\n\t\t\t\nYou can pick from multiple cameras simultaneously. You can specify a camera which allows the pick to occur from the point of a view other than the first camera listed in the Render TOP. The value in the column can either be a path (relative to the Render Pick , or absolute) to a Camera , or it can be an integer index, started at 0. If it's an index it will select the camera to use if there are multiple cameras listed in the Render TOP, or if there are cameras listed in the 'Custom Pick Camera(s)' parameter. This is useful for various Multi-Camera Rendering setups, and cases such as VR where your picking isn't coming from the point of view of your eye cameras, but instead hand controllers.\t\t\t\nThe pick location is a u,v (horizontal, vertical) coordinate placed in the table that you connect to the Render Pick  input.  Each row of the input table represents one pick point to be sampled, except for the first row which contains column headings select, u and v (plus any other unused columns you want).  The select, u and v columns are what you would get from a Panel CHOP. The u and v values goes 0 to 1 left to right and bottom to top, no matter what the aspect ratio of the render is.\t\t\t\nWhen Strategy is Always, that u,v location is always sampled and the results are displayed in the corresponding row in the Render Pick  output. \t\t\t\nThe output table will show the path of the geometry that was picked, its position (in a choice of reference frames), surface normal (excluding bump mapping), distance from camera, texture UV coordinate, color, alpha and instance id. It properly picks surfaces with deforming vertices.\t\t\t\nThere are some examples here:\t\t\t\n\ngeoPanel in the palette.\nmultiTouch in the palette under Techniques.\nRender Pick DAT Example.See also the single-sample Render Pick CHOP.\nrenderpickDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  strategy -  - Decides when to update values based on pick interactions.\n\n select - Continuously updates values when being selected/picked. holdfirst - Holds the values first returned when geometry picked. holdlast - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space. always - Continuously updates values at the location picked.\n\t\t\n  clearprev - This parameter is only enabled when the Strategy is set to Hold Last Picked. When this is on, starting a new pick on empty space will clear the values. When off, the last values will be held if the pick starts on empty space.\n\n\n\t\t\n  responsetime -  - Determines when the values are updated.\n\n nextcook - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times. thiscook - The values are captured and updated in the current frame.\n\t\t\n  pickradius - Controls the radius of the search area for the pick. If nothing is found at the pick's center it will keep searching for geometry in the search area defined by the Pick Radius.\n\n\n\t\t\n  pickradstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'spokes' outwards from the center pick point.\n\n\n\t\t\n  pickcirstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'rings' outwards from the center pick point.\n\n\n\t\t\n  rendertop - Specifies which scene to pick on, and which camera to pick from. By default the first camera listed in the Render TOP will be used for picking. Another camera can be specified with the 'Custom Pick Camera(s)' parameter, and multiple different cameras can be selected using the camera input column.\n\n\n\t\t\n  custompickcameras - Picking can be done from the viewport of custom camera(s) by specifying one or more Camera COMP here. If this parameter is blank the cameras from the Render  are used. To pick from the viewpoint of multiple different cameras, a camera column must be specified in the input .\n\n\n\t\t\n  allowmulticamera - Multi-Camera Rendering is a faster way to render multiple passes at the same time, and is thus a speed improvement for doing many picks at the same time. This feature may not work correctly for some older GLSL MATs made in 088 though, so this parameter allows forcing off this speed improvement if necessary. Generally it should be left on though.\n\n\n\t\t\n  usepickableflags - When turned on only geometry whose Pickable Flag is on can be selected by the Render Pick . The Pickable  is found on all Object components.\n\n\n\t\t\n  includenonpickable - Includes the non-pickable objects in the picking algorithm such that non-pickable objects may occlude pickable objects.  For example, if there is only one pickable object in the scene with lots of additional non-pickable geometry is present, turning this parameter on will prevent the pickable object from being selected if it is behind a non-pickage object (occluded by the non-pickage object).\n\n\n\t\t\n  mergeinputdat - Appends input table to the Render Pick DATs columns.\n\n\n\t\t\n  activatecallbacks - Enables   for each pick event.\n\n\n\t\t\n  callbacks -  to a  containing callbacks for pick event received.\n\n\n\n\n\n  position -  - Returns the position of the point picked on the geometry. Columns tx, ty, tz.\n\n no - Do not return position values. sopspace - Return position of point picked in  transform space. worldspace - Return position of point picked in world transform space. cameraspace - Return position of point picked in camera transform space. relativetoobj - Return position of point picked relative to object specified in   parameter.\n\t\t\n  normal -  - Returns the normals of the point picked on the geometry. Columns nx, ny, nz.\n\n no - Do not return normal values. sopspace - Return normals of point picked in  transform space. worldspace - Return normals of point picked in world transform space. cameraspace - Return normals of point picked in camera transform space. relativetoobj - Return normals of point picked relative to object specified in   parameter.\n\t\t\n  referenceobj - Object used when fetching position or normals Relative to .\n\n\n\t\t\n  color - Returns the point color of the point picked on the geometry. Columns cr, cg, cb, ca.\n\n\n\t\t\n  uv - Returns the texture coordinates of the point picked on the geometry. Columns mapu, mapv, mapw.\n\n\n\t\t\n  depth - Returns the depth of the point picked on the geometry. This value a non-linear ratio of the point's position between the near and far planes of the Depth Buffer. Column is depth.\n\n\n\t\t\n  instanceid - Returns the  ID of the object. This will always be 0 if instancing is off. Column is instance.\n\n\n\t\t\n  customattrib1 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib1type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib2 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib2type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib3 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib3type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib4 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib4type - The type of attribute is selected from this menu.\n\n\n\n\n\n  language -  - Select how the  decides which script language to operate on.\n\n input - The  uses the inputs script language. node - The  uses it's own script language.\n\n  extension -  - Select the file extension this  should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n  customext - Specifiy the custom extension.\n\n\n\n  wordwrap -  - Enable Word Wrap for Node Display.\n\n input - The  uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the Render Pick  can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\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\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nTo re-compute the output data of the Operators. An operator cooks when (1) its inputs change, (2) its Parameters change, (3) when the timeline moves forward in some cases, or (4) Scripting commands are run on the node. When the operator is a Panel Component, it also cooks when a user interacts with it. When an operator cooks, it usually causes operators connected to its output to re-cook. When TouchDesigner draws the screen, it re-cooks all the Dependencies - the necessary operators in all Networks, contributing to a frame's total \"cook time\".\n\n\n\nRendering is the creation of a 3D image with the Render TOP. Rendering is also used more generally to include the compositing (with TOPs) to generate an output image.\n\n\n\nIndicator of certain states of an operator (bypass, display, lock, viewer active).\n\n\n\nSome operators have a DAT docked to them that contains some python functions. These functions, called \"callbacks\", get called when something in the operator changes.\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\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\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 Link. The grey dashed lines between nodes is a Reference or Link that indicates one operator is getting data from another operator from any Operator Family.\n\n\nThe grey dashed lines between nodes is a Reference (or Link). A Reference is (1) a Parameter Reference, a parameter in an OP that is a name or path to another operator, (2) a Node Reference, an expression in a parameter or DAT script that contains the name or path of another operator, (3) a DAT Cell Reference or (4) a CHOP Channel Reference.\n\n\nA Link or Reference is a dashed line between nodes that represent other data flowing between nodes. Examples are CHOP Exports, node Paths in parameters, and expressions in parameters referencing CHOP channels, DAT tables and other nodes. In contrast is a Wire that connects nodes in the same Operator Family.\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\n(1) A Geometry Component can instance and render its SOP geometry many times: once for each sample in a CHOP, row of a DAT table, pixel in a TOP, or point of a SOP, (2) An instance is an OP that doesn't actually have its own data, but rather just refers to an OP (or has an input) whose data it uses. This includes Null OPs, Switch OPs and in some cases Select OPs.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\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\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Render_Pick_DAT&oldid=24335\"\n\t\tCategory: DATs",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.139Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Strategy",
      "label": "Strategy",
      "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 Render Pick  lets you get information about the 3D surface at any pixel of any 3D render, allowing you to implement multi-touch on a 3D rendered scene. It samples a rendering (from a Render TOP or a Render Pass TOP) and returns 3D information from the geometry at the specified pick locations.\t\t\nYou feed it a  with minimum three columns: select, u and v. A Multi Touch In DAT is usually connected to the Render Pick , where the Multi Touch In  points to a container that is displaying the output of the Render .\t\t\t\n\t\t\t\nYou can pick from multiple cameras simultaneously. You can specify a camera which allows the pick to occur from the point of a view other than the first camera listed in the Render TOP. The value in the column can either be a path (relative to the Render Pick , or absolute) to a Camera , or it can be an integer index, started at 0. If it's an index it will select the camera to use if there are multiple cameras listed in the Render TOP, or if there are cameras listed in the 'Custom Pick Camera(s)' parameter. This is useful for various Multi-Camera Rendering setups, and cases such as VR where your picking isn't coming from the point of view of your eye cameras, but instead hand controllers.\t\t\t\nThe pick location is a u,v (horizontal, vertical) coordinate placed in the table that you connect to the Render Pick  input.  Each row of the input table represents one pick point to be sampled, except for the first row which contains column headings select, u and v (plus any other unused columns you want).  The select, u and v columns are what you would get from a Panel CHOP. The u and v values goes 0 to 1 left to right and bottom to top, no matter what the aspect ratio of the render is.\t\t\t\nWhen Strategy is Always, that u,v location is always sampled and the results are displayed in the corresponding row in the Render Pick  output. \t\t\t\nThe output table will show the path of the geometry that was picked, its position (in a choice of reference frames), surface normal (excluding bump mapping), distance from camera, texture UV coordinate, color, alpha and instance id. It properly picks surfaces with deforming vertices.\t\t\t\nThere are some examples here:\t\t\t\n\ngeoPanel in the palette.\nmultiTouch in the palette under Techniques.\nRender Pick DAT Example.See also the single-sample Render Pick CHOP.\nrenderpickDAT_Class\n\nContents\n \n \n \n \n \n \n \n \n\n\n\n\n\n  strategy -  - Decides when to update values based on pick interactions.\n\n select - Continuously updates values when being selected/picked. holdfirst - Holds the values first returned when geometry picked. holdlast - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space. always - Continuously updates values at the location picked.\n\t\t\n  clearprev - This parameter is only enabled when the Strategy is set to Hold Last Picked. When this is on, starting a new pick on empty space will clear the values. When off, the last values will be held if the pick starts on empty space.\n\n\n\t\t\n  responsetime -  - Determines when the values are updated.\n\n nextcook - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times. thiscook - The values are captured and updated in the current frame.\n\t\t\n  pickradius - Controls the radius of the search area for the pick. If nothing is found at the pick's center it will keep searching for geometry in the search area defined by the Pick Radius.\n\n\n\t\t\n  pickradstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'spokes' outwards from the center pick point.\n\n\n\t\t\n  pickcirstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'rings' outwards from the center pick point.\n\n\n\t\t\n  rendertop - Specifies which scene to pick on, and which camera to pick from. By default the first camera listed in the Render TOP will be used for picking. Another camera can be specified with the 'Custom Pick Camera(s)' parameter, and multiple different cameras can be selected using the camera input column.\n\n\n\t\t\n  custompickcameras - Picking can be done from the viewport of custom camera(s) by specifying one or more Camera COMP here. If this parameter is blank the cameras from the Render  are used. To pick from the viewpoint of multiple different cameras, a camera column must be specified in the input .\n\n\n\t\t\n  allowmulticamera - Multi-Camera Rendering is a faster way to render multiple passes at the same time, and is thus a speed improvement for doing many picks at the same time. This feature may not work correctly for some older GLSL MATs made in 088 though, so this parameter allows forcing off this speed improvement if necessary. Generally it should be left on though.\n\n\n\t\t\n  usepickableflags - When turned on only geometry whose Pickable Flag is on can be selected by the Render Pick . The Pickable  is found on all Object components.\n\n\n\t\t\n  includenonpickable - Includes the non-pickable objects in the picking algorithm such that non-pickable objects may occlude pickable objects.  For example, if there is only one pickable object in the scene with lots of additional non-pickable geometry is present, turning this parameter on will prevent the pickable object from being selected if it is behind a non-pickage object (occluded by the non-pickage object).\n\n\n\t\t\n  mergeinputdat - Appends input table to the Render Pick DATs columns.\n\n\n\t\t\n  activatecallbacks - Enables   for each pick event.\n\n\n\t\t\n  callbacks -  to a  containing callbacks for pick event received.\n\n\n\n\n\n  position -  - Returns the position of the point picked on the geometry. Columns tx, ty, tz.\n\n no - Do not return position values. sopspace - Return position of point picked in  transform space. worldspace - Return position of point picked in world transform space. cameraspace - Return position of point picked in camera transform space. relativetoobj - Return position of point picked relative to object specified in   parameter.\n\t\t\n  normal -  - Returns the normals of the point picked on the geometry. Columns nx, ny, nz.\n\n no - Do not return normal values. sopspace - Return normals of point picked in  transform space. worldspace - Return normals of point picked in world transform space. cameraspace - Return normals of point picked in camera transform space. relativetoobj - Return normals of point picked relative to object specified in   parameter.\n\t\t\n  referenceobj - Object used when fetching position or normals Relative to .\n\n\n\t\t\n  color - Returns the point color of the point picked on the geometry. Columns cr, cg, cb, ca.\n\n\n\t\t\n  uv - Returns the texture coordinates of the point picked on the geometry. Columns mapu, mapv, mapw.\n\n\n\t\t\n  depth - Returns the depth of the point picked on the geometry. This value a non-linear ratio of the point's position between the near and far planes of the Depth Buffer. Column is depth.\n\n\n\t\t\n  instanceid - Returns the  ID of the object. This will always be 0 if instancing is off. Column is instance.\n\n\n\t\t\n  customattrib1 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib1type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib2 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib2type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib3 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib3type - The type of attribute is selected from this menu.\n\n\n\t\t\n  customattrib4 - Specify which custom attributes to return from the object.\n\n\n\t\t\n  customattrib4type - The type of attribute is selected from this menu.\n\n\n\n\n\n  language -  - Select how the  decides which script language to operate on.\n\n input - The  uses the inputs script language. node - The  uses it's own script language.\n\n  extension -  - Select the file extension this  should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.\n\n  customext - Specifiy the custom extension.\n\n\n\n  wordwrap -  - Enable Word Wrap for Node Display.\n\n input - The  uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.\n\n\n\n -\n\nExtra Information for the Render Pick  can be accessed via an Info CHOP.\n\n\n\n - Number of rows in this . - Number of columns in this .\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\nDATs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a python Script or GLSL Shader, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.\n\n\n\nAn Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.\n\n\n\nAn Operator Family that contains its own Network. There are sixteen 3D Object Component and ten 2D Panel Component types. See also Network Path.\n\n\n\nTo re-compute the output data of the Operators. An operator cooks when (1) its inputs change, (2) its Parameters change, (3) when the timeline moves forward in some cases, or (4) Scripting commands are run on the node. When the operator is a Panel Component, it also cooks when a user interacts with it. When an operator cooks, it usually causes operators connected to its output to re-cook. When TouchDesigner draws the screen, it re-cooks all the Dependencies - the necessary operators in all Networks, contributing to a frame's total \"cook time\".\n\n\n\nRendering is the creation of a 3D image with the Render TOP. Rendering is also used more generally to include the compositing (with TOPs) to generate an output image.\n\n\n\nIndicator of certain states of an operator (bypass, display, lock, viewer active).\n\n\n\nSome operators have a DAT docked to them that contains some python functions. These functions, called \"callbacks\", get called when something in the operator changes.\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\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\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 Link. The grey dashed lines between nodes is a Reference or Link that indicates one operator is getting data from another operator from any Operator Family.\n\n\nThe grey dashed lines between nodes is a Reference (or Link). A Reference is (1) a Parameter Reference, a parameter in an OP that is a name or path to another operator, (2) a Node Reference, an expression in a parameter or DAT script that contains the name or path of another operator, (3) a DAT Cell Reference or (4) a CHOP Channel Reference.\n\n\nA Link or Reference is a dashed line between nodes that represent other data flowing between nodes. Examples are CHOP Exports, node Paths in parameters, and expressions in parameters referencing CHOP channels, DAT tables and other nodes. In contrast is a Wire that connects nodes in the same Operator Family.\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\n(1) A Geometry Component can instance and render its SOP geometry many times: once for each sample in a CHOP, row of a DAT table, pixel in a TOP, or point of a SOP, (2) An instance is an OP that doesn't actually have its own data, but rather just refers to an OP (or has an input) whose data it uses. This includes Null OPs, Switch OPs and in some cases Select OPs.\n\n\n\nThe generic thing that holds an Operator, and includes Flags (display, bypass, lock, render, immune) and its position/size in the network. Whether you \"lay down an Operator\" or \"lay down an Node\", you're doing the same thing.\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\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Render_Pick_DAT&oldid=24335\"",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.141Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Strategy",
      "label": "Strategy",
      "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": "strategy -  - Decides when to update values based on pick interactions.\n\n select - Continuously updates values when being selected/picked. holdfirst - Holds the values first returned when geometry picked. holdlast - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space. always - Continuously updates values at the location picked.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.141Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "While Select",
      "label": "While Select",
      "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": "select - Continuously updates values when being selected/picked. holdfirst - Holds the values first returned when geometry picked. holdlast - Holds the values last returned when geometry picked. This differs from the Continuous strategy in that it will hold the last values picked on geometry if the pick starts sampling empty space (no geometry in that part of the scene). Alternatively, using the Continuous strategy the values will be cleared to zero if the pick starts sampling empty space. always - Continuously updates values at the location picked.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.141Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Clear Previous Pick on New Pick",
      "label": "Clear Previous Pick on New Pick",
      "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": "clearprev - This parameter is only enabled when the Strategy is set to Hold Last Picked. When this is on, starting a new pick on empty space will clear the values. When off, the last values will be held if the pick starts on empty space.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Response Time",
      "label": "Response Time",
      "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": "responsetime -  - Determines when the values are updated.\n\n nextcook - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times. thiscook - The values are captured and updated in the current frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Next Cook (Faster)",
      "label": "Next Cook (Faster)",
      "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": "nextcook - The values are captured on the current frame and updated next frame. Results are from the previous frame, but much faster cook times. thiscook - The values are captured and updated in the current frame.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Pick Radius",
      "label": "Pick 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": "pickradius - Controls the radius of the search area for the pick. If nothing is found at the pick's center it will keep searching for geometry in the search area defined by the Pick Radius.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Pick Radial Step",
      "label": "Pick Radial Step",
      "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": "pickradstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'spokes' outwards from the center pick point.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Pick Circular Step",
      "label": "Pick Circular Step",
      "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": "pickcirstep - Used to reduce the searching within the search area. The search area is sampled at locations that correspond to 'rings' outwards from the center pick point.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Render/RenderPass TOP",
      "label": "Render/RenderPass TOP",
      "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": "rendertop - Specifies which scene to pick on, and which camera to pick from. By default the first camera listed in the Render TOP will be used for picking. Another camera can be specified with the 'Custom Pick Camera(s)' parameter, and multiple different cameras can be selected using the camera input column.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Pick Camera(s)",
      "label": "Custom Pick Camera(s)",
      "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": "custompickcameras - Picking can be done from the viewport of custom camera(s) by specifying one or more Camera COMP here. If this parameter is blank the cameras from the Render  are used. To pick from the viewpoint of multiple different cameras, a camera column must be specified in the input .",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Allow Multi-Camera Rendering",
      "label": "Allow Multi-Camera Rendering",
      "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": "allowmulticamera - Multi-Camera Rendering is a faster way to render multiple passes at the same time, and is thus a speed improvement for doing many picks at the same time. This feature may not work correctly for some older GLSL MATs made in 088 though, so this parameter allows forcing off this speed improvement if necessary. Generally it should be left on though.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Use Pickable Flags",
      "label": "Use Pickable Flags",
      "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": "usepickableflags - When turned on only geometry whose Pickable Flag is on can be selected by the Render Pick . The Pickable  is found on all Object components.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Include Non-Pickable Objects",
      "label": "Include Non-Pickable Objects",
      "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": "includenonpickable - Includes the non-pickable objects in the picking algorithm such that non-pickable objects may occlude pickable objects.  For example, if there is only one pickable object in the scene with lots of additional non-pickable geometry is present, turning this parameter on will prevent the pickable object from being selected if it is behind a non-pickage object (occluded by the non-pickage object).",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Merge Input DAT",
      "label": "Merge Input DAT",
      "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": "mergeinputdat - Appends input table to the Render Pick DATs columns.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Activate Callbacks",
      "label": "Activate Callbacks",
      "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": "activatecallbacks - Enables   for each pick event.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Callbacks DAT",
      "label": "Callbacks DAT",
      "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": "callbacks -  to a  containing callbacks for pick event received.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Position",
      "label": "Fetch Position",
      "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": "position -  - Returns the position of the point picked on the geometry. Columns tx, ty, tz.\n\n no - Do not return position values. sopspace - Return position of point picked in  transform space. worldspace - Return position of point picked in world transform space. cameraspace - Return position of point picked in camera transform space. relativetoobj - Return position of point picked relative to object specified in   parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "No",
      "label": "No",
      "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": "no - Do not return position values. sopspace - Return position of point picked in  transform space. worldspace - Return position of point picked in world transform space. cameraspace - Return position of point picked in camera transform space. relativetoobj - Return position of point picked relative to object specified in   parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Normal",
      "label": "Fetch Normal",
      "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": "normal -  - Returns the normals of the point picked on the geometry. Columns nx, ny, nz.\n\n no - Do not return normal values. sopspace - Return normals of point picked in  transform space. worldspace - Return normals of point picked in world transform space. cameraspace - Return normals of point picked in camera transform space. relativetoobj - Return normals of point picked relative to object specified in   parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "No",
      "label": "No",
      "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": "no - Do not return normal values. sopspace - Return normals of point picked in  transform space. worldspace - Return normals of point picked in world transform space. cameraspace - Return normals of point picked in camera transform space. relativetoobj - Return normals of point picked relative to object specified in   parameter.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Reference Object",
      "label": "Reference 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": "referenceobj - Object used when fetching position or normals Relative 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-08T00:37:52.142Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Point Color",
      "label": "Fetch Point Color",
      "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": "color - Returns the point color of the point picked on the geometry. Columns cr, cg, cb, ca.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Texture UV",
      "label": "Fetch Texture UV",
      "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": "uv - Returns the texture coordinates of the point picked on the geometry. Columns mapu, mapv, mapw.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Depth",
      "label": "Fetch Depth",
      "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": "depth - Returns the depth of the point picked on the geometry. This value a non-linear ratio of the point's position between the near and far planes of the Depth Buffer. Column is depth.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Fetch Instance ID",
      "label": "Fetch Instance ID",
      "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": "instanceid - Returns the  ID of the object. This will always be 0 if instancing is off. Column is instance.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 1",
      "label": "Custom Attrib 1",
      "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": "customattrib1 - Specify which custom attributes to return from the object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 1 Type",
      "label": "Custom Attrib 1 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": "customattrib1type - The type of attribute is selected from this menu.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 2",
      "label": "Custom Attrib 2",
      "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": "customattrib2 - Specify which custom attributes to return from the object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 2 Type",
      "label": "Custom Attrib 2 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": "customattrib2type - The type of attribute is selected from this menu.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 3",
      "label": "Custom Attrib 3",
      "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": "customattrib3 - Specify which custom attributes to return from the object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 3 Type",
      "label": "Custom Attrib 3 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": "customattrib3type - The type of attribute is selected from this menu.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 4",
      "label": "Custom Attrib 4",
      "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": "customattrib4 - Specify which custom attributes to return from the object.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Attrib 4 Type",
      "label": "Custom Attrib 4 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": "customattrib4type - The type of attribute is selected from this menu.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Language",
      "label": "Language",
      "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": "language -  - Select how the  decides which script language to operate on.\n\n input - The  uses the inputs script language. node - The  uses it's own script language.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Input",
      "label": "Input",
      "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": "input - The  uses the inputs script language. node - The  uses it's own script language.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Edit/View Extension",
      "label": "Edit/View Extension",
      "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": "extension -  - Select the file extension this  should expose to external editors.\n\n dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "dat",
      "label": "dat",
      "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": "dat - various common file extensions. language - pick extension from DATs script language. custom - Specify a custom extension.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Custom Extension",
      "label": "Custom Extension",
      "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": "customext - Specifiy the custom extension.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Word Wrap",
      "label": "Word Wrap",
      "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": "wordwrap -  - Enable Word Wrap for Node Display.\n\n input - The  uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    },
    {
      "id": null,
      "name": "Input",
      "label": "Input",
      "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": "input - The  uses the inputs setting. on - Turn on Word Wrap. off - Turn off Word Wrap.",
      "tooltip": "",
      "help": "",
      "units": "",
      "examples": [],
      "isReadOnly": false,
      "isAdvanced": false,
      "isHidden": false,
      "isAnimatable": true,
      "isExpression": false,
      "isPython": false,
      "dependsOn": [],
      "affects": [],
      "linkedTo": [],
      "expressionLanguage": "",
      "defaultExpression": "",
      "commonExpressions": [],
      "order": 0,
      "isVisible": true,
      "conditionalDisplay": null,
      "isValid": true,
      "validationErrors": [],
      "lastUpdated": "2025-08-08T00:37:52.143Z",
      "rawData": {},
      "sourceElement": null
    }
  ],
  "parameterGroups": {},
  "codeExamples": [],
  "pythonExamples": [],
  "expressions": [],
  "commonInputs": [],
  "commonOutputs": [],
  "relatedOperators": [],
  "workflowPatterns": [],
  "images": [],
  "videos": [],
  "assets": [],
  "keywords": [
    "render",
    "pick",
    "lets",
    "information",
    "about",
    "surface",
    "pixel",
    "render,",
    "allowing",
    "implement"
  ],
  "tags": [
    "DAT",
    "TouchDesigner",
    "Render Pick"
  ],
  "searchWeight": 1,
  "contentHash": "",
  "processingDate": "2025-08-08T00:37:52.144Z",
  "processingVersion": "1.0.0",
  "isValid": true,
  "validationErrors": []
}