Leap Motion

Receive data from a leap motion external device.

Official Leap Motion Docs

The module is organized in five sections :

  • general: global actions and infos
  • hands: deliver hands data
  • palms: deliver palms data
  • fingers: deliver fingers data
  • gestures: deliver gesture data

Each data sections can be Enabled/Disabled to optimize performance and cpu load

About units of data delivered :

  • All positions are normalized against the interaction box, so coordinates go from 0 to 1 inside the interaction box
  • All directions and normals values go from -1 to 1
  • All velocities are in millimeters/seconds

General section

on

Connect the module to the leap motion

connected

Confirm the connection

zoom

2 modes:

  • one hand: corresponding to the interaction box as the leap provide it to the module.
  • two hands: the interaction box volume is doubled to make two hands tracking easy.

frame id

Frame number of the leap motion, useful to check if we miss some frames

Can detect up to two hands

Hands section

See LeapMotion.com : hand attributes for more infos about data definition.

Spheres parameters describe a sphere that is placed and sized to fit into the curvature of the hand.

  • num hands: Number of hands detected by the leap motion
  • enable hands: Enable the hands section data tracking, each array of this section will have the size of the number of hands mentioned below
  • hands id: Id of each hands, it’s a unique number identifying each hand and stay the same as long as the hand is tracked.
  • hands num fingers: Number of fingers detected for each hands
  • spheres pos x: The x position coordinate of the sphere
  • spheres pos y: The y position coordinate of the sphere
  • spheres pos z: The z position coordinate of the sphere
  • spheres radius: The radius (in millimetre) of the sphere
  • hands valid: Validity indicator(0 or 1) for hands params provided by the leapmotion driver

Palms section

See LeapMotion.com : hand attributes for more infos about data definition.

  • enable palms: Enable the palms section data tracking, each array of this section will have the size of the number of hands mentioned below.
  • palms hands id: Id of each hands, it’s a unique number identifying each hand and stay the same as long as the hand is tracked.
  • palms pos x: The x position coordinate of the palm
  • palms pos y: The y position coordinate of the palm
  • palms pos z: The z position coordinate of the palm
  • palms dir x: The x direction vector of the palm
  • palms dir y: The y direction vector of the palm
  • palms dir z: The z direction vector of the palm
  • palms vel x: The x velocity of the palm
  • palms vel y: The y velocity of the palm
  • palms vel z: The z velocity of the palm
  • palms nor x: The x normal vector of the palm
  • palms nor y: The y normal vector of the palm
  • palms nor z: The z normal vector of the palm
  • palms valid: Validity indicator(0 or 1) for palms parameters provided by the leap motion driver

Fingers section

See LeapMotion.com : finger and tool models for more infos about data definition.

  • num fingers: Number of total fingers detected (including all hands), can detect up to twenty fingers.
  • enable fingers: Enable the fingers section data tracking, each array of this section will have the size of the number of fingers mentioned below.
  • fingers id: Id of each fingers, it’s a unique number identifying each finger and stay the same as long as the finger is tracked.
  • fingers hand id: Id of each fingers hand, it’s a unique number indicating each finger’s hand and stay the same as long as the finger is tracked.
  • fingers pos x: The x position coordinate of the finger
  • fingers pos y: The y position coordinate of the finger
  • fingers pos z: The z position coordinate of the finger
  • fingers dir x: The x direction vector of the finger
  • fingers dir y: The y direction vector of the finger
  • fingers dir z: The z direction vector of the finger
  • fingers vel x: The x velocity of the finger
  • fingers vel y: The y velocity of the finger
  • fingers vel z: The z velocity of the finger
  • fingers length: The radius (in millimeter) of the finger
  • fingers is tool: is this finger considered as tool(0 or 1)
  • fingers valid: Validity indicator(0 or 1) for fingers parameters provided by the leap motion driver

Gestures section

See LeapMotion.com : gestures for more infos about gestures definition.

enable gestures

Enable the gestures data tracking

gesture

Gesture detected by the leap motion provided in an array

Description ID data1 data2 data3 data4 data5 data6 data7 data8 data9 data10 data11
swipe left 200 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
swipe right 201 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
swipe up 202 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
swipe down 203 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
swipe forward 204 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
swipe backward 205 start pos X start pos Y start pos Z stop pos X stop pos Y stop pos Z duration pointable id direction X direction Y direction Z
circle clockwise 206 center pos X center pos Y center pos Z radius progression duration pointable id normal X normal Y normal Z
circle counterclockwise 207 center pos X center pos Y center pos Z radius progression duration pointable id normal X normal Y normal Z
key tape 208 pos X pos Y pos Z duration pointable id
screen tape 209 pos X pos Y pos Z duration pointable id
  • position are relative to the interaction box (values between 0 and 1 if in the interaction box)
  • duration are in milliseconds
  • radius are in millimeters
  • progression are in radians
  • normal are a normalized vector (values off each axis between -1 and 1)