GEMINI V5.2.0 RELEASE NOTES
Please also refer to our Migration Guide
TRACKING ENGINE UPDATES
HMD MODE
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
DESKTOP MODE
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
REMOVED FEATURES
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.
API AND SDK SPECIFIC UPDATES
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 enumeLeapTrackingMode
. Available tracking mode enumerations areeLeapTrackingMode_Desktop
,eLeapTrackingMode_HMD
andeLeapTrackingMode_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 inLEAP_POLICY_EVENT
prior to the correspondingLEAP_TRACKING_MODE_EVENT
emitted viaLeapPollConnection()
.The tracking mode related policy flags
eLeapPolicyFlag_OptimizeHMD
andeLeapPolicyFlag_OptimizeScreenTop
can be used to switch the tracking mode but are marked deprecated. The newLeapSetTrackingMode()
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
andeLeapDeviceStatus_UnknownFailure
. Support foreLeapDeviceStatus_Smudged
,eLeapDeviceStatus_Robust
andeLeapDeviceStatus_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()
andLeapRequestConfigValue()
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 theLeapPollConnection()
eventsLEAP_CONFIG_RESPONSE_EVENT
andLEAP_CONFIG_CHANGE_EVENT
will not be generated.The
LeapInterpolateHeadPose()
,LeapGetPointMappingSize()
andLeapGetPointMapping()
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 theLeapPollConnection()
eventsLEAP_HEAD_POSE_EVENT
andLEAP_POINT_MAPPING_CHANGE_EVENT
will no longer be generated.The
LeapPollConnection()
eventsLEAP_LOG_EVENT
andLEAP_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 asLeapPixelToRectilinearEx()
. These are currently for internal use.
KNOWN ISSUES
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.