Please also refer to our Migration Guide



  • Improved side to side finger fidelity

  • Two hand performance noticeably improved

  • Arm accuracy noticeably improved

  • Improved stability during initialization and termination

  • Improved hand rotation sensitivity especially for fists

  • Performance for small and large hands noticeably improved

  • Improved smoothness 

  • Maximum tracking velocity decreased for certain palm orientations

  • Some decrease in depth calibration accuracy on Stereo IR 170

  • Some decrease in stability when pinching through rotations


  • Significantly more robust and accurate hand tracking

  • Two hand performance noticeably improved

  • Improved hand tracking initialization - especially for fists

  • Arm accuracy and stability improved

  • Improved high angle tracking

  • Improved distance tracking

  • Improved performance for small and large hands

  • Improved hand rotation performance

  • Improved smoothness

  • Decreased pinky fidelity

  • Decreased single finger isolated performance

  • Some decrease in depth calibration accuracy on Stereo IR 170


  • Launch on Startup: This option has been removed. The Control Panel-Tray Icon will automatically be enabled to launch at Windows startup. To disable this, go to Task Manager > Start-up > Ultraleap Tracking Control Panel and right-click to disable.

  • Automatic power saving: This feature has been removed as it is more relevant to mobile applications.

  • Robust mode: This feature has been removed.

  • Low Resource mode: This feature has been removed.

  • Avoid Poor Performance: This feature has been removed.

  • Recalibration for LMC: This feature has moved to our Customer Support page.

  • AppHome: This has been removed from the installer. The Leap Motion App Store is obsolete.

  • LeapJS and WebSocket server: The WebSocket server is not supported in this version.

  • Auto-orient camera feed: Auto-orientation of the camera feed for tracking has been removed.


  • LeapC API remains backwards compatible with past 4.x.x releases and the 5.0.0-preview/5.0.1-preview release. However, the client-server protocol has been replaced since 5.2. Client applications will need updating to the new 5.2 LeapC.dll when using the 5.2 tracking service. Client applications built with past 4.x.x SDKs and the 5.0.0-preview/5.0.1-preview SDKs will not communicate with 5.2 service or vice versa.

  • The tracking service now supports a new tracking mode – Above Facing User.

    • LeapC API allows setting the tracking mode via LeapSetTrackingMode() and the corresponding enum eLeapTrackingMode. Available tracking mode enumerations are eLeapTrackingMode_Desktop, eLeapTrackingMode_HMD and eLeapTrackingMode_ScreenTop, for the operation of up-facing, head-mounted, and down-facing devices.

    • Setting of tracking mode is confirmed by a new asynchronous event type LEAP_TRACKING_MODE_EVENT. Note that changing the tracking mode also results in LEAP_POLICY_EVENT prior to the corresponding LEAP_TRACKING_MODE_EVENT emitted via LeapPollConnection().

    • The tracking mode related policy flags eLeapPolicyFlag_OptimizeHMD and eLeapPolicyFlag_OptimizeScreenTop can be used to switch the tracking mode but are marked deprecated. The new LeapSetTrackingMode() function is strongly recommended over using policy flags.

  • The number of supported eLeapDeviceStatus enumeration values have been reduced. Device events will only contain the values: eLeapDeviceStatus_Streaming, eLeapDeviceStatus_Paused and eLeapDeviceStatus_UnknownFailure. Support for eLeapDeviceStatus_Smudged, eLeapDeviceStatus_Robust and eLeapDeviceStatus_LowResource may be reintroduced in future releases.

  • The service configuration file format has been changed and now read from %ProgramData%/Ultraleap/HandTracker/config.json. Previous config locations were %USERPROFILE%/AppData/Roaming/Leap Motion/config.json and %ProgramData%/Leap Motion/config.json.

  • The LeapSaveConfigValue() and LeapRequestConfigValue() functions are currently provided as no-op implementations and included for compile time backwards compatibility. We expect these functions to be reintroduced in a future releases. Similarly the LeapPollConnection() events LEAP_CONFIG_RESPONSE_EVENT and LEAP_CONFIG_CHANGE_EVENT will not be generated.

  • The LeapInterpolateHeadPose(), LeapGetPointMappingSize() and LeapGetPointMapping() functions have been replaced with no-op implementations and only included for compile time backwards compatibility. We expect to remove these functions in future versions of the software. Similarly the LeapPollConnection() events LEAP_HEAD_POSE_EVENT and LEAP_POINT_MAPPING_CHANGE_EVENT will no longer be generated.

  • The LeapPollConnection() events LEAP_LOG_EVENT and LEAP_LOG_EVENTS will no longer be generated. Logging is handled by the service writing directly to log files.

  • Some experimental Ex functions have been added to support specifying camera devices, such as LeapPixelToRectilinearEx() . These are currently for internal use.


  • Missing VC redistributable dlls causes the following installation error “The code execution cannot proceed because VCRUNTIME140_1.dll cannot be found”. This can be solved by installing the latest VC redistributables from here (x64 for Visual Studio 2015, 2017, 2019, and 2022) and re-running the installer.

  • Tracking does not resume when the Windows OS awakes from a hibernated shutdown (i.e. “sleep” mode). This includes the Fast Startup feature in Windows 10 as that will put the computer in a hibernated state instead of performing a full shutdown.

  • LeapPollConnection() does not respect the timeout parameter value prior to a connection to the service where the timeout is always at 2 seconds (OS timeout on Windows). It does respect the timeout once connected.

  • Occasionally, disconnecting an Ultraleap Hand Tracking Camera causes the Tracking Service to crash/stop. The service should restart automatically, but a manual service restart may be required to resume tracking.

  • Tracking Service can crash/stop after a firmware update to the Leap Motion Controller and raise an error message. The service should restart automatically, but a manual service restart and/or connecting and disconnecting may be required to reset the service and resume tracking.

  • Hands can be seen to drift in the Visualizer when the tracking has been paused or during a tracking mode change. The server stops sending new data, however the LeapC.dll client code still continues to extrapolate hand positions from progressively older data.

  • Skeleton hands overlay on the camera image can be seen to misalign in the Tracking Visualizer when swapping between camera devices as the Visualizer does not update to use a new calibration value. This currently can be resolved by closing and re-opening the Visualizer.

  • Software log file (tracker_log.txt) will grow indefinitely. Depending on usage, this would average at about 2MB per day.

  • Occasionally, there will be missed notifications that Leap Motion Controller is in the process of a firmware upgrade. There will still be a notification that the upgrade has occurred.

  • The serial number reported by Leap Motion Controller is displaying incorrectly.

  • Compatibility issues when using the Tracking Visualizer in VR mode with the Oculus Quest 2 and Leap Motion Controller. Camera images are seen but no tracking. Disconnecting and reconnecting the Leap Motion Controller resolves the issue. Also, when the proximity sensor is not active (i.e. the headset is not worn), the Tracking Visualizer will display a black screen and have issues with displayed text.

  • Compatibility issues when using the Tracking Visualizer in VR mode with the Valve Index headset and Ultraleap cameras. Skeleton hands are seen to be misaligned with the camera images.

  • Control Panel can briefly display old statuses on service restart. The correct status will be displayed after a few seconds.

  • A small offset can be seen with skeleton hand overlay in Tracking Visualizer when using Stereo IR 170 in non-VR mode. This offset is not seen in VR mode.

  • Occasionally, the Tracking Visualizer does not display camera images. The Tracking Service needs to be restarted.

  • Small memory leak (11-17MB) every time a client is connected or disconnected or when there is a change in the tracking mode. Restarting the service will set the memory usage back to its initial baseline.

  • Occasionally, the Control Panel 'About' tab does not refresh properly to display the correct firmware version.

  • Tracking Visualizer render fps value is sometimes as low as 20-30fps when minimised but displays correct value (e.g. 60fps) when maximised.

  • Even though the Tracking Service has restarted successfully, there is a Control Panel notification pop up informing that the Tracking Service has stopped.