vuo.leap
These nodes are for tracking hands, fingers, and tools with a Leap Motion device.
Data from a Leap Motion device is grouped into frames. Each frame contains information about hands and pointables (fingers and tools) detected at one moment in time.
Leap Motion considers a pointable to be a tool if it’s thinner, straighter, and longer than Leap Motion’s parameters for a finger.
Each hand or pointable has a unique ID that can be used to track it across consecutive frames in which it’s detected. If the hand or pointable is lost and re-detected, its ID changes.
Leap Motion provides a touch plane that can be used for interaction. Derived from the current hand and finger position within a frame, the touch plane is an imaginary surface that pointables can interact with. If a pointable is near the touch plane, then it can be in one of two touch zones. If the pointable is entirely on the hand’s side of the touch plane, then it’s in the “hovering” touch zone. If the pointable is touching or passing through the touch plane, then it’s in the “touching” touch zone.
These nodes use Vuo coordinates based on Leap Motion’s interaction box, which is a rectangular box within the Leap Motion device’s field of view. Most hand motions are expected to take place within the interaction box, although some may fall outside of it and still be detected by the Leap Motion device. The interaction box’s center is at Vuo coordinate (0,0,0). The interaction box’s left edge is at Vuo x-coordinate -1, and its right edge is at Vuo x-coordinate 1. The Vuo y-coordinates increase from bottom to top of the interaction box. The Vuo z-coordinates increase from back to front of the interaction box.
The Receive Leap Frame
node is your starting point for working with a Leap Motion device.
The Get Frame Values
node lets you get the information from a frame. From there, the Get Hand Values
and Get Pointable Values
nodes let you get further information about hands and pointables.
Troubleshooting
If Receive Leap Frame
is not firing events:
- Confirm that the Leap device is plugged in.
- Check that your Leap service is running (the Leap service bar in the top right toolbar should be green).
- Make sure your Leap Motion application is up to date - Vuo requires version 2.0.5 or greater in order to operate properly (at the time of writing, Leap 2.0 is in a public beta. Download available here: Leap v2 SDK ).
Example compositions:
Nodes:
- Filter Hands by ID (vuo.leap.filter.hand.id): Finds all hands in the list that have a certain ID.
- Filter Pointables by ID (vuo.leap.filter.pointable.id): Finds all pointables (fingers and tools) in the list that have a certain ID.
- Filter Pointables by Touch Zone (vuo.leap.filter.pointable.touchZone): Finds all pointables (fingers and tools) in the list that are within the given touch zone.
- Filter Pointables by Type (vuo.leap.filter.pointable.type): Finds all fingers or all tools in a list of pointables.
- Get Frame Values (vuo.leap.get.frame): Gives information about a frame from a Leap Motion device, including hands and pointables (fingers or tools).
- Get Hand Values (vuo.leap.get.hand): Gives information about a hand detected within a frame from a Leap Motion device.
- Get Pointable Values (vuo.leap.get.pointable): Gives information about a pointable (finger or tool) detected within a frame from a Leap Motion device.
- Sort Hands by Distance (vuo.leap.hand.sort.distance): Puts the hands in order of nearest to farthest from a target point.
- Sort Hands by X Distance (vuo.leap.hand.sort.distance.x): Puts the hands in order of nearest to farthest from a target point, comparing only the distance along the x-axis.
- Sort Hands by Y Distance (vuo.leap.hand.sort.distance.y): Puts the hands in order of nearest to farthest from a target point, comparing only the distance along the y-axis.
- Sort Hands by Z Distance (vuo.leap.hand.sort.distance.z): Puts the hands in order of nearest to farthest from a target point, comparing only the distance along the z-axis.
- Sort Pointables by Distance (vuo.leap.pointable.sort.distance): Puts the pointables in order of nearest to farthest from a target point.
- Sort Pointables by X Distance (vuo.leap.pointable.sort.distance.x): Puts the pointables in order of nearest to farthest from a target point, comparing only the distance along the x-axis.
- Sort Pointables by Y Distance (vuo.leap.pointable.sort.distance.y): Puts the pointables in order of nearest to farthest from a target point, comparing only the distance along the y-axis.
- Sort Pointables by Z Distance (vuo.leap.pointable.sort.distance.z): Puts the pointables in order of nearest to farthest from a target point, comparing only the distance along the z-axis.
- Receive Leap Frame (vuo.leap.receive): Fires an event each time the Leap Motion device provides new hand- and finger-tracking data.