@bottobot/td-mcp
Version:
TouchDesigner Documentation MCP Server v2.3 - Pure MCP server for VS Code/Codium with comprehensive operator documentation for 629 operators + 7 tutorials across all categories (TOP, CHOP, SOP, DAT, MAT, COMP, POP). Features experimental POP operators wit
1,838 lines • 98.7 kB
JSON
{
"id": "leap_motion_chop",
"name": "Leap Motion CHOP",
"displayName": "Leap Motion CHOP",
"category": "CHOP",
"subcategory": "Generators",
"version": "",
"lastUpdated": "2025-08-07T07:50:02.989Z",
"sourceFile": "C:\\Program Files\\Derivative\\TouchDesigner\\Samples\\Learn\\OfflineHelp\\https.docs.derivative.ca\\Leap_Motion_CHOP.htm",
"url": "",
"description": "The Leap Motion CHOP reads hand, finger, tool and gesture data from the Leap Motion controller. It outputs hand, finger and tool positions, rotations and 'tracking' channels that indicate if these values are currently being detected and updated. Currently only 1 Leap Motion device can be connected at a time.",
"summary": "The Leap Motion CHOP reads hand, finger, tool and gesture data from the Leap Motion controller. It outputs hand, finger and tool positions, rotations and 'tracking' channels that indicate if these val",
"details": "",
"usage": "",
"tips": [],
"warnings": [],
"parameters": [
{
"id": null,
"name": "Active",
"label": "Active",
"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 Leap Motion reads hand, finger, tool and gesture data from the Leap Motion controller. It outputs hand, finger and tool positions, rotations and 'tracking' channels that indicate if these values are currently being detected and updated. Currently only 1 Leap Motion device can be connected at a time.\t\t\nTo connect with the device you will need to install the Ultraleap Tracking Software. For best performance, it is recommended to use the latest version Gemini drivers for Windows (v5.13.2 or greater) or MacOS (v5.14.0 or greater) that are available here: https://developer.leapmotion.com/tracking-software-download. Legacy version 2 or version 4 Orion drivers are also supported. See the API parameter details below for more information.\nIn addition to installing the driver, TouchDesigner must also be told where to find the tracking library. Installation instructions vary depending on the operating system:\nOn Windows: You can use the Library parameter to point to the location of the LeapC.dll (Orion/Gemini) or Leap.dll (Version 2/3) files on your system. The file is installed as part of the LeapSDK and the location may vary depending on the version and options selected during installation.\nOn MacOS: The library folder should point to the location of the Ultraleap tracking app. By default this is '/Applications/Ultraleap Hand Tracking.app' TouchDesigner will automatically find the library files inside the application's contents folder.\nTip: If using Gemini V5, the Leap Motion will only work in one orientation. By default the hands enter from the bottom of the camera view, though this can be changed in setting to invert the direction. This is an important distinction between Gemini V5 and the older V2/V4 APIs which could work in either orientation.\nNote: TouchDesigner does not include a license to use the Leap Motion hardware or software. Make sure to check with the UltraLeap website regarding any applicable licenses that you may need for your project.\nSee also Leap Motion, Leap Motion TOP\nleapmotionCHOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - When 'On' data is captured from the Leap Motion sensor.\n\n\n\t\n api - - Select between Leap Motion V2 or V4/V5 SDKs for tracking. V5 offers the fastest and most stable tracking, V2 offers some legacy features like gestures.\n\n default - Legacy tracking that includes gesture and tool tracking. Download (Windows: Orion Beta 3.2.1, MacOS: 2.3.1) on - Gemini offers the best performance with improved stability and faster hand recognition to start tracking. Download Gemini (Windows 5.13.2 or greater, MacOS 5.14 or greater) . Legacy version 4 Orion tracking is available on Windows only. Download Orion 4.1.0.\n\t\n libfolder - This parameter is used on Windows only to point to the location of the library file (.dll) that corresponds to the selected API version. The dll file can be found in the driver kit downloaded from the Ultraleap website inside the 'LeapSDK/lib/x64' folder. For V4 and V5 the file is called 'LeapC.dll', for version 2 it is called 'Leap.dll'.\nFor Gemini V5, first install the tracking software, then set this parameter to C:\\Program Files\\Ultraleap\\LeapSDK\\lib\\x64 where it will find the LeapC.dll file.\n\n\n\n hmd - - Switches the device to Head Mounted Display mode.\n\n default - on - off -\n\t\t\n debugchannels - If set, the following channels will be included:\t\nconnected - 1 if the Leap Motion sensor is connected, 0 otherwise.\nsequence_id - Unique id corresponding to the current frame.\n\n\t\t\n statuschannels - If set, the following channels will be included:\t\nhands - Number of hands detected by the sensor.\nfingers - Number of fingers detected by the sensor.\ntools - Number of tools detected by the sensor.\ngestures - Number of gestures detected by the sensor.\n[hand / finger / tool / circle / swipe / keytap / screeptap]:tracking - 1 if the data for the hand, finger, tool or gesture is actively being tracked, 0 otherwise.\n\n\t\t\n namedhands - This names the hand channels as either right (r) or left (l) hands.\n\n\n\t\t\n hands - Number of hands. The following channels will be included for each detected hand:\t\nhand*:t[xyz] - Coordinates of the hand relative to the sensor.\nhand*:r[xyz] - Rotation of the detected hand.\n\n\t\t\n lefthands - When using 'Named Hands', specify how many left hands will be tracked.\n\n\n\t\t\n righthands - When using 'Named Hands', specify how many right hands will be tracked.\n\n\n\t\t\n handvelocity - If set, the following channels will be included for each hand, in addition to any others:\t\nhand*:v[xyz] - Velocity of the detected hand.\n\n\t\t\n handsphere - This is only available when using API = Version 2 Tracking. It adds the following channels to tracking hands: \nhand*/sphere:t[xyz] - Position of the detected hand sphere.\nhand*/sphere:radius - Radius size of the detected hand sphere.\n\n\t\t\n pinchstrength - Pinch is defined as the distance between the thumb and first finger.\nhand*:pinch - How much pinch is detected between the thumb and first finger.\n\n\t\t\n grabstrength - Grab is defined as how close a hand is to being a fist.\t\nhand*:grab - How much grab is detected, strength is 0 for a flat hand and 1 for a fist.\n\n\t\t\n namedfingers - Instead of simply using a finger index number for each finger tracked, when On this names the finger channels as thumb, index, middle, ring, and pinky.\n\n\n\t\t\n fingersperhand - When not using 'Named Fingers', specify how many fingers to track per hand.\n\n\n\t\t\n fingerrotation - Track the rotation for all fingers.\t\nhand*/finger*:r[xyz] - The rotation of the finger.\n\n\t\t\n fingersize - If set, the following channels will be included for each finger, in addition to any others:\t\nhand*/finger*:length - Length of the detected finger.\nhand*/finger*:width - Width of the detected finger.\n\n\t\t\n fingerextended - Track how straight the fingers are, a finger is considered extended when it is straight as if pointing.\nhand*/finger*:extended - How straight the finger is.\n\n\t\t\n fingerjoints - Tracks the position of every joint of every finger.\nhand*/finger*/joint_mcp:t[xyz] - The mcp joint position of the finger.\nhand*/finger*/joint_pip:t[xyz] - The pip joint position of the finger.\nhand*/finger*/joint_dip:t[xyz] - The dip joint position of the finger.\nhand*/finger*/joint_tip:t[xyz] - The finger tip position.\n\n\t\t\n tools - Number of tools. The following channels will be included for each detected tool:\t\ntool*:t[xyz] - Coordinates of the tool relative to the sensor.\ntool*:length - Length of the detected tool.\ntool*:width - Width of the detected tool.\n\n\t\t\n circlegestures - Number of circle gestures. The following channels will be included for each detected Circle Gesture:\t\ncircle*:handindex - Index of the hand associated with the gesture. See Notes.\ncircle*:t[xyz] - Coordinates of the center of the Circle Gesture relative to the sensor.\ncircle*:radius - Radius of the circle in the gesture.\ncircle*:progress - Number of cycles done in the gesture.\n\n\t\t\n swipegestures - Number of swipe gestures. The following channels will be included for each detected Swipe Gesture:\t\nswipe*:handindex - Index of the hand associated with the gesture. See Notes.\nswipe*:fingerindex - Index of the finger associated with the gesture. See Notes.\nswipe*:t[xyz] - Coordinates of the Swipe Gesture relative to the sensor.\nswipe*:start[xyz] - Coordinates of the start of the Swipe Gesture relative to the sensor.\nswipe*:speed - Speed of the swipe.\n\n\t\t\n keytapgestures - Number of key tap gestures. The following channels will be included for each detected Key Tap Gesture:\t\nkeytap*:handindex - Index of the hand associated with the gesture. See Notes.\nkeytap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nkeytap*:t[xyz] - Coordinates of the Key Tap Gesture relative to the sensor.\n\n\t\t\n screentapgestures - Number of screen tap gestures, which is recognized as a quick forward tapping movement by a tool or finger. The following channels will be included for each detected screen tap gesture:\nscreentap*:handindex - Index of the hand associated with the gesture. See Notes.\nscreentap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nscreentap*:t[xyz] - Coordinates of the Screen Tap Gesture relative to the sensor.\n\n\t\t\nNOTES: Rotation order is Rx Ry Rz. All vectors are given in the following coordinate system.\t\t\t\n\nFor gestures, if handindex is 1, then channels with the prefix hand1 contain the data for the hand associated with the gesture. If handindex is -1 it means there are no channels available for the hand associated with the gesture. The same follows for fingerindex.\t\t\t\nData for all indexed prefixes (hand*, hand/finger*, etc.) will continue to correspond to the same hand/finger/tool/gesture as long as the Leap Motion sensor is detecting it.\t\t\t\nLimits for hands/fingers/tools/gestures will filter data from the Leap Motion sensor if there are more than the specified limit detected.\n\n\n timeslice - Turning this on forces the channels to be \"Time Sliced\". A is the time between the last cook frame and the current cook frame.\n\n\n\n scope - To determine which channels get affected, some CHOPs use a string on the Common page.\n\n\n\n srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or \"Linear\" if the Interpolate Options are not available.\n\n first - Use rate of first input to resample others. max - Resample to the highest sample rate. min - Resample to the lowest sample rate. err - Doesn't accept conflicting sample rates.\n\n exportmethod - - This will determine how to connect the channel to the parameter. Refer to the Export article for more information.\n\n datindex - Uses the docked table and references the channel via the index of the channel in the . datname - Uses the docked table and references the channel via the name of the channel in the . autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.\n\n autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is : are relative to.\n\n\n\n exporttable - The used to hold the export information when using the Table Methods (See above).\n\n\n\n\n\nExtra Information for the Leap Motion can be accessed via an Info CHOP.\n\n\n - - - - -\n - Start of the interval in samples. - Number of samples in the . - The samplerate of the channels in frames per second. - Number of channels in the . - 1 if is enabled, 0 otherwise. - A count of how often the export connections have been updated.\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\\nwikieditorwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nCHOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nA Folder in TouchDesigner always refers to a Windows or macOS operating system directory/folder system that contain files and other folders. It does not refer to operators within TouchDesigner. See Network Path.\n\n\n\nA Time Slice is the time from the last cook frame to the current cook frame. In CHOPs it is the set of short channels that contain the CHOP channels' samples between the last and the current cook frame.\n\n\n\nA parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator. TOPs have Channel Mask, a similar feature.\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nExporting is the connection of CHOP channels to parameters of operators. The output of each exporting CHOP is one or more channels, active only while the CHOP Viewer is on. The current value of a channel can be exported to a parameter of any operator, overriding that parameter's value. See Parameter.\n\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\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\nEvery operator in TouchDesigner has a set of control Parameters that can be integer or floating point numbers, menus, binary toggles, text strings or operator paths, which determine the output of the operator.\n\n\n\nTouchDesigner is a hierarchy of components. \"root\" is the top-most network in the hierarchy. The Network Path or Path for root is simply /. A typical path is /project1/moviein1.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Leap_Motion_CHOP&oldid=31114\"\n\t\tCategory: CHOPs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.982Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"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 Leap Motion reads hand, finger, tool and gesture data from the Leap Motion controller. It outputs hand, finger and tool positions, rotations and 'tracking' channels that indicate if these values are currently being detected and updated. Currently only 1 Leap Motion device can be connected at a time.\t\t\nTo connect with the device you will need to install the Ultraleap Tracking Software. For best performance, it is recommended to use the latest version Gemini drivers for Windows (v5.13.2 or greater) or MacOS (v5.14.0 or greater) that are available here: https://developer.leapmotion.com/tracking-software-download. Legacy version 2 or version 4 Orion drivers are also supported. See the API parameter details below for more information.\nIn addition to installing the driver, TouchDesigner must also be told where to find the tracking library. Installation instructions vary depending on the operating system:\nOn Windows: You can use the Library parameter to point to the location of the LeapC.dll (Orion/Gemini) or Leap.dll (Version 2/3) files on your system. The file is installed as part of the LeapSDK and the location may vary depending on the version and options selected during installation.\nOn MacOS: The library folder should point to the location of the Ultraleap tracking app. By default this is '/Applications/Ultraleap Hand Tracking.app' TouchDesigner will automatically find the library files inside the application's contents folder.\nTip: If using Gemini V5, the Leap Motion will only work in one orientation. By default the hands enter from the bottom of the camera view, though this can be changed in setting to invert the direction. This is an important distinction between Gemini V5 and the older V2/V4 APIs which could work in either orientation.\nNote: TouchDesigner does not include a license to use the Leap Motion hardware or software. Make sure to check with the UltraLeap website regarding any applicable licenses that you may need for your project.\nSee also Leap Motion, Leap Motion TOP\nleapmotionCHOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - When 'On' data is captured from the Leap Motion sensor.\n\n\n\t\n api - - Select between Leap Motion V2 or V4/V5 SDKs for tracking. V5 offers the fastest and most stable tracking, V2 offers some legacy features like gestures.\n\n default - Legacy tracking that includes gesture and tool tracking. Download (Windows: Orion Beta 3.2.1, MacOS: 2.3.1) on - Gemini offers the best performance with improved stability and faster hand recognition to start tracking. Download Gemini (Windows 5.13.2 or greater, MacOS 5.14 or greater) . Legacy version 4 Orion tracking is available on Windows only. Download Orion 4.1.0.\n\t\n libfolder - This parameter is used on Windows only to point to the location of the library file (.dll) that corresponds to the selected API version. The dll file can be found in the driver kit downloaded from the Ultraleap website inside the 'LeapSDK/lib/x64' folder. For V4 and V5 the file is called 'LeapC.dll', for version 2 it is called 'Leap.dll'.\nFor Gemini V5, first install the tracking software, then set this parameter to C:\\Program Files\\Ultraleap\\LeapSDK\\lib\\x64 where it will find the LeapC.dll file.\n\n\n\n hmd - - Switches the device to Head Mounted Display mode.\n\n default - on - off -\n\t\t\n debugchannels - If set, the following channels will be included:\t\nconnected - 1 if the Leap Motion sensor is connected, 0 otherwise.\nsequence_id - Unique id corresponding to the current frame.\n\n\t\t\n statuschannels - If set, the following channels will be included:\t\nhands - Number of hands detected by the sensor.\nfingers - Number of fingers detected by the sensor.\ntools - Number of tools detected by the sensor.\ngestures - Number of gestures detected by the sensor.\n[hand / finger / tool / circle / swipe / keytap / screeptap]:tracking - 1 if the data for the hand, finger, tool or gesture is actively being tracked, 0 otherwise.\n\n\t\t\n namedhands - This names the hand channels as either right (r) or left (l) hands.\n\n\n\t\t\n hands - Number of hands. The following channels will be included for each detected hand:\t\nhand*:t[xyz] - Coordinates of the hand relative to the sensor.\nhand*:r[xyz] - Rotation of the detected hand.\n\n\t\t\n lefthands - When using 'Named Hands', specify how many left hands will be tracked.\n\n\n\t\t\n righthands - When using 'Named Hands', specify how many right hands will be tracked.\n\n\n\t\t\n handvelocity - If set, the following channels will be included for each hand, in addition to any others:\t\nhand*:v[xyz] - Velocity of the detected hand.\n\n\t\t\n handsphere - This is only available when using API = Version 2 Tracking. It adds the following channels to tracking hands: \nhand*/sphere:t[xyz] - Position of the detected hand sphere.\nhand*/sphere:radius - Radius size of the detected hand sphere.\n\n\t\t\n pinchstrength - Pinch is defined as the distance between the thumb and first finger.\nhand*:pinch - How much pinch is detected between the thumb and first finger.\n\n\t\t\n grabstrength - Grab is defined as how close a hand is to being a fist.\t\nhand*:grab - How much grab is detected, strength is 0 for a flat hand and 1 for a fist.\n\n\t\t\n namedfingers - Instead of simply using a finger index number for each finger tracked, when On this names the finger channels as thumb, index, middle, ring, and pinky.\n\n\n\t\t\n fingersperhand - When not using 'Named Fingers', specify how many fingers to track per hand.\n\n\n\t\t\n fingerrotation - Track the rotation for all fingers.\t\nhand*/finger*:r[xyz] - The rotation of the finger.\n\n\t\t\n fingersize - If set, the following channels will be included for each finger, in addition to any others:\t\nhand*/finger*:length - Length of the detected finger.\nhand*/finger*:width - Width of the detected finger.\n\n\t\t\n fingerextended - Track how straight the fingers are, a finger is considered extended when it is straight as if pointing.\nhand*/finger*:extended - How straight the finger is.\n\n\t\t\n fingerjoints - Tracks the position of every joint of every finger.\nhand*/finger*/joint_mcp:t[xyz] - The mcp joint position of the finger.\nhand*/finger*/joint_pip:t[xyz] - The pip joint position of the finger.\nhand*/finger*/joint_dip:t[xyz] - The dip joint position of the finger.\nhand*/finger*/joint_tip:t[xyz] - The finger tip position.\n\n\t\t\n tools - Number of tools. The following channels will be included for each detected tool:\t\ntool*:t[xyz] - Coordinates of the tool relative to the sensor.\ntool*:length - Length of the detected tool.\ntool*:width - Width of the detected tool.\n\n\t\t\n circlegestures - Number of circle gestures. The following channels will be included for each detected Circle Gesture:\t\ncircle*:handindex - Index of the hand associated with the gesture. See Notes.\ncircle*:t[xyz] - Coordinates of the center of the Circle Gesture relative to the sensor.\ncircle*:radius - Radius of the circle in the gesture.\ncircle*:progress - Number of cycles done in the gesture.\n\n\t\t\n swipegestures - Number of swipe gestures. The following channels will be included for each detected Swipe Gesture:\t\nswipe*:handindex - Index of the hand associated with the gesture. See Notes.\nswipe*:fingerindex - Index of the finger associated with the gesture. See Notes.\nswipe*:t[xyz] - Coordinates of the Swipe Gesture relative to the sensor.\nswipe*:start[xyz] - Coordinates of the start of the Swipe Gesture relative to the sensor.\nswipe*:speed - Speed of the swipe.\n\n\t\t\n keytapgestures - Number of key tap gestures. The following channels will be included for each detected Key Tap Gesture:\t\nkeytap*:handindex - Index of the hand associated with the gesture. See Notes.\nkeytap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nkeytap*:t[xyz] - Coordinates of the Key Tap Gesture relative to the sensor.\n\n\t\t\n screentapgestures - Number of screen tap gestures, which is recognized as a quick forward tapping movement by a tool or finger. The following channels will be included for each detected screen tap gesture:\nscreentap*:handindex - Index of the hand associated with the gesture. See Notes.\nscreentap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nscreentap*:t[xyz] - Coordinates of the Screen Tap Gesture relative to the sensor.\n\n\t\t\nNOTES: Rotation order is Rx Ry Rz. All vectors are given in the following coordinate system.\t\t\t\n\nFor gestures, if handindex is 1, then channels with the prefix hand1 contain the data for the hand associated with the gesture. If handindex is -1 it means there are no channels available for the hand associated with the gesture. The same follows for fingerindex.\t\t\t\nData for all indexed prefixes (hand*, hand/finger*, etc.) will continue to correspond to the same hand/finger/tool/gesture as long as the Leap Motion sensor is detecting it.\t\t\t\nLimits for hands/fingers/tools/gestures will filter data from the Leap Motion sensor if there are more than the specified limit detected.\n\n\n timeslice - Turning this on forces the channels to be \"Time Sliced\". A is the time between the last cook frame and the current cook frame.\n\n\n\n scope - To determine which channels get affected, some CHOPs use a string on the Common page.\n\n\n\n srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or \"Linear\" if the Interpolate Options are not available.\n\n first - Use rate of first input to resample others. max - Resample to the highest sample rate. min - Resample to the lowest sample rate. err - Doesn't accept conflicting sample rates.\n\n exportmethod - - This will determine how to connect the channel to the parameter. Refer to the Export article for more information.\n\n datindex - Uses the docked table and references the channel via the index of the channel in the . datname - Uses the docked table and references the channel via the name of the channel in the . autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.\n\n autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is : are relative to.\n\n\n\n exporttable - The used to hold the export information when using the Table Methods (See above).\n\n\n\n\n\nExtra Information for the Leap Motion can be accessed via an Info CHOP.\n\n\n - - - - -\n - Start of the interval in samples. - Number of samples in the . - The samplerate of the channels in frames per second. - Number of channels in the . - 1 if is enabled, 0 otherwise. - A count of how often the export connections have been updated.\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\\nwikieditorwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nCHOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nA Folder in TouchDesigner always refers to a Windows or macOS operating system directory/folder system that contain files and other folders. It does not refer to operators within TouchDesigner. See Network Path.\n\n\n\nA Time Slice is the time from the last cook frame to the current cook frame. In CHOPs it is the set of short channels that contain the CHOP channels' samples between the last and the current cook frame.\n\n\n\nA parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator. TOPs have Channel Mask, a similar feature.\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nExporting is the connection of CHOP channels to parameters of operators. The output of each exporting CHOP is one or more channels, active only while the CHOP Viewer is on. The current value of a channel can be exported to a parameter of any operator, overriding that parameter's value. See Parameter.\n\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\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\nEvery operator in TouchDesigner has a set of control Parameters that can be integer or floating point numbers, menus, binary toggles, text strings or operator paths, which determine the output of the operator.\n\n\n\nTouchDesigner is a hierarchy of components. \"root\" is the top-most network in the hierarchy. The Network Path or Path for root is simply /. A typical path is /project1/moviein1.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Leap_Motion_CHOP&oldid=31114\"\n\t\tCategory: CHOPs",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.984Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"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 Leap Motion reads hand, finger, tool and gesture data from the Leap Motion controller. It outputs hand, finger and tool positions, rotations and 'tracking' channels that indicate if these values are currently being detected and updated. Currently only 1 Leap Motion device can be connected at a time.\t\t\nTo connect with the device you will need to install the Ultraleap Tracking Software. For best performance, it is recommended to use the latest version Gemini drivers for Windows (v5.13.2 or greater) or MacOS (v5.14.0 or greater) that are available here: https://developer.leapmotion.com/tracking-software-download. Legacy version 2 or version 4 Orion drivers are also supported. See the API parameter details below for more information.\nIn addition to installing the driver, TouchDesigner must also be told where to find the tracking library. Installation instructions vary depending on the operating system:\nOn Windows: You can use the Library parameter to point to the location of the LeapC.dll (Orion/Gemini) or Leap.dll (Version 2/3) files on your system. The file is installed as part of the LeapSDK and the location may vary depending on the version and options selected during installation.\nOn MacOS: The library folder should point to the location of the Ultraleap tracking app. By default this is '/Applications/Ultraleap Hand Tracking.app' TouchDesigner will automatically find the library files inside the application's contents folder.\nTip: If using Gemini V5, the Leap Motion will only work in one orientation. By default the hands enter from the bottom of the camera view, though this can be changed in setting to invert the direction. This is an important distinction between Gemini V5 and the older V2/V4 APIs which could work in either orientation.\nNote: TouchDesigner does not include a license to use the Leap Motion hardware or software. Make sure to check with the UltraLeap website regarding any applicable licenses that you may need for your project.\nSee also Leap Motion, Leap Motion TOP\nleapmotionCHOP_Class\n\nContents\n \n \n \n \n \n \n \n\n\n\n\n\n active - When 'On' data is captured from the Leap Motion sensor.\n\n\n\t\n api - - Select between Leap Motion V2 or V4/V5 SDKs for tracking. V5 offers the fastest and most stable tracking, V2 offers some legacy features like gestures.\n\n default - Legacy tracking that includes gesture and tool tracking. Download (Windows: Orion Beta 3.2.1, MacOS: 2.3.1) on - Gemini offers the best performance with improved stability and faster hand recognition to start tracking. Download Gemini (Windows 5.13.2 or greater, MacOS 5.14 or greater) . Legacy version 4 Orion tracking is available on Windows only. Download Orion 4.1.0.\n\t\n libfolder - This parameter is used on Windows only to point to the location of the library file (.dll) that corresponds to the selected API version. The dll file can be found in the driver kit downloaded from the Ultraleap website inside the 'LeapSDK/lib/x64' folder. For V4 and V5 the file is called 'LeapC.dll', for version 2 it is called 'Leap.dll'.\nFor Gemini V5, first install the tracking software, then set this parameter to C:\\Program Files\\Ultraleap\\LeapSDK\\lib\\x64 where it will find the LeapC.dll file.\n\n\n\n hmd - - Switches the device to Head Mounted Display mode.\n\n default - on - off -\n\t\t\n debugchannels - If set, the following channels will be included:\t\nconnected - 1 if the Leap Motion sensor is connected, 0 otherwise.\nsequence_id - Unique id corresponding to the current frame.\n\n\t\t\n statuschannels - If set, the following channels will be included:\t\nhands - Number of hands detected by the sensor.\nfingers - Number of fingers detected by the sensor.\ntools - Number of tools detected by the sensor.\ngestures - Number of gestures detected by the sensor.\n[hand / finger / tool / circle / swipe / keytap / screeptap]:tracking - 1 if the data for the hand, finger, tool or gesture is actively being tracked, 0 otherwise.\n\n\t\t\n namedhands - This names the hand channels as either right (r) or left (l) hands.\n\n\n\t\t\n hands - Number of hands. The following channels will be included for each detected hand:\t\nhand*:t[xyz] - Coordinates of the hand relative to the sensor.\nhand*:r[xyz] - Rotation of the detected hand.\n\n\t\t\n lefthands - When using 'Named Hands', specify how many left hands will be tracked.\n\n\n\t\t\n righthands - When using 'Named Hands', specify how many right hands will be tracked.\n\n\n\t\t\n handvelocity - If set, the following channels will be included for each hand, in addition to any others:\t\nhand*:v[xyz] - Velocity of the detected hand.\n\n\t\t\n handsphere - This is only available when using API = Version 2 Tracking. It adds the following channels to tracking hands: \nhand*/sphere:t[xyz] - Position of the detected hand sphere.\nhand*/sphere:radius - Radius size of the detected hand sphere.\n\n\t\t\n pinchstrength - Pinch is defined as the distance between the thumb and first finger.\nhand*:pinch - How much pinch is detected between the thumb and first finger.\n\n\t\t\n grabstrength - Grab is defined as how close a hand is to being a fist.\t\nhand*:grab - How much grab is detected, strength is 0 for a flat hand and 1 for a fist.\n\n\t\t\n namedfingers - Instead of simply using a finger index number for each finger tracked, when On this names the finger channels as thumb, index, middle, ring, and pinky.\n\n\n\t\t\n fingersperhand - When not using 'Named Fingers', specify how many fingers to track per hand.\n\n\n\t\t\n fingerrotation - Track the rotation for all fingers.\t\nhand*/finger*:r[xyz] - The rotation of the finger.\n\n\t\t\n fingersize - If set, the following channels will be included for each finger, in addition to any others:\t\nhand*/finger*:length - Length of the detected finger.\nhand*/finger*:width - Width of the detected finger.\n\n\t\t\n fingerextended - Track how straight the fingers are, a finger is considered extended when it is straight as if pointing.\nhand*/finger*:extended - How straight the finger is.\n\n\t\t\n fingerjoints - Tracks the position of every joint of every finger.\nhand*/finger*/joint_mcp:t[xyz] - The mcp joint position of the finger.\nhand*/finger*/joint_pip:t[xyz] - The pip joint position of the finger.\nhand*/finger*/joint_dip:t[xyz] - The dip joint position of the finger.\nhand*/finger*/joint_tip:t[xyz] - The finger tip position.\n\n\t\t\n tools - Number of tools. The following channels will be included for each detected tool:\t\ntool*:t[xyz] - Coordinates of the tool relative to the sensor.\ntool*:length - Length of the detected tool.\ntool*:width - Width of the detected tool.\n\n\t\t\n circlegestures - Number of circle gestures. The following channels will be included for each detected Circle Gesture:\t\ncircle*:handindex - Index of the hand associated with the gesture. See Notes.\ncircle*:t[xyz] - Coordinates of the center of the Circle Gesture relative to the sensor.\ncircle*:radius - Radius of the circle in the gesture.\ncircle*:progress - Number of cycles done in the gesture.\n\n\t\t\n swipegestures - Number of swipe gestures. The following channels will be included for each detected Swipe Gesture:\t\nswipe*:handindex - Index of the hand associated with the gesture. See Notes.\nswipe*:fingerindex - Index of the finger associated with the gesture. See Notes.\nswipe*:t[xyz] - Coordinates of the Swipe Gesture relative to the sensor.\nswipe*:start[xyz] - Coordinates of the start of the Swipe Gesture relative to the sensor.\nswipe*:speed - Speed of the swipe.\n\n\t\t\n keytapgestures - Number of key tap gestures. The following channels will be included for each detected Key Tap Gesture:\t\nkeytap*:handindex - Index of the hand associated with the gesture. See Notes.\nkeytap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nkeytap*:t[xyz] - Coordinates of the Key Tap Gesture relative to the sensor.\n\n\t\t\n screentapgestures - Number of screen tap gestures, which is recognized as a quick forward tapping movement by a tool or finger. The following channels will be included for each detected screen tap gesture:\nscreentap*:handindex - Index of the hand associated with the gesture. See Notes.\nscreentap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nscreentap*:t[xyz] - Coordinates of the Screen Tap Gesture relative to the sensor.\n\n\t\t\nNOTES: Rotation order is Rx Ry Rz. All vectors are given in the following coordinate system.\t\t\t\n\nFor gestures, if handindex is 1, then channels with the prefix hand1 contain the data for the hand associated with the gesture. If handindex is -1 it means there are no channels available for the hand associated with the gesture. The same follows for fingerindex.\t\t\t\nData for all indexed prefixes (hand*, hand/finger*, etc.) will continue to correspond to the same hand/finger/tool/gesture as long as the Leap Motion sensor is detecting it.\t\t\t\nLimits for hands/fingers/tools/gestures will filter data from the Leap Motion sensor if there are more than the specified limit detected.\n\n\n timeslice - Turning this on forces the channels to be \"Time Sliced\". A is the time between the last cook frame and the current cook frame.\n\n\n\n scope - To determine which channels get affected, some CHOPs use a string on the Common page.\n\n\n\n srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or \"Linear\" if the Interpolate Options are not available.\n\n first - Use rate of first input to resample others. max - Resample to the highest sample rate. min - Resample to the lowest sample rate. err - Doesn't accept conflicting sample rates.\n\n exportmethod - - This will determine how to connect the channel to the parameter. Refer to the Export article for more information.\n\n datindex - Uses the docked table and references the channel via the index of the channel in the . datname - Uses the docked table and references the channel via the name of the channel in the . autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.\n\n autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is : are relative to.\n\n\n\n exporttable - The used to hold the export information when using the Table Methods (See above).\n\n\n\n\n\nExtra Information for the Leap Motion can be accessed via an Info CHOP.\n\n\n - - - - -\n - Start of the interval in samples. - Number of samples in the . - The samplerate of the channels in frames per second. - Number of channels in the . - 1 if is enabled, 0 otherwise. - A count of how often the export connections have been updated.\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\\nwikieditorwikieditorwikieditor2023.112802022.241402021.100002018.28070before 2018.28070\nCHOPs\n• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • \n\nAn Operator Family which operate on Channels (a sequence of numbers (Samples)) which are used for animation, audio, mathematics, simulation, logic, UI construction, and data streamed from/to devices and protocols.\n\n\n\nA Folder in TouchDesigner always refers to a Windows or macOS operating system directory/folder system that contain files and other folders. It does not refer to operators within TouchDesigner. See Network Path.\n\n\n\nA Time Slice is the time from the last cook frame to the current cook frame. In CHOPs it is the set of short channels that contain the CHOP channels' samples between the last and the current cook frame.\n\n\n\nA parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator. TOPs have Channel Mask, a similar feature.\n\n\n\nsamples-per-second of a CHOP. Each CHOP in your network has a sample rate. In contrast, the overall timeline has a Frame Rate, which is the number of frames to cook and display per second, generally your monitor display frequency, default 60.\n\n\n\nExporting is the connection of CHOP channels to parameters of operators. The output of each exporting CHOP is one or more channels, active only while the CHOP Viewer is on. The current value of a channel can be exported to a parameter of any operator, overriding that parameter's value. See Parameter.\n\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\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\nEvery operator in TouchDesigner has a set of control Parameters that can be integer or floating point numbers, menus, binary toggles, text strings or operator paths, which determine the output of the operator.\n\n\n\nTouchDesigner is a hierarchy of components. \"root\" is the top-most network in the hierarchy. The Network Path or Path for root is simply /. A typical path is /project1/moviein1.\n\n\n\n\n\n\n\n\nRetrieved from \"https://docs.derivative.ca/index.php?title=Leap_Motion_CHOP&oldid=31114\"",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.986Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Active",
"label": "Active",
"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": "active - When 'On' data is captured from the Leap Motion sensor.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.986Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "API",
"label": "API",
"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": "api - - Select between Leap Motion V2 or V4/V5 SDKs for tracking. V5 offers the fastest and most stable tracking, V2 offers some legacy features like gestures.\n\n default - Legacy tracking that includes gesture and tool tracking. Download (Windows: Orion Beta 3.2.1, MacOS: 2.3.1) on - Gemini offers the best performance with improved stability and faster hand recognition to start tracking. Download Gemini (Windows 5.13.2 or greater, MacOS 5.14 or greater) . Legacy version 4 Orion tracking is available on Windows only. Download Orion 4.1.0.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Version 2 Tracking",
"label": "Version 2 Tracking",
"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": "default - Legacy tracking that includes gesture and tool tracking. Download (Windows: Orion Beta 3.2.1, MacOS: 2.3.1) on - Gemini offers the best performance with improved stability and faster hand recognition to start tracking. Download Gemini (Windows 5.13.2 or greater, MacOS 5.14 or greater) . Legacy version 4 Orion tracking is available on Windows only. Download Orion 4.1.0.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Library Folder",
"label": "Library Folder",
"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": "libfolder - This parameter is used on Windows only to point to the location of the library file (.dll) that corresponds to the selected API version. The dll file can be found in the driver kit downloaded from the Ultraleap website inside the 'LeapSDK/lib/x64' folder. For V4 and V5 the file is called 'LeapC.dll', for version 2 it is called 'Leap.dll'.\nFor Gemini V5, first install the tracking software, then set this parameter to C:\\Program Files\\Ultraleap\\LeapSDK\\lib\\x64 where it will find the LeapC.dll file.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "HMD Mode",
"label": "HMD Mode",
"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": "hmd - - Switches the device to Head Mounted Display mode.\n\n default - on - off -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Default",
"label": "Default",
"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": "default - on - off -",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Debug Channels",
"label": "Debug Channels",
"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": "debugchannels - If set, the following channels will be included:\t\nconnected - 1 if the Leap Motion sensor is connected, 0 otherwise.\nsequence_id - Unique id corresponding to 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-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Status Channels",
"label": "Status Channels",
"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": "statuschannels - If set, the following channels will be included:\t\nhands - Number of hands detected by the sensor.\nfingers - Number of fingers detected by the sensor.\ntools - Number of tools detected by the sensor.\ngestures - Number of gestures detected by the sensor.\n[hand / finger / tool / circle / swipe / keytap / screeptap]:tracking - 1 if the data for the hand, finger, tool or gesture is actively being tracked, 0 otherwise.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Named Hands",
"label": "Named Hands",
"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": "namedhands - This names the hand channels as either right (r) or left (l) hands.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Hands",
"label": "Hands",
"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": "hands - Number of hands. The following channels will be included for each detected hand:\t\nhand*:t[xyz] - Coordinates of the hand relative to the sensor.\nhand*:r[xyz] - Rotation of the detected hand.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Left Hands",
"label": "Left Hands",
"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": "lefthands - When using 'Named Hands', specify how many left hands will be tracked.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Right Hands",
"label": "Right Hands",
"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": "righthands - When using 'Named Hands', specify how many right hands will be tracked.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Hand Velocity",
"label": "Hand Velocity",
"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": "handvelocity - If set, the following channels will be included for each hand, in addition to any others:\t\nhand*:v[xyz] - Velocity of the detected hand.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Hand Sphere",
"label": "Hand Sphere",
"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": "handsphere - This is only available when using API = Version 2 Tracking. It adds the following channels to tracking hands: \nhand*/sphere:t[xyz] - Position of the detected hand sphere.\nhand*/sphere:radius - Radius size of the detected hand sphere.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Pinch Strength",
"label": "Pinch Strength",
"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": "pinchstrength - Pinch is defined as the distance between the thumb and first finger.\nhand*:pinch - How much pinch is detected between the thumb and first finger.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Grab Strength",
"label": "Grab Strength",
"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": "grabstrength - Grab is defined as how close a hand is to being a fist.\t\nhand*:grab - How much grab is detected, strength is 0 for a flat hand and 1 for a fist.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Named Fingers",
"label": "Named Fingers",
"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": "namedfingers - Instead of simply using a finger index number for each finger tracked, when On this names the finger channels as thumb, index, middle, ring, and pinky.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Fingers per Hand",
"label": "Fingers per Hand",
"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": "fingersperhand - When not using 'Named Fingers', specify how many fingers to track per hand.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Finger Rotation",
"label": "Finger Rotation",
"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": "fingerrotation - Track the rotation for all fingers.\t\nhand*/finger*:r[xyz] - The rotation of the finger.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Finger Size",
"label": "Finger Size",
"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": "fingersize - If set, the following channels will be included for each finger, in addition to any others:\t\nhand*/finger*:length - Length of the detected finger.\nhand*/finger*:width - Width of the detected finger.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Finger Extended",
"label": "Finger Extended",
"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": "fingerextended - Track how straight the fingers are, a finger is considered extended when it is straight as if pointing.\nhand*/finger*:extended - How straight the finger is.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Finger Joints",
"label": "Finger Joints",
"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": "fingerjoints - Tracks the position of every joint of every finger.\nhand*/finger*/joint_mcp:t[xyz] - The mcp joint position of the finger.\nhand*/finger*/joint_pip:t[xyz] - The pip joint position of the finger.\nhand*/finger*/joint_dip:t[xyz] - The dip joint position of the finger.\nhand*/finger*/joint_tip:t[xyz] - The finger tip position.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.987Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Tools",
"label": "Tools",
"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": "tools - Number of tools. The following channels will be included for each detected tool:\t\ntool*:t[xyz] - Coordinates of the tool relative to the sensor.\ntool*:length - Length of the detected tool.\ntool*:width - Width of the detected tool.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Circle Gestures",
"label": "Circle Gestures",
"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": "circlegestures - Number of circle gestures. The following channels will be included for each detected Circle Gesture:\t\ncircle*:handindex - Index of the hand associated with the gesture. See Notes.\ncircle*:t[xyz] - Coordinates of the center of the Circle Gesture relative to the sensor.\ncircle*:radius - Radius of the circle in the gesture.\ncircle*:progress - Number of cycles done in the gesture.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Swipe Gestures",
"label": "Swipe Gestures",
"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": "swipegestures - Number of swipe gestures. The following channels will be included for each detected Swipe Gesture:\t\nswipe*:handindex - Index of the hand associated with the gesture. See Notes.\nswipe*:fingerindex - Index of the finger associated with the gesture. See Notes.\nswipe*:t[xyz] - Coordinates of the Swipe Gesture relative to the sensor.\nswipe*:start[xyz] - Coordinates of the start of the Swipe Gesture relative to the sensor.\nswipe*:speed - Speed of the swipe.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Key Tap Gestures",
"label": "Key Tap Gestures",
"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": "keytapgestures - Number of key tap gestures. The following channels will be included for each detected Key Tap Gesture:\t\nkeytap*:handindex - Index of the hand associated with the gesture. See Notes.\nkeytap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nkeytap*:t[xyz] - Coordinates of the Key Tap Gesture relative to the sensor.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Screen Tap Gestures",
"label": "Screen Tap Gestures",
"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": "screentapgestures - Number of screen tap gestures, which is recognized as a quick forward tapping movement by a tool or finger. The following channels will be included for each detected screen tap gesture:\nscreentap*:handindex - Index of the hand associated with the gesture. See Notes.\nscreentap*:fingerindex - Index of the finger associated with the gesture. See Notes.\nscreentap*:t[xyz] - Coordinates of the Screen Tap Gesture relative to the sensor.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Time Slice",
"label": "Time Slice",
"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": "timeslice - Turning this on forces the channels to be \"Time Sliced\". A is the time between the last cook frame and the current cook 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-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Scope",
"label": "Scope",
"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": "scope - To determine which channels get affected, some CHOPs use a string on the Common page.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Sample Rate Match",
"label": "Sample Rate Match",
"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": "srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or \"Linear\" if the Interpolate Options are not available.\n\n first - Use rate of first input to resample others. max - Resample to the highest sample rate. min - Resample to the lowest sample rate. err - Doesn't accept conflicting sample rates.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Resample At First Input's Rate",
"label": "Resample At First Input's Rate",
"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": "first - Use rate of first input to resample others. max - Resample to the highest sample rate. min - Resample to the lowest sample rate. err - Doesn't accept conflicting sample rates.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Export Method",
"label": "Export Method",
"group": "General",
"page": "",
"type": "float",
"dataType": "number",
"style": "",
"defaultValue": null,
"minValue": null,
"maxValue": null,
"step": null,
"menuItems": [],
"menuLabels": [],
"allowCustom": false,
"maxLength": null,
"pattern": null,
"isArray": false,
"arraySize": 1,
"dimensions": 1,
"description": "exportmethod - - This will determine how to connect the channel to the parameter. Refer to the Export article for more information.\n\n datindex - Uses the docked table and references the channel via the index of the channel in the . datname - Uses the docked table and references the channel via the name of the channel in the . autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "DAT Table by Index",
"label": "DAT Table by Index",
"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": "datindex - Uses the docked table and references the channel via the index of the channel in the . datname - Uses the docked table and references the channel via the name of the channel in the . autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Export Root",
"label": "Export Root",
"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": "autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is : are 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-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
},
{
"id": null,
"name": "Export Table",
"label": "Export Table",
"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": "exporttable - The used to hold the export information when using the Table Methods (See above).",
"tooltip": "",
"help": "",
"units": "",
"examples": [],
"isReadOnly": false,
"isAdvanced": false,
"isHidden": false,
"isAnimatable": true,
"isExpression": false,
"isPython": false,
"dependsOn": [],
"affects": [],
"linkedTo": [],
"expressionLanguage": "",
"defaultExpression": "",
"commonExpressions": [],
"order": 0,
"isVisible": true,
"conditionalDisplay": null,
"isValid": true,
"validationErrors": [],
"lastUpdated": "2025-08-07T07:50:02.988Z",
"rawData": {},
"sourceElement": null
}
],
"parameterGroups": {},
"codeExamples": [],
"pythonExamples": [],
"expressions": [],
"commonInputs": [],
"commonOutputs": [],
"relatedOperators": [],
"workflowPatterns": [],
"images": [],
"videos": [],
"assets": [],
"keywords": [
"leap",
"motion",
"chop",
"reads",
"hand,",
"finger,",
"tool",
"gesture",
"data"
],
"tags": [
"CHOP",
"TouchDesigner",
"Leap Motion CHOP"
],
"searchWeight": 1,
"contentHash": "",
"processingDate": "2025-08-07T07:50:02.989Z",
"processingVersion": "1.0.0",
"isValid": true,
"validationErrors": []
}