# Changelog

The format is based on Keep a Changelog (opens new window), and this project adheres to Semantic Versioning (opens new window).

[0.9.0] - 2022-11-24

# Unity

# Added

  • Support for Oculus Touch controller interaction profile.
  • The input controllers change based on the input profile available (Controller Manager).
  • New public SpacesHandManager field in prefab to be in conformance to other TrackableManager implementations.
  • QCHT Core package additions:
  • QCHT Interaction package additions:
    • Added a Reticle Activation Threshold to go along with Laser Activation Threshold, so that the Reticle can be set to show on Hover while the Laser is set to show on rest. The default for new Reticle Activation Threshold can be the same as Laser Activation Threshold for backward compatibility.
    • Added XR Interaction Toolkit support.

# Changed

  • Re-Center button of the host controller is resetting the ray to the head pose forward instead of the session origin.
  • Added hit testing for anchor placement in the anchor sample.
  • The gaze reticle position is using XR.eyeTexture size values, instead of screen size values.

# Fixes

  • QCHT Core package fixes:
    • Hand simulation system improvements.
    • Removes warning in QCHTUtils.
    • QCHTInstanceColor shader issue.
  • QCHT Interaction package fixes:
    • Release interactable if hands are no longer tracked when interacting.

# Unreal Engine

# Added

# Changed

  • Re-Center button of the host controller is resetting the ray to the head pose forward instead of the session origin.
  • Added hit testing for anchor placement in the anchor sample.
  • Changed samples rendering mode to forward.
  • Changed input naming and requires to setup input bindings again in the Project Settings.

# Fixed

  • Fixed the hit testing offset when pawn is teleported in real time.
  • Fixed display overlap issue.

# Snapdragon Spaces Services

# Added

  • The XR controller will be added automatically to the input source of the Spaces Services if they are available.

# Changed

  • Tracked image target offset has been improved.
[0.8.1] - 2022-10-14

# Snapdragon Spaces Services

# Fixed

  • Fixed app crash when launching without any viewer attached
[0.8.0] - 2022-10-13

# Unity

# Added

  • New legend panel in the anchor sample scene to clarify what the different gizmo visualizations mean.
  • Additional options in the BaseRuntimeFeature settings:
    • Export Headless: Enabling this will export the apk without the launcher tag and make it invisible in the App Launcher.
    • Alternate Start Activity: This value allows setting another activity than the Unity default one, that should be started from the SpacesLauncherActivity.
    • Skip Permission Checks: Enabling this will skip permission checks done upon startup of the application.
  • QCHT Core package additions:
    • QCHTManager can now be created directly from scene by right clicking and QCHT > QCHTManager.
    • MeshLocal bounding box.
  • QCHT Interaction package additions:
    • Added a custom material with a ZTest off shader on the Physics raycast reticle.
    • QCHTRay related additions:
      • Added Ray bendUp power.
      • Added Ray BendRatioActivationThreshold value.
    • ControlBox related additions:
      • Added scale offset property in editor to avoid box visual clipping on the object.
      • Added object rotation in initial box size computation to avoid strange behavior when object is not on its pivot.
      • Added movement constraint in editor to lock user movement horizontally/vertically.

# Changed

  • Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services. Experimental Spaces Anchor Store load and save calls are multithreaded now. Loading saved anchors don't block the main thread anymore.
  • Host controller archive was updated with better touchpad visuals.
  • QCHT Core package changes:
    • Data population improvement
  • QCHT Interaction package changes:
    • New Grab Point Editor for Unity 2021.3.x
    • Improved HandPoseDriver.
    • Updated alpha management on hands.
    • QCHTRay related changes:
      • Stop computing a ray middle point if the hand is not moving to improve stability feeling on ray bending.
      • Ray now bend only in up direction.
      • Ray bending computation stabilization when hand is not moving.
    • ControlBox related changes:
      • General improvements

# Fixed

  • QCHT Interaction package changes:
    • New Grab Point Editor for Unity 2021.3.x
    • Saving prefab in immutable folder error in Unity Editor.
    • Fixed wrong color applied on reticle when using QCHTControlBox color settings.
    • QCHTRay
      • Fixed QCHTRay and avoid disabling the reticle in a wrong state.

# Unreal Engine

# Added

  • New legend panel in the anchor sample scene to clarify what the different gizmo visualizations mean.

# Changed

  • Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services. Experimental Spaces Anchor Store load and save calls are multithreaded now. Loading saved anchors don't block the main thread anymore.
  • Host controller archive was updated with better touchpad visuals.

# Fixed

  • Removed warnings regarding missing engine version
  • Removed unused references to SteamVR in example project
  • Hit Testing behaves correctly when Pawn position has been moved

# Snapdragon Spaces Services

# Changed

  • Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services.
  • Improved visual performance for more fluid representation (reduced tearing effects)

# Fixed

  • Tracking two or more images simultaneously is working as expected now.
  • Target names of image targets for larger sets are not corrupted anymore
  • Deactivating Plane Detection while Hit Testing is on, doesn't crash the application anymore.
  • Hand tracking is correctly resumed after incoming call.
  • Black screen after rebooting the device is gone.
[0.7.0] - 2022-08-31

# Unity

# Added

  • ⚠ Experimental Spaces Anchor Store for saving and loading anchors to local storage with updates in the anchor sample scene.
  • QCHT Core package additions:
    • Added URP (Universal Render Pipeline) support for custom shaders
    • Tooltips for better developer experience
  • QCHT Interaction package additions:
    • Added URP (Universal Render Pipeline) support for custom shaders
    • Hand can be hidden even if present (Hand Presenter)
    • Allow to display ghost hand or not (Hand Presenter)
    • Pointer size can now be changed for distal interaction (graphic and physic raycaster)
    • Tooltips for better developer experience

# Changed

  • Host controller archive was updated with a light/dark mode setting and a haptic feedback toggle.
  • Raycast Subsystem supports continuous hit testing with updated sample scene.
  • Updated Hand Tracking packages.
  • Component version panel includes a scroll view now to account for more components in the future.
  • Updated Spaces Services included in the developer package.
  • QCHT Core package changes:
    • Reorganize UI components and rename variables for more comprehension and better developer experience
  • QCHT Interaction package changes:
    • Reorganize UI component and rename variables for more comprehension and better developer experience for following components:
      • Hand Presenter
      • QCHT Ray
      • QCHT Control Box
      • Grab Point
      • Proximal Interactor
    • Rename interaction types from Simple, VFF, Ghost Only to Triggering, Colliding, None.
    • Enable only 4 gestures for proximal interaction (Pinch, Grab, Point, Open Hand)
    • Don't import materials from hand .fbx by default
    • All custom Editor scripts logic are moved in corresponding scripts
    • All Texture resources are moved into texture folder
    • QCHTPhysicsRaycaster supports event masks
    • Create control box settings and add handles display types

# Fixed

  • Hand joint poses from the Spaces Hand component have been fixed to be in world space rather than relative to the head pose.
  • Build issues for Unity 2021's incremental build pipeline have been fixed.
  • QCHT Interaction package fixes:
    • Pointer position offset
    • Improved Snapping
    • Added RayState selected when Raycast dragging
    • Repaint scene view after clicking Edit Pose
    • QCHT Interaction controller does not require HandPresenter anymore
    • Fixed issue when switching between trigger and colliding hand

# Unreal Engine

# Added

# Changed

  • Host controller archive was updated with a light/dark mode setting and a haptic feedback toggle.
  • Raycast Subsystem supports continuous hit testing with updated sample scene.
  • Component version panel includes a scroll view now to account for more components in the future.
  • Updated Spaces Services included in the developer package.

# Fixed

  • Build issues with incremental builds have been fixed.

# Snapdragon Spaces Services

# Changed

  • Removed the need to select the input source in the Snapdragon Spaces Services settings view.
[0.6.1] - 2022-07-22

# Unity

# Added

  • Added camera permission check for the Spaces Services on application launch, with a prompt to enable it in the Spaces Services Android settings (if it wasn't given before).

# Unreal Engine

# Added

  • Added camera permission check for the Spaces Services on application launch, with a prompt to enable it in the Spaces Services Android settings (if it wasn't given before).

# Snapdragon Spaces Services

# Added

  • Added camera permission prompt in case it has not been granted already.
  • Added camera permission status in the UI.

# Fixed

  • Fixed issue where Spaces application would not start if camera permission was not granted in the Spaces Services.
[0.6.0] - 2022-07-21

# Unity

# Added

  • Custom Hand Tracking Subsystem support and new sample scene.
  • Separate hand tracking packages included in the developer package for extended hand tracking capabilities.
  • ⚠ Experimental Raycast Subsystem support and new sample scene.
  • Samples additions:
    • Component version info accessible through the main menu.
    • Controller type (gaze or device pointer) is being saved across app starts and scene switches.

# Changed

# Fixed

  • Fixed bug that prevented a custom controller including SpacesController in its file name from being included in the final build.

# Unreal Engine

# Added

  • Image Tracking support and new sample scene.
  • ⚠ Experimental Raycast support and new sample scene.
  • Samples additions:
    • Component version info accessible through the main menu.
    • Controller type (gaze or device pointer) is being saved across app starts and scene switches.

# Changed

[0.5.0] - 2022-06-01

# Unity

# Added

  • Tracked Image Subsystem support and new sample scene.
  • Launch Spaces Controller and Use Custom Controller options added to the BaseRuntimeFeature settings.
  • Added Custom Controller Package folder with an Android Studio project for building custom Android archives into the developer package.
  • Samples additions:
    • Pressing and holding the host controller's Menu button will close the samples.
    • Encapsulated sample script in an own namespace.
    • Added vertical bias to the GazeInteractor component to shift the reticle.

# Changed

  • Host controller was moved out of Spaces Services and into the Unity package as an Android archive.
  • Updated Spaces Services included in the developer package.
  • OpenXR plugin version dependency of the package was updated to 1.4.2 (from 1.2.8).
  • Renamed and streamlined editor scripts contained in the Editor folder of the package.

# Fixed

  • Jitter issue for head locked content.
  • Anchor and Plane Detection Subsystem lifecycle refinements, when starting and stopping the subsystem.
  • Samples fixes:
    • Gaze pointer size was decreased once more.
    • Refined GazeInteractor calculation to get the horizontal half independent of platform.

# Unreal Engine

# Added

  • Plane Detection support and new sample scene.
  • Launch Spaces Controller and Use Custom Controller options added to the plugin settings.
  • Added Custom Controller Package folder with an Android Studio project for building custom Android archives into the developer package.

# Changed

  • Host controller was moved out of Spaces Services and into the Unreal Engine plugin as an Android archive.
  • Updated Spaces Services included in the developer package.

# Fixed

  • Jitter issue for head locked content.
  • Samples fixes:
    • Floating UI panels correctly keep their distance, when moving towards them.
    • Refined GazeInteractor calculation to get the horizontal half independent of platform.
[0.4.1] - 2022-04-28

# Unity

# Fixed

  • Updated Spaces Services included in the developer package, which fixed reading wrong values from config for ThinkReality A3.

# Unreal Engine

# Fixed

  • Updated Spaces Services included in the developer package, which fixed reading wrong values from config for ThinkReality A3.
[0.4.0] - 2022-04-28

# Unity

# Added

  • Added support for motorola edge+, motorola edge 30 pro.
  • Plane Detection Subsystem support and new sample scene.
  • Added a dialog before starting the app to give camera permissions (for plane detection and future tracking types).
  • A quit button was added to the main menu to quit the application.

# Changed

  • Host controller updated with new UI.
  • Former SM8450 QRD device not supported anymore.
  • Updated OpenXR runtime with plane detection tracking layer.
  • The UnityServicesHelper.aar was split into UnityServicesHelper.aar and UnityCustomLauncher.aar, with the option to disable the later one in the BaseRuntimeFeature options through the OpenXR project settings.

# Fixed

  • Converting from OpenXR pose data to Unity pose data applies the correct coordinate system modifications now.

# Unreal Engine

# Added

  • Added support for motorola edge+, motorola edge 30 pro.
  • A quit button was added to the main menu to quit the application.
  • The application correctly launches on the viewer device without the need for an adb launch command.

# Changed

  • Host controller updated with new UI.
  • Former SM8450 QRD device not supported anymore.
  • Updated OpenXR runtime with plane detection tracking layer.

# Fixed

  • Gaze pointer size was decreased.
[0.3.0] - 2022-03-15

# Unity

# Added

  • Anchor Subsystem support and new sample scene.
  • Host controller support.
  • Session Subsystem to retrieve tracking state and supported features.
  • Screen timeout is disabled through the SampleController in the sample scenes and all controllers deriving from it.
  • The AR Session Origin is reset on every scene change. There is a value that can be set to control that in the SampleController component.

# Changed

  • Updated OpenXR runtime with anchor layer.
  • XR Interaction Toolkit sample scene is enabled again.
  • The UnityServicesHelper.aar is removed from the final build, if the OpenXR plugin and the BaseRuntimeFeature are not set.
  • The Head Tracking Sample was renamed to Positional Tracking Sample.
  • The device and gaze pointer prefabs are decoupled from the AR Camera and don't need to be parented to it anymore.
  • Custom Snapdragon Spaces Controller Profile was removed in favor of the Khronos Simple Controller Profile as the new default profile.

# Fixed

  • The AR Camera's Editor movement (controlled by the EditorCameraController) is happening in local space under AR Session Origin now.
  • The BaseRuntimeFeature is not checking for the runtime and showing a dialog anymore if the feature is enabled, but the OpenXR plugin is disabled.

# Unreal Engine

# Added

  • ARPin support and new sample map.
  • Host controller support.
  • Screen timeout is disabled in the BP_Pawn through the ControlScreensaver node.
  • The Tracking Origin is reset on every map change. This is a value that can be set in the BP_Pawn component.

# Changed

  • Updated OpenXR runtime with anchor layer.
  • The Interaction sample map is enabled again.
  • The Head Tracking Sample was renamed to Positional Tracking Sample.

# Fixed

  • Player mesh used in Positional Tracking Sample was fixed.
  • Additional cosmetic improvements.
[0.2.0] - 2022-02-01

# Unity

# Added

  • The built application starts its context directly on the viewer now, removing the need for a custom adb launch command.

# Changed

  • Updated OpenXR runtime.
  • Interaction Sample is disabled, since there is no context shown on the host anymore to register UI input.

# Fixed

  • Floating UI size is smaller and can be interacted with easier.
  • Additional cosmetic improvements.

# Unreal Engine

# Added

  • The Snapdragon Spaces plugin (which requires the OpenXR plugin).
  • Main menu and sample map for demoing 6DoF head movement.
  • (Disabled) sample map for demoing interaction with 3D objects and 2D UI.
[0.1.3] - 2021-12-07

# Unity

# Changed

  • Updated OpenXR runtime. Start and stop issue is fixed now.
[0.1.2] - 2021-12-01

# Unity

# Added

  • NOTICE.txt file added to the archive.
  • Added a helper in the menu item under Window > Snapdragon Spaces > Add Scenes to Build Settings to automate putting the sample scenes to the build settings.

# Changed

  • Scenes and scripts got refined and streamlined.
  • UI refinements.

# Fixed

  • GyroOverride is not throwing an error in the Editor anymore.
  • Fixed missing long press action error.
[0.1.1] - 2021-11-15

# Unity

# Added

  • BaseRuntimeFeature gets new project validation rules to avoid having missing project settings.
  • OpenXR runtime got updated.
[0.1.0] - 2021-11-03

# Unity

# Added

  • BaseRuntimeFeature for the OpenXR plugin.
  • Sample scene for demoing 6DoF head movement.
  • Sample scene for how to work with the XR interaction toolkit.