Skip to content
This repository was archived by the owner on Nov 15, 2022. It is now read-only.

Commit f2f28e5

Browse files
committed
1.0.0-beta.3 release
1 parent 382feb1 commit f2f28e5

File tree

3 files changed

+99
-82
lines changed

3 files changed

+99
-82
lines changed

CHANGELOG.md

Lines changed: 70 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,56 +2,87 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
6+
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## 1.0.0-beta.3
9+
10+
### Added
11+
12+
- Signed Windows installer to replace the previous PowerShell based installer. Installation will remove previous
13+
versions of the API Layer.
14+
- Added support for the `XR_EXT_hand_joints_motion_range` extension. Since Ultraleap hand-trackers are optical-based
15+
systems, the returned hand pose is always based on the unobstructed joint locations.
16+
- Added support for the linear velocity reporting of the palm joint (`XR_HAND_JOINT_PALM_EXT`).
17+
18+
### Changed
19+
20+
- Updated Ultraleap tracking client to v5.2.0.
21+
- Updated OpenXR SDK to v1.0.20.
22+
- OpenXR API layer DLL is now signed.
23+
- Use `XR_KHR_win32_convert_performance_counter_time` or `XR_KHR_convert_timespec_time` extensions for accurate internal
24+
timestamp conversions.
25+
- Removed configurations variables `ULTRALEAP_OPENXR_TIME_WARP_HEAD` and `ULTRALEAP_OPENXR_TIME_WARP_VIEW` as they are
26+
no longer required now that [Issue #6](https://github.com/ultraleap/OpenXRHandTracking/issues/6) is resolved.
27+
- Removed 32-bit support as the Ultraleap tracking client v5 doesn't currently have support for Windows 32-bit.
728

8-
## 1.0.0-beta2
929
### Fixed
1030

11-
- Fixed support for UWP/AppContainer applications, including WebXR, when used in conjunction with the
12-
[Ultraleap 4.1 Tracking SDK](https://developer-archive.leapmotion.com/downloads/external/v4-1-hand-tracking/windows?version=4.1.0).
13-
[Issue #8](https://github.com/ultraleap/OpenXRHandTracking/issues/8)
31+
- Correct wrist position (was incorrectly reporting the elbow position as the wrist position).
32+
[Issue #10](https://github.com/ultraleap/OpenXRHandTracking/issues/10)
33+
- Fixed temporal warping so that the user's hands no longer move when held static and the user's head is rapidly
34+
moved. [Issue #6](https://github.com/ultraleap/OpenXRHandTracking/issues/6)
35+
36+
## 1.0.0-beta.2
1437

1538
### Added
1639

17-
- The uninstaller is included with the install as `UninstallOpenXR.cmd` to allow easy uninstallation. An entry is also
18-
added to Windows add/remove programs list.
19-
- The License, Readme, Changelog and version information are all now included in an install for easy reference.
20-
- Added log file output (to complement existing `XR_EXT_debug_utils` support) only warnings and errors are logged by
21-
default, but this can be controlled with the `ULTRALEAP_OPENXR_DEBUG` environment variable.
22-
- Clarified in the Readme that this is an implicit OpenXR api layer, and does not need explicitly enabling.
40+
- The uninstaller is included with the install as `UninstallOpenXR.cmd` to allow easy uninstallation. An entry is also
41+
added to Windows add/remove programs list.
42+
- The License, Readme, Changelog and version information are all now included in an installation for easy reference.
43+
- Added log file output (to complement existing `XR_EXT_debug_utils` support) only warnings and errors are logged by
44+
default, but this can be controlled with the `ULTRALEAP_OPENXR_DEBUG` environment variable.
45+
- Clarified in the Readme that this is an implicit OpenXR api layer, and does not need explicitly enabling.
2346

2447
### Changed
2548

26-
- Removed SteamVR <1.14 specific workaround for `xrGetSystemProperties` extension support.
27-
[Issue #5](https://github.com/ultraleap/OpenXRHandTracking/issues/5)
49+
- Removed SteamVR <1.14 specific workaround for `xrGetSystemProperties` extension support.
50+
[Issue #5](https://github.com/ultraleap/OpenXRHandTracking/issues/5)
51+
52+
### Fixed
53+
54+
- Fixed support for UWP/AppContainer applications, including WebXR, when used in conjunction with the
55+
[Ultraleap 4.1 Tracking SDK](https://developer-archive.leapmotion.com/downloads/external/v4-1-hand-tracking/windows?version=4.1.0)
56+
.
57+
[Issue #8](https://github.com/ultraleap/OpenXRHandTracking/issues/8)
58+
59+
## 1.0.0-beta.1
2860

29-
## 1.0.0-beta1
3061
### Added
3162

32-
- Initial support for the `XR_EXT_hand_tracking` extension
33-
63+
- Initial support for the `XR_EXT_hand_tracking` extension
64+
3465
### Known Issues
3566

36-
- This API layer does not currently report the linear or angular velocity of the hands.
37-
If requested, the XrHandJointVelocitiesEXT structure will be returned with the validity bits unset.
38-
[Issue #1](https://github.com/ultraleap/OpenXRHandTracking/issues/1)
39-
40-
- The underlying Ultraleap service currently return the same joint radius for all joints.
41-
[Issue #2](https://github.com/ultraleap/OpenXRHandTracking/issues/2)
42-
43-
- `XrSystemHandTrackingPropertiesEXT.supportsHandTracking` will always return `XR_TRUE` when this API layer is enabled,
44-
regardless of if a device is connected. `XrHandJointLocationsEXT.isActive` indicates if hand-tracking information is
45-
currently available for the requested hand-tracker.
46-
[Issue #3](https://github.com/ultraleap/OpenXRHandTracking/issues/3)
47-
48-
- The user's virtual hands may appear to move relative to the head when the head is moved quickly, even when the user's
49-
hands are remaining still. This is due to the temporal warping settings and the fact that the hand position and view
50-
position are updated at different rates.
51-
[Issue #6](https://github.com/ultraleap/OpenXRHandTracking/issues/6)
52-
53-
- Unreal Engine 4.25 currently ships with version 1.0.0 of the OpenXR loader which has a
54-
[known issue](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/91) which prevents OpenXR API layers from
55-
functioning correctly. This will be resolved when Unreal Engine ships with a newer OpenXR loader, or the existing
56-
OpenXR loader DLLs are manually updated.
57-
[Issue #4](https://github.com/ultraleap/OpenXRHandTracking/issues/4)
67+
- This API layer does not currently report the linear or angular velocity of the hand joints other than the palm. If
68+
requested, the XrHandJointVelocitiesEXT structure will be returned with the validity bits unset.
69+
[Issue #1](https://github.com/ultraleap/OpenXRHandTracking/issues/1)
70+
71+
- The underlying Ultraleap service currently return the same joint radius for all joints.
72+
[Issue #2](https://github.com/ultraleap/OpenXRHandTracking/issues/2)
73+
74+
- `XrSystemHandTrackingPropertiesEXT.supportsHandTracking` will always return `XR_TRUE` when this API layer is enabled,
75+
regardless of if a device is connected. `XrHandJointLocationsEXT.isActive` indicates if hand-tracking information is
76+
currently available for the requested hand-tracker.
77+
[Issue #3](https://github.com/ultraleap/OpenXRHandTracking/issues/3)
78+
79+
- The user's virtual hands may appear to move relative to the head when the head is moved quickly, even when the user's
80+
hands are remaining still. This is due to the temporal warping settings and the fact that the hand position and view
81+
position are updated at different rates.
82+
[Issue #6](https://github.com/ultraleap/OpenXRHandTracking/issues/6)
83+
84+
- Unreal Engine 4.25 currently ships with version 1.0.0 of the OpenXR loader which has a
85+
[known issue](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/91) which prevents OpenXR API layers from
86+
functioning correctly. This will be resolved when Unreal Engine ships with a newer OpenXR loader, or the existing
87+
OpenXR loader DLLs are manually updated.
88+
[Issue #4](https://github.com/ultraleap/OpenXRHandTracking/issues/4)

LICENSE.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
This Software is subject to the Ultraleap SDK License Agreement and is provided for the purpose of internal evaluation
2-
and demonstration only. The Ultraleap SDK License Agreement is available at
3-
https://central.leapmotion.com/agreements/SdkAgreement and are available from Ultraleap on request.
1+
This Software is subject to the Ultraleap SDK License Agreement and is provided for the purpose of internal evaluation and demonstration only.
2+
The Ultraleap SDK License Agreement is available at https://central.leapmotion.com/agreements/SdkAgreement and are available from Ultraleap on request.

README.md

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,15 @@ Any application which uses the `XR_EXT_hand_tracking` will be able to use this l
2020
You will require an OpenXR runtime to be installed to use this API layer. The correct runtime will depend on your
2121
platform and XR hardware, some of the most common platforms are listed below:
2222

23-
* [Microsoft Windows Mixed Reality](https://docs.microsoft.com/en-us/windows/mixed-reality/openxr-getting-started)
24-
* [Valve SteamVR](https://store.steampowered.com/newshub/app/250820/view/2396425843528787269)
25-
* [Oculus OpenXR](https://developer.oculus.com/documentation/native/pc/dg-openxr/)
26-
23+
* [Microsoft Windows Mixed Reality](https://docs.microsoft.com/en-us/windows/mixed-reality/openxr-getting-started)
24+
* [Valve SteamVR](https://store.steampowered.com/newshub/app/250820/view/2396425843528787269)
25+
* [Oculus OpenXR](https://developer.oculus.com/documentation/native/pc/dg-openxr/)
26+
27+
#### Required OpenXR Extensions
28+
29+
The runtime is required to support the `XR_KHR_win32_convert_performance_counter_time` (Windows) or
30+
`XR_KHR_convert_timespec_time` (Unix) extensions. All major runtimes (including those listed above) support these.
31+
2732
### Ultraleap Software
2833

2934
You will require the current
@@ -37,29 +42,24 @@ The latest version of this API layer can be installed from the
3742

3843
## Installing
3944

40-
Once downloaded follow the following steps to install the API layer.
45+
Once downloaded run the EXE installer to installer the API layer.
4146

42-
- Extract the downloaded `.zip`
43-
- Right click the `Install.cmd` script and select "Run as administrator"
44-
- Type "Yes" at the prompts accept the license agreement and to start the installation
45-
- Wait for the installation to complete.
46-
4747
You can verify that the installation has been successfully completed by installing the
4848
[Microsoft Mixed Reality OpenXR Developer Tools App](https://www.microsoft.com/store/productId/9n5cvvl23qbt) from the
4949
Microsoft Store. Once this is opened, navigate to the "System Status" tab, and you should see `XR_EXT_hand_tracking`
5050
listed in the Extensions section, and `XR_APILAYER_ULTRALEAP_hand_tracking` listed under the API Layers section.
5151

5252
This method of verification has only been confirmed with the Windows Mixed Reality OpenXR runtime, but should work with
5353
others as well.
54-
54+
5555
## Setup
5656

5757
The API layer will report hand-tracking as supported when this API layer is installed. To be able to actively use the
5858
hand tracking the following must all be true:
5959

60-
- Leap Motion v4 Software installed and running
61-
- Ultraleap hand-tracking device attached and operating correctly
62-
- User's hands visible to the Ultraleap hand-tracking device.
60+
- Leap Motion v5 Software installed and running
61+
- Ultraleap hand-tracking device attached and operating correctly
62+
- User's hands visible to the Ultraleap hand-tracking device.
6363

6464
## Configuration
6565

@@ -71,47 +71,34 @@ method such as the [Ultraleap VR Developer Mount](https://www.ultraleap.com/prod
7171
The position of the Ultraleap tracking device, relative to your view position can be configured using the following
7272
environment variables (position relative to the interpupillary line).
7373

74-
![Leap Mounting Diagram](https://developer.leapmotion.com/documentation/v4/HMD_Mounting.png)
74+
![Ultraleap Mounting Diagram](https://developer.leapmotion.com/documentation/v4/HMD_Mounting.png)
7575

76-
These environment variables must be set prior to the OpenXR application starting, if they are left unset,
77-
the default values (in brackets) are used:
76+
These environment variables must be set prior to the OpenXR application starting, if they are left unset, the default
77+
values (in brackets) are used:
7878

79-
- `ULTRALEAP_OPENXR_POS_X` - Position in X in meters (default: 0.0m)
80-
- `ULTRALEAP_OPENXR_POS_Y` - Position in Y in meters (default: 0.0m)
81-
- `ULTRALEAP_OPENXR_POS_Z` - Position in Z in meters (default: -0.08m/-8cm)
82-
- `ULTRALEAP_OPENXR_TILT_ANGLE` - Tilt angle downwards in degrees from the forward facing horizontal (default 0)
83-
84-
### Temporal Warping
85-
86-
The position of the hands in the scene is interpolated to compensate for differences between the captured hand-tracking
87-
frame and the update time of the user's view. This is controlled by two environment variables:
88-
89-
- `ULTRALEAP_OPENXR_TIME_WARP_HAND` - +/- timestamp offset in milliseconds for the hand position (default: +10ms)
90-
- `ULTRALEAP_OPENXR_TIME_WARP_VIEW` - +/- timestamp offset in milliseconds for the view position (default: -25ms)
91-
92-
These parameters can be different for each different headset runtime and can be tuned appropriately. These can help
93-
stabilise the hand-position in space if the view position is moved rapidly.
79+
- `ULTRALEAP_OPENXR_POS_X` - Position in X in meters (default: 0.0m)
80+
- `ULTRALEAP_OPENXR_POS_Y` - Position in Y in meters (default: 0.0m)
81+
- `ULTRALEAP_OPENXR_POS_Z` - Position in Z in meters (default: -0.08m/-8cm)
82+
- `ULTRALEAP_OPENXR_TILT_ANGLE` - Tilt angle downwards in degrees from the forward facing horizontal (default 0)
9483

9584
### Logging
9685

9786
By default, `%PROGRAMFILES%\Leap Motion\OpenXR\Logs\UltraleapOpenXR.log` will log errors and warnings generated during
9887
application usage of OpenXR. The logging location, and level can be controlled by the following environment variables:
9988

100-
- `ULTRALEAP_OPENXR_LOG_LEVEL` - The logging level, supported levels are `all`, `debug`, `info`, `warn`, and `error`
101-
(default: "warn")
102-
- `ULTRALEAP_OPENXR_LOG_PATH` - The location of the log file (default:
103-
`%PROGRAMFILES%\Leap Motion\OpenXR\Logs\UltraleapOpenXR.log`)
104-
89+
- `ULTRALEAP_OPENXR_LOG_LEVEL` - The logging level, supported levels are `all`, `debug`, `info`, `warn`, and `error`
90+
(default: "warn")
91+
- `ULTRALEAP_OPENXR_LOG_PATH` - The location of the log file (default:
92+
`%PROGRAMFILES%\Leap Motion\OpenXR\Logs\UltraleapOpenXR.log`)
93+
10594
## Disabling the API layer
10695

10796
If you wish to disable the API layer, this can be achieved by defining the
10897
`DISABLE_XR_APILAYER_ULTRALEAP_HAND_TRACKING_1` environment variable to any value.
10998

11099
## Uninstalling
111100

112-
You can remove the API layer by right clicking the included `Uninstall.cmd` script and selecting "Run as administrator".
113-
This will remove the installed files and registry keys. Uninstallation can also be performed from the Windows "Add or
114-
Remove Programs" area of the system settings.
101+
Uninstallation can be performed from the Windows "Add or Remove Programs" area of the system settings.
115102

116103
## Known issues
117104

0 commit comments

Comments
 (0)