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 software is up to date. Vuo requires version 2.0.5 or later. You can check your version by going to Leap service bar > Settings… > About. You can download the most recent version from the Leap Motion website.
Example compositions:
- Display Leap Hand: Displays a 3D representation of the centermost hand detected by your Leap Motion device.
- Highlight Extended Fingers: Displays a 2D representation of the fingers on the centermost hand detected by your Leap Motion device. When you extend your fingers, they become highlighted onscreen.
- Hold Egg: Simulates an object being held in the palm of your hand. The object follows your hand's movements as tracked by your Leap Motion device.
- Show Hand Status: Displays information about the left and right hand detected by your Leap Motion device.
- Twirl Image With Leap: Distorts an image based on hand movements detected by your Leap Motion device. This composition requires a Leap Motion device.
Nodes:
- Find Hands by Confidence (vuo.leap.find.hand.confidence): Finds all hands in the list that are detected with at least a certain level of confidence.
- Find Hands by ID (vuo.leap.find.hand.id): Finds all hands in the list that have a certain ID.
- Find Hands by Side (vuo.leap.find.hand.side): Finds all left hands or all right hands in the list.
- Find Pointables by ID (vuo.leap.find.pointable.id): Finds all pointables (fingers and tools) in the list that have a certain ID.
- Find Pointables by Touch Zone (vuo.leap.find.pointable.touchZone): Finds all pointables (fingers and tools) in the list that are within the given touch zone.
- Find Pointables by Type (vuo.leap.find.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.