/HouLEAP

Leap Motion integration for Houdini

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

HouLEAP

Easy Leap Motion integration for Houdini

No listening server nor panel needed, only a simple set of nodes to handle all your Leap Motion needs.

alt text

An example hip file is included to get you started.

Setup

⚠️ The LEAP Motion base library only works with python 2, make sure to use this plugin if you haven't installed a python 3 houdini version (now default)!

First, you obviously have to install the Leap Motion drivers.

Then, simply copy the content of the /houdini folder to your houdini home/hsite folder (Documents/houdini 1X.X).

Alternatively, keep them in your GitHub local repo, and link it from your houdini.env config file :

LEAP = C:\Path\To\GitHub\HouLEAP\houdini
HOUDINI_PATH = $LEAP;&

This hasn't been tested under a version of houdini below 16.0 and another OS than Windows.

Copying unix leap binaries to /houdini/python/scripts/ might do the trick.

Nodes

LEAP_Initialize

alt text

Drop this node at the begining of your network to handle the activation of the leap device.

From the parameters you can enable/disable the leap, or re initialize the session.

LEAP_Track

alt text

This is the main node of this process that does all the magic.

It reads the data frame from the leap device and creates all the basic geo, groups and attributes that represents the detected hands motions.

This node runs on Frames, so you'll have to run the timeline to update your tracking !

LEAP_HandsGeometry

alt text

This node is here to build a basic hand geometry setup.

You can get simple mesh shapes with custom sizes / colors, or smoother versions from VDB conversion.

alt text

LEAP_Debug

alt text

This nodes adds lots of visualizers in the viewport to better understand the attributes stored on points & primitives of the tracked data.

alt text

You can use it before or after using the LEAP_HandsGeometry sop.

For TDs

All the leap data is stored into the python hou.session.

hou.session.leap is a class (HouLeap) packing everything you'll need :

hou.session.leap.is_connected()    # defines the leap motion device state
hou.session.leap.get_frame()       # get current frame tracking data
hou.session.leap.enable()          # enable leap controller interface
hou.session.leap.disable()         # disable leap controller interface

Updates

30/12/2020

  • deprecate DummyHands HDA
  • add missing tip bone
  • rework hand palm geo
  • fix doubled metacarpal bone on thumbs

26/04/2020

  • externalized python code
  • initialize fix

27/08/2018

  • new python session code
  • arms tracking
  • changing device state actually change device pause state
  • LEAP_HandsGeometry : added point cloud output
  • .gitignore

17/08/2018

  • LEAP_DummyHands : fix missing prim attributes
  • LEAP_Initialize : fix comments typo
  • LEAP_HandsGeometry : add packing option
  • Fix houdini.env example in readme

Author