Emerging Interfaces

Getting Started with the Leap Motion Controller 2 for Gesture-Controlled Art

Ultraleap's compact hand-tracking sensor turns bare hands into a real-time input device — here's how to get it talking to TouchDesigner, Processing, or your own OpenGL sketch.

If you want an installation, a VJ set, or a sketch to respond to bare hands — no gloves, no wearable, no wand — Ultraleap’s Leap Motion Controller 2 is still the most accessible way in. It’s a USB sensor about the size of a stick of gum that tracks the full skeleton of both hands in real time: 26 points per hand, sub-millimeter precision, no calibration step. This walks through getting one talking to the tools creative coders actually use.

What’s in the box, and what it needs

The Controller 2 is a standalone USB device — it doesn’t require a headset or any other hardware to function, unlike its integration into some XR headsets. Plug it into a USB-C or USB-A port (with the included cable), and it needs Ultraleap’s Hyperion tracking service running in the background — a free download from Ultraleap’s developer site that handles the actual hand-tracking computation and exposes it to other software over a local API. Everything downstream — engines, creative-coding environments, patching tools — talks to Hyperion, not to the sensor directly.

Getting hand data into TouchDesigner

TouchDesigner has a native Leap Motion CHOP that connects directly to the tracking service once it’s running — no plugin install required. Drop the CHOP into a network, and it outputs per-hand, per-joint position and rotation channels you can wire straight into instance parameters, particle systems, or audio-reactive chains. For installation work, this is the fastest path from “hand in the air” to “something on screen moves” — most people get a first working gesture-to-visual mapping running within an hour of unboxing.

Getting hand data into Processing or openFrameworks

For code-first environments, Ultraleap publishes official bindings for both — the Processing library wraps the Java SDK, and the openFrameworks addon (ofxLeapMotion2) wraps the native C++ SDK. Both expose the same skeletal data as TouchDesigner’s CHOP: joint positions, palm orientation, pinch and grab strength as continuous 0–1 values rather than binary triggers, which matters if you want gestures to drive continuous parameters (brush size, particle emission rate, audio filter cutoff) instead of just firing discrete events.

Where this actually gets used

The clearest use case is anything where touching a screen or holding a controller breaks the piece’s intent — a gallery installation meant to feel untouched-by-technology, a public kiosk that shouldn’t require a shared physical controller, a VJ rig where the performer’s hands are already occupied with other gear. It’s a narrower field of view than a full-body tracker like a Kinect (the Controller 2 tracks roughly a desk-sized volume above the sensor), so it’s best suited to close-range, hand-centric interaction rather than whole-room presence tracking.