XR Interaction Toolkit 1.0.0 will be held in pre-release for the 2021 cycle

We have published a new release of the XR Interaction Toolkit (XRI) that brings a number of bug fixes and improvements. This version is available now for Unity 2019.4 and later. For those who want to experiment with XRI, the best way to start is with our samples available at GitHub - Unity-Technologies/XR-Interaction-Toolkit-Examples: This repository contains various examples to use with the XR Interaction Toolkit. As always, you can refer to our documentation for more information.

Our goal with XR Interaction Toolkit is to have it serve as the foundation for cross-platform XR interactivity, so that Unity developers can create applications that can be deployed anywhere and provide seamless end user experiences. It is essential that we provide a baseline that is as future-proof as is reasonable for the foreseeable horizon before declaring a production-ready verified release.

We have collected feedback on the pre-release of XRI from a number of users, and this is what weā€™ve heard:

  • A common issue is problems with extensibility. Weā€™ve received many requests for more base methods/properties to be overridable and protected instead of being internal or private. This is especially true for AR behaviors where much of the supporting utilities are completely internal, making it difficult for developers to handle touch gestures. Some of the larger methods also need to be broken up more to allow users to have more fine grained control over overriding certain aspects or inserting code between sections.
  • The absence of systems to support some interaction patterns such as multi-selecting for two-handed interaction, dynamic attach points when grabbing, and decoupled visual representation of rigged hands or controllers from the tracked position of controllers cause much pain when implementing custom solutions that work within the current architecture of XRI.
  • For those using AR, there is very little guidance on configuration and XRI is not flexible enough in its implementation to be integrated into larger projects.

As a result of this feedback and to provide the best possible experience for everyone using XRI, we have decided to hold XRI in pre-release. As we look to add exciting new features outlined on our public roadmap, such as two-handed interaction and articulated hand tracking, we want to ensure the supporting API those features depend on are in a mature state. XRI would not be at the right level of upgradability or quality that a verified package should convey, and we need the extra time to ensure the API becomes stable.

Pre-release
This 1.0.0-pre.8 version of the XR Interaction Toolkit is considered pre-release. Pre-release packages are supported packages in the process of becoming stable. Starting in 2021.1, Unity is changing the way we publish and show packages in the Package Manager, and is designed to provide clear guidance around a packageā€™s readiness and expected support level. For pre-release packages to appear in Package Manager, they must be enabled in Edit > Project Settings > Package Manager and it must be scheduled to be released by the LTS version. There will be additional iterations of XRI before we get to the final verified release.

Installation
XR Interaction Toolkit will not appear in the Package Manager window in Unity 2021.1 and 2021.2 even when the option to show pre-release packages is enabled unless it has already been added. This is intentional and due to the package being held in pre-release and not having a verified 1.0.0 release version for 2021.2 (LTS). Existing projects with the package included, such as the Examples project, will show XR Interaction Toolkit in the Package Manager window.

See Installation in the Manual for instructions to add the package to your project by name.
The current latest versions of the package are 1.0.0-pre.8 and 2.0.0-pre.6 (recommended).

Roadmap
Use the public roadmap to see our latest plans, upvote existing feature requests, and/or submit new feature requests. We are currently working towards a final 1.0 pre-release that is compatible with Unity 2021.2 (LTS), and a verified release that addresses the above feedback by Unity 2022.1. The feature set for the Unity 2021.2 release will primarily reflect what exists today. Most of our focus and development efforts now are on bug fixes and polished documentation & samples to improve developer onboarding. We are simultaneously working to refactor some of the behaviors to improve flexibility for the verified release.

Stay tuned for our plans to get XRI to a verified status.

Whatā€™s new
For a full list of changes, refer to the Changelog in our documentation.

Many of the changes and fixes were a direct result of feedback we received from the forum and from reported bugs. Thank you to everyone who took the time to make these issues known to the team and for your feedback!

Notable changes

  • Fixed the attach point for Grab Interactables being inconsistent between Movement Type values. Instantaneous will now be entirely based on the Attach Transform instead of being partially based on its center of mass. This was an important change to make going forward, but it may cause the effective attach position to be different after upgrading when using Instantaneous. It is recommended that you adjust the Attach Transform or pivot as needed, but an Attach Point Compatibility Mode property is available to revert to the old calculation method. The option will be removed in a future version. (1294410)
  • Made several additional adjustments and fixes to Grab Interactable and the handling of the different Movement Type values. The Attach Transform can now be moved after being grabbed. The Rigidbody is now being set to Is Kinematic when Instantaneous to improve collisions and transform syncing. The default property values were adjusted to remove the damping when using Velocity Tracking mode, and the default mode was changed from Kinematic to Instantaneous. The Scripting API documentation for movement types were improved to better describe the differences.
  • Fixed an exception being thrown when an Interactor or Interactable was registered or unregistered (such as from being enabled or disabled) during processing and interaction events.
  • Fixed Direct and Socket Interactor sometimes not being able to interact with an Interactable with multiple Colliders or when either were registered after the trigger collision occurred. (1325375)
  • Fixed the Default Input Actions sample asset using the wrong pose bindings for Windows Mixed Reality controllers, causing the controllers to point at the wrong angle. You will need to import the sample into your project again to receive this update.
  • Fixed poor performance scaling as the number of valid targets and hover targets increased. AR projects with hundreds of gesture interactables should see a large speedup.

Known issues
Use the Unity Issue Tracker for Package: XR Interaction to see the active issues.

  • The package must be installed by name in Unity 2021.1 and Unity 2021.2 (LTS) since it will not appear in the Package Manager window even when pre-release packages are enabled in project settings.

  • Custom reticles get displayed on objects without a custom reticle (1252565)

  • Socket Interactor can apply the wrong rotation to an interactable and cause the interactable to skew in scale when the interactable has a parent with a non-uniform scale (1228990)

  • UI clicks are cancelled when multiple Ray Interactors are being pressed at the same time (1336124)

  • Grab Interactables can cause undesired behavior when using Continuous Move locomotion where the Character Controller can be blocked from moving while holding it, or cause the rig to rapidly move away when the object overlaps with the Character Controller

  • The XR Device Simulator canā€™t rotate the HMD when the Mock HMD is enabled.

  • The XR Device Simulator can conflict with connected HMD and controller devices, causing the position or rotation to be from different sources.

  • The XR Interaction Manager can pass invalid EventArgs to Interactors and Interactables when the same event is recursively triggered again by the event handler.

Deprecated members
As we continue developing the package, properties, methods, and events that are currently marked as Obsolete or Deprecated will start to be elevated from warnings to errors before ultimately being removed from the package before the final, verified release version. As more users begin to use the package, we want to eliminate potential confusion from the different members available and improve the experience while developing in an IDE with code completion and member lists.

Sharing feedback
This forum is the best place to open discussions and ask questions. As mentioned above, please use the public roadmap to submit feature requests. If you encounter a bug, please use the Unity Bug Reporter in the Unity Editor, accessible via Help > Report a Bug. Include ā€œXR Interaction Toolkitā€ in the title to help our team triage things appropriately.

2 Likes

Good. Make the core functionality stable as f.

During the pre-release phase, I strongly urge you to also add another Sample to the package with minimal sandbox sample scenes for VR and AR. No textures, shaders, or foo. To be used as a template for bug reporting.

When we suspect we see a bug, we can just create a new project based on this template. It will save much time for both us developers and you.

4 Likes

Hey Guys,

I am working on physical rotation of HMD. Basically, when I turn around physically within the tracking space without using any input(eg: thumbstick). How to rotate gameobject when I rotate HMD.

I have tried getting the cameraā€™s quaternion, but it is not rotating at center.

Any help will be greatly appreciated.

Thanks,
Avinash

Hi !!
About the compatibility of XRI with 2021.2, do you have any clue about a pre release date???
Thanks for your marvelous work!
edh

You can install the Input System package from the Window > Package Manager window, and then add the Tracked Pose Driver (Input System) component to the Camera GameObject. You can add a binding to the Position and Rotation input in the Inspector to use the centerEyePosition and centerEyeRotation. That component will automatically set the Transformā€™s position and rotation values to those read from the XR HMD.

1.0 pre-release and 2.0 will both be compatible with Unity 2019.4+. As soon as we publish the final 2.0.0 release, we will work to get it backported to the Package Manager window in Unity 2021.2. I donā€™t have the exact date of the 2.0.0 release, but it will be by March 2022.

1 Like

Uhm, wth? Are you actually working on a 2.0 alpha, while 1.0 alpha is in development?
No wonder nothing gets releasedā€¦ If 2.0 release is targeted for March, what is ETA of 1.0 release?

Nice to see youā€™ve implemented the ā€œInteraction Layer Maskā€ setting though, but yikes.

The 2.0 version is going to be replacing the 1.0 version of the package, which will stay in pre-release. We received feedback and enough feature requests to add interfaces and support multiple selections, which would have required a breaking change from users, that we decided to add those before we had our first verified release. We felt that it would have been worse for our users to release a final 1.0 version and then release a 2.0 version with Unity 2022.1 requiring significant code changes in userā€™s projects.

We could have added those changes as a postfix increment on 1.0.0-pre.x since those would have been relative to the previous preview version, but that seemed like an even worse way to communicate the level of change between versions for those users who have been staying current with each 1.0 version. So because of that, we decided to bump the major version to 2.0 for this latest release candidate version.

We will consider backporting critical bug fixes to 1.0 for those users who really canā€™t upgrade, but we encourage users to upgrade to 2.0 instead as we feel it is the better starting point for users to base their projects on. We spent time trying to make the upgrade process as painless and backwards compatible as possible to reduce the burden on users to make this upgrade.

I see. So that is what you meant with ā€œheld in pre-releaseā€. It donā€™t think it was very clear that youā€™d abandon 1.0 to focus on a better designed package with 2.0.

I do support this, but also indicates you tried to push the 1.0 release too early. I was surprised when you went from 0.10 to 1.0, because the package felt very early alpha. Anyway, thanks for clarifying. Will upgrade to 2.0 asap then.

1 Like

I agree that we pushed the 1.0 release too early. If I could do it over, I would have changed the package to experimental and then changed to pre-release when it was more polished and complete. Unity packages were shifting from preview to the new lifecycle for 2021 with experimental, pre-release, and released, and we probably jumped to pre-release prematurely.

Hi!
Iā€™m using the 2021.2.5f1 version and following the steps you provided isnā€™t working. When I try to ā€˜add package by nameā€™ it returns me the following error: ā€˜unable to find the error with the specified nameā€™. It happens even without specifying the release version.
Is there anything I can try?

7799754--985518--Screenshot 2022-01-11 at 18.19.15.png

From the screenshot, it looks like there is an extra space at the end that is causing the error. Please try again with it removed.
com.unity.xr.interaction.toolkit

1 Like

Oculus started to release their own XR Interaction SDK with the newest update.

Itā€™s still experimental but itā€™s working with controller and hand tracking interactions but lacking movement (no rotation, teleport etc.). Im going to be honest, some of these interactions already look/feel better than the XR Toolkit, especially the hand tracking interactions, which are not implemented in the XR Toolkit (yet?).

Will this somehow affect the development of the XR toolkit?

I thought Unity and Oculus work close together, so I donā€™t understand why they developed a different system instead of extending / improving the XR Toolkit that Unity already started, but Im wondering if there are any plans to combine these packages in the future?

As a Quest 2 developer Im a bit conflicted about the situation, I always liked how easy the XR Toolkit was to get started with some basic movement and interactions, but now that they have their own interaction SDK, I fear that this Toolkit will not get as much attention / ressources anymore. For Unity this is only a ā€œside projectā€ but for Oculus itā€™s part of their ā€œmain projectā€ and itā€™s in their own interest to make the interaction system for their platform as good and unified as possible.

I havenā€™t tried it yet but they specifically mentioned a few times that they designed it so it could be used in conjunction with other frameworks including XR Toolkit.

hi, I am using unity version 2021.2 but could not access XR interaction toolkit. even i give preview enable packages, i could not find XR interaction toolkit.

To install XR Interaction Toolkit in Unity 2021.x, you will need to install the package by name.
Copy and paste the package name into the Name field:
com.unity.xr.interaction.toolkit
You can leave the optional Version field empty and it will install the latest version of the package.

1 Like

@chris-massie , thanks a ton !

1 Like