Leap Motion C API  4.1.0
The API to the LeapC library.
Release Notes

Release Notes

Version 4.1.0 Orion


Change log

What's New

  • Allow access to Leap Motion tracking data from UWP and AppContainer applications
  • Control panel setting 'Allow Web Apps' persists
  • Control panel setting 'Manual Orientation' Setting persists
  • Fixed an intermittent crash of LeapSvc.exe during power cycle
  • Fixed an issue where the SHA256 was not computed correctly on Intel Ice Lake CPUs
  • Fixed an intermitted failure to detect Rigel/SIR170
  • Fixed an issue during shutdown of LeapSvc, where shutdown requested within seconds after startup
- - - - -

Version 4.0.0 Orion


Change log


  • Greater finger dexterity and fingertip precision
  • Better hand pose stability and reliability
  • Faster and more consistent initialization
  • Smoother hand and finger movements
  • Improved tracking fidelity on backgrounds and bright lighting
  • More accurate shape and scale for hands
  • Significantly improved performance on embedded “Rigel” devices
  • LeapC is now the officially supported API included in the SDK. LeapAPI has been deprecated
  • Removed LeapCSharp and associated functionality from the SDK. It can now be found as part of UnityModules
  • Removed Leap.dll, all associated language bindings (LeapPython, LeapJava, Objective-C) and samples
  • Added a feature that pauses the device when no clients are connected (note: the Leap Control Panel is a client)
  • LeapC makefile now generates all the samples correctly
  • Fixed a hang at service shutdown
  • Fixed an issue where hands could initialize on top of other hands

Known issues

  • As of 4.0.0 our Windows service is now 64bit only along with the other applications we include in the installer
  • Legacy applications that support Gestures, Motions, Tools, Pointables and Tip Velocity are no longer supported on Orion
  • Leap Motion Service uses more CPU resources to provide a better tracking experience
  • USB 3.0 support for Rigel is in an experimental state and may have degraded frame rate depending on the USB bandwidth.
  • Apps that use the new Image API policy can not stream at the same time as app that use the old API
  • Tracking may not work as well with bracelets, watches, sleeves, etc
  • Although very much improved, occluded hands can still get killed at times
  • Devices embedded in HP laptops and keyboards are not supported on Orion
  • Automatic controller orientation can in rare cases stop functioning. A Leap Motion service restart will fix this or you can manually orient the controller from the Leap Motion Control Panel.
  • Minimized or out-of-focus applications using the HMD policy flag can affect the service state. Close such programs before switching back to non-VR apps
  • Tracking along the x-axis may appear slightly skewed
  • Desktop mode initialization is not as reliable as HMD mode initialization
  • Pausing/Resuming Tracking can cause the FPS to drop. The workaround is to disconnect and then reconnect the device to bring the FPS back to normal
  • Avast! Antivirus can interfere with Leap Motion Service installation (disable shields to work around)
  • Tracking performance may degrade when closely facing large reflective surfaces like white walls or infrared-reflective curtains.

SDK folder contents

  • docs — Leap Motion API reference documentation and sample application tutorials
  • samples — sample applications in C++, Objective-C (Mac only), C#, Java, JavaScript and Python, plus a Makefile for C++ and an Xcode project for Objective-C (Mac only) or Visual Studio project and solution files for C++ (Windows only)
  • include — Leap Motion API header and source files for including in C++ and Objective-C applications
  • lib — compile-time and runtime libraries for all supported programming languages
    • x86 — libraries for 32-bit architectures (Windows and Linux only)
    • x64 — libraries for 64-bit architectures (Windows and Linux only)
    • libstdc++ — the libLeap.dylib library compiled aganst libstdc++ instead of libc++ (Mac only)

Hardware requirements

  • USB 2.0 or 3.0 port

Supported operating systems

  • Windows 7, 8, and 10

Supported compilers and runtimes

  • C/C++ on Windows: Visual Studio 2010 and up
  • C# for .NET framework versions 3.5 and 4.0
  • Unity Pro version 5.6+

API documentation

Leap Motion API reference documentation is located both online at Leap SDK documentation and in the docs folder of the SDK package.

Sample application

A set of sample applications are in LeapSDK/samples provided for your reference. They are all written in C, and built using CMake.. More information on building and running these sample applications are provided in the SDK documentation. These tutorials are essentially the Leap Motion "Hello World" and should help you get your development environment set up for creating Leap-enabled applications.

JavaScript client library

The Leap Motion JavaScript client library, leap.js, is open-source and distributed separately from the main Leap Motion SDK. You can download leap.js from https://github.com/leapmotion/leapjs. We encourage community contributions to this library. A sample JavaScript JSON viewer for viewing the output of the Websockets API leapjs is based on is provided in LeapSDK/samples.


If you have trouble getting reliable hand tracking data in your application, consider the following:

  • Check the Leap Motion icon in the notification area of the Windows Taskbar or Mac Finder bar. The icon will display green if the Leap Motion software is working properly and turn red if errors have occurred. Open the Leap Motion log window and check for errors
  • Run the diagnostic tests using the Leap Motion Control Panel Troubleshooting page
  • Check whether the Leap Motion Controller and software work outside of your application. Run the Leap Motion Visualizer or included sample application to see if other applications can receive motion tracking data
  • Make sure that all libraries required to receive Leap Motion tracking data are in the correct directories or library search paths. Refer to the project setup or "Hello world" articles for the language in which your application is written for details
  • Plug the Leap Motion USB cable directly into your computer (not a USB hub). Remove other USB devices. If another high-bandwidth device is running on the same USB bus, there may not be enough bandwidth for both devices
  • Rule out lighting issues by moving to an environment with standard indoor lighting conditions. That is, one with artificial light at a comfortable reading intensity
  • If the Leap Motion software does not appear to be producing data, stop the Leap Motion service or daemon and restart it. Unplug the Leap Motion Controller and plug it back in

On Windows, run the following commands as Administrator:

1 net stop LeapService
3 net start LeapService

On Mac, run the following commands:

1 sudo launchctl unload /Library/LaunchDaemons/com.leapmotion.leapd.plist
3 sudo launchctl load /Library/LaunchDaemons/com.leapmotion.leapd.plist

On Linux, run the following commands:

1 sudo service leapd stop
3 sudo service leapd start
  • If the Leap Motion log reports repeated disconnects, switch to the Low Resource operating mode. This can indicate congestion on the USB bus.
  • When using Microsoft Visual Studio, if you do not get tracking data when you compile your application in debug mode, but do get tracking data when you compile in release mode, then make sure you are linking with Leapd.lib for the debug configuration of the project.
  • Ensure that ports 6437, 6438, and 6439 on the localhost domain are not blocked by a firewall or other program.