Releases: microsoft/MixedRealityToolkit-Unity
Microsoft Mixed Reality Toolkit v2.0.0
Welcome to the first official release of Microsoft Mixed Reality Toolkit version 2!
Getting started
To help you get started using MRTK v2, please see the Documentation Portal.
The Getting Started page covers software requirements and the initial steps required to use MRTK.
Changes since the RC2 releases
There have been some significant changes in this release of MRTK. For those with projects that are currently using one of the RC2 releases, please review the Upgrade Guide.
Release notes
Please see Release Notes for information on new features, known issues and changes.
MRTK Examples Hub App packages
To help you experience various example scenes in MRTK, we added pre-built MRTK Examples Hub app packages for HoloLens (x86), HoloLens 2 (ARM), and immersive headset (x64 PC). Please use Device Portal to install the app package.
Microsoft Mixed Reality Toolkit v2.0.0 RC2.1
MRTK v2 Release Candidate 2.1 provides new stabilization fixes and a few additional features.
This is an incremental release on top of 2.0, which fixes PressableButton usability issues.
Getting started
To help you get started using MRTK v2, please see the Documentation Portal.
RC1 to RC2 Upgrade Instructions
- Delete all MixedRealityToolkit folders from RC1: MixedRealityToolkit, MixedRealityToolkit.Examples, MixedRealityToolkit.Providers, MixedRealityToolkit.SDK, MixedRealityToolkit.Services
- Delete your Library folder
- Import the RC2 unity packages
- In your scenes, delete and re-add both the
MixedRealityToolkit
andMixedRealityPlaySpace
objects
What's new in RC2
Default HoloLens 2 Profile
We have added a new profile for HoloLens 2 development that includes some of the recommended MRTK configurations for best performance. #4780 #4442
Please note that this profile will only contain MRTK specific settings, you will still need to update Unity settings using recommendations in this doc.
Improved porting experience from HTK to MRTK v2
This change enables side-by-side import of HTK and MRTK to make porting to MRTK v2 easier.
Experimental Attribute
Some features the MRTK team works on appear to have a lot of initial value even if we haven’t fully fleshed out the details. For these types of features, we want the community to get a chance to see them early. Because they are early in the cycle, we label them as experimental to indicate that they are still evolving, and subject to change over time. See Experimental Features for more details
Hand-Attached menu (Experimental)
First experimental feature: a hand-attached menu. Please see #4532 for a description.
MRTK Standard Shader works with Unity’s Lightweight Render Pipeline
An upgrade path to allow developers to utilize Unity's Lightweight Scriptable Render Pipeline (LWRP) with MRTK shaders has been added. To perform the MRTK upgrade select: “Mixed Reality Toolkit -> Utilities -> Upgrade MRTK Standard Shader for Lightweight Render Pipeline” For more information please see #4311.
Input Action Handler
Added an input action handler interface to receive action events regardless of the input source. See #4475 for details.
MixedRealityServiceRegistry
Added the static MixedRealityServiceRegistry class to enable acquiring services when using the MixedRealityToolkit object or a custom service registrar. To acquire a service instance from the registry, call the TryGetService method.
IMixedRealityInputSystem inputSystem = null;
if (!MixedRealityServiceRegistry.TryGetService\<IMixedRealityInputSystem\>(out inputSystem))
{
// The input system has not been registered.
}
MixedRealityPlayspace
Replaced MixedRealityToolkit’s MixedRealityPlayspace property with a static MixedRealityPlayspace class to simplify accessing and transforming the play space in your applications.
IMixedRealityDataProviderAccess
Added the IMixedRealityDataProviderAccess interface to allow applications to request data provider instances from services which utilize data providers. In this release, the input and spatial awareness systems implement the IMixedRealityDataProviderAccess interface.
To acquire a data provider, use the following pattern.
IMixedRealitySpatialAwarenessMeshObserver meshObserver = (SpatialAwarenessSystem as
IMixedRealityDataProviderAccess)?.GetDataProvider\<IMixedRealitySpatialAwarenessMeshObserver\>();
if (meshObserver != null)
{
// Perform mesh observer operations.
}
API Surface Changes
There have been changes to some API surfaces since the last release drop:
MixedRealityToolkit
Removed the MixedRealityPlayspace property. Please use the static MixedRealityPlayspace class to access and transform the play space.
IMixedRealityBoundarySystem
Added BoundaryVisualizationProfile property to enable easy access to the boundary system’s visualization profile.
IMixedRealityDiagnosticsSystem
Added DiagnosticsSystemProfile property to enable easy access to the diagnostics system’s profile.
IMixedRealityInputSystem
Added InputSystemProfile property to enable easy access to the input system’s profile.
IMixedRealitySpatialAwarenessSystem
Added SpatialAwarenessProfile property to enable easy access to the spatial awareness system’s profile.
The GetObserver and GetObservers methods have been marked as obsolete in RC2 and will be removed from a future release of the Mixed Reality Toolkit, To ensure future source code compatibility, please use the MixedRealityDataProviderAccess interface as documented in “What’s new in this update”.
MixedRealityInputSystem
Implements IMixedRealityDataProviderAccess to enable requesting data provider instances.
MixedRealitySpatialAwarenessSystem
Implements IMixedRealityDataProviderAccess to enable requesting data provider instances.
Other issues fixed
Please check out recent PRs for detailed list of changes.
Works with Unity 2018.4 LTS
Works with Unity 2019.1
Microsoft Mixed Reality Toolkit v2.0.0 RC2
MRTK v2 Release Candidate 2 provides new stabilization fixes and a few additional features.
Getting started
To help you get started using MRTK v2, please see the Documentation Portal. This is the place to learn to use MRTK, and deep dive into MRTK architecture. We have prepared an initial set of documentation to get you started, but we would also like to hear from you if there's anything else you'd like to see added. If you are up to the challenge, help us improve the documentation by contributing your change! Learn how to contribute on our GitHub Wiki, please follow the documentation guide when you make changes.
What's new in RC2
Default HoloLens 2 Profile
We have added a new profile for HoloLens 2 development that includes some of the recommended MRTK configurations for best performance. #4780 #4442
Please note that this profile will only contain MRTK specific settings, you will still need to update Unity settings using recommendations in this doc.
Improved porting experience from HTK to MRTK v2
This change enables side-by-side import of HTK and MRTK to make porting to MRTK v2 easier.
Experimental Attribute
Some features the MRTK team works on appear to have a lot of initial value even if we haven’t fully fleshed out the details. For these types of features, we want the community to get a chance to see them early. Because they are early in the cycle, we label them as experimental to indicate that they are still evolving, and subject to change over time. See Experimental Features for more details
Hand-Attached menu (Experimental)
First experimental feature: a hand-attached menu. Please see #4532 for a description.
MRTK Standard Shader works with Unity’s Lightweight Render Pipeline
An upgrade path to allow developers to utilize Unity's Lightweight Scriptable Render Pipeline (LWRP) with MRTK shaders has been added. To perform the MRTK upgrade select: “Mixed Reality Toolkit -> Utilities -> Upgrade MRTK Standard Shader for Lightweight Render Pipeline” For more information please see #4311.
Input Action Handler
Added an input action handler interface to receive action events regardless of the input source. See #4475 for details.
MixedRealityServiceRegistry
Added the static MixedRealityServiceRegistry class to enable acquiring services when using the MixedRealityToolkit object or a custom service registrar. To acquire a service instance from the registry, call the TryGetService method.
IMixedRealityInputSystem inputSystem = null;
if (!MixedRealityServiceRegistry.TryGetService\<IMixedRealityInputSystem\>(out inputSystem))
{
// The input system has not been registered.
}
MixedRealityPlayspace
Replaced MixedRealityToolkit’s MixedRealityPlayspace property with a static MixedRealityPlayspace class to simplify accessing and transforming the play space in your applications.
IMixedRealityDataProviderAccess
Added the IMixedRealityDataProviderAccess interface to allow applications to request data provider instances from services which utilize data providers. In this release, the input and spatial awareness systems implement the IMixedRealityDataProviderAccess interface.
To acquire a data provider, use the following pattern.
IMixedRealitySpatialAwarenessMeshObserver meshObserver = (SpatialAwarenessSystem as
IMixedRealityDataProviderAccess)?.GetDataProvider\<IMixedRealitySpatialAwarenessMeshObserver\>();
if (meshObserver != null)
{
// Perform mesh observer operations.
}
RC1 to RC2 Upgrade Instructions
- Delete all MixedRealityToolkit folders from RC1: MixedRealityToolkit, MixedRealityToolkit.Examples, MixedRealityToolkit.Providers, MixedRealityToolkit.SDK, MixedRealityToolkit.Services
- Delete your Library folder
- Import the RC2 unity pagckages
- In your scenes, delete and re-add both the
MixedRealityToolkit
andMixedRealityPlaySpace
objects
RC1 to RC2 Upgrade Known Issues
Pressable buttons may need to be removed and added
After RC1 to RC2 upgrade, pressable buttons may have incorrect planes. To fix, remove and add back the pressable button component.
API Surface Changes
There have been changes to some API surfaces since the last release drop:
MixedRealityToolkit
Removed the MixedRealityPlayspace property. Please use the static MixedRealityPlayspace class to access and transform the play space.
IMixedRealityBoundarySystem
Added BoundaryVisualizationProfile property to enable easy access to the boundary system’s visualization profile.
IMixedRealityDiagnosticsSystem
Added DiagnosticsSystemProfile property to enable easy access to the diagnostics system’s profile.
IMixedRealityInputSystem
Added InputSystemProfile property to enable easy access to the input system’s profile.
IMixedRealitySpatialAwarenessSystem
Added SpatialAwarenessProfile property to enable easy access to the spatial awareness system’s profile.
The GetObserver and GetObservers methods have been marked as obsolete in RC2 and will be removed from a future release of the Mixed Reality Toolkit, To ensure future source code compatibility, please use the MixedRealityDataProviderAccess interface as documented in “What’s new in this update”.
MixedRealityInputSystem
Implements IMixedRealityDataProviderAccess to enable requesting data provider instances.
MixedRealitySpatialAwarenessSystem
Implements IMixedRealityDataProviderAccess to enable requesting data provider instances.
Other issues fixed
Please check out recent PRs for detailed list of changes.
Works with Unity 2018.4 LTS
Works with Unity 2019.1
Microsoft Mixed Reality Toolkit v2.0.0 RC1 Refresh
MRTK v2 Release Candidate 1 Refresh
MRTK v2 Release Candidate 1 Refresh is an updated version of the RC1 package with stabilization fixes and a few additional features
Getting started
To help you get started using MRTK v2, please see the Documentation Portal. This is the place to learn to use MRTK, and deep dive into MRTK architecture. We have prepared an initial set of documentation to get you started, but we would also like to hear from you if there's anything else you'd like to see added. If you are up to the challenge, help us improve the documentation by contributing your change! Learn how to contribute on our GitHub Wiki, please follow the documentation guide when you make changes.
What's new in the refresh
Sliders - New UI control that allows you to change a value continuously by grabbing and moving a slider on a track.
Slate zooming support - Two-handed content zooming on Slate with min/max values.
Works with Unity 2019.1
API Surface Changes
There have been changes to some API surfaces since the last release drop:
IMixedRealityPointerHandler
The OnPointerDragged was added to this interface, which may cause a build error if you have a class that implements this interface. This can be safely fixed by adding an empty implementation for the new method. Per the discussion in #4013, adding this method onto a new interface would have led to an ultimately more complicated pointer API story.
Namespace cleanup
One of the changes that came in RC1 was a refactor of namespaces of classes from deeply nested paths (like Microsoft.MixedReality.Toolkit.Core.Interfaces.InputSystem) to simpler paths (like Microsoft.MixedReality.Toolkit.Input). Several classes were not updated in the previous release, and these were fixed in this release. See #4019 for the list of changed classes (along with the new namespaces they now live in).
Microsoft Mixed Reality Toolkit v2.0.0 RC1
MRTK v2 Release Candidate 1
MRTK v2 Release Candidate 1 is here for anyone who wants to get started with development for HoloLens 2!
What does release candidate mean? A version of a program that is nearly ready for release but may still have a few bugs and polish issues; the status between beta version and release version.
Why the versioning of our release candidate? Well, we want to let you all get started with the tools for building awesome experiences across all our devices, including HoloLens 2, but we know there is more work to be done before we call MRTK "done".
Getting started
To help you get started using MRTK v2, we are proud to introduce the new Documentation Portal. This is the place to learn to use MRTK, and deep dive into MRTK architecture. We have prepared an initial set of documentation to get you started, but we would also like to hear from you if there's anything else you'd like to see added. If you are up to the challenge, help us improve the documentation by contributing your change! Learn how to contribute on our GitHub Wiki, please follow the documentation guide when you make changes.
What's new in RC1.
In this release we have introduced many exciting new features like articulated hand tracking and eye tracking with HL2; there are also some architectural changes to MRTK in response to community and partner feedback to make MRTK easier to use. Of course, RC1 also supports OpenVR, WMR, and HL1 development.
- MRTK Packages
- Namespace simplification
- Services Provider
- In Editor simulation
- Updated Input System
- Interactions and UX Controls (Demo Video)
- Spatial Awareness
Supported Platforms:
- UWP (HoloLens, HoloLens 2, WMR Headset)
- OpenVR
Here's the set of known issues in RC1 that we are working on fixing
- Slate panning is not working with Far interaction
- Other issues tagged "RC1 Bug" on the issues list
Microsoft Mixed Reality Toolkit v2.0.0 Beta 2
Overview
Welcome to Beta 2 of the Microsoft Mixed Reality Toolkit version 2 (formerly vNext 2018.x)!
PLEASE NOTE: This release is a significant breaking change from Mixed Reality Toolkit 2018.9.0 (released 2018/10/31) and all HoloToolkit releases.
Documentation for v2 is being written and published to https://github.com/Microsoft/MixedRealityToolkit-Unity/wiki. Please see the sidebar on the right hand of the page for individual links.
Features
- New version numbering system
- Adheres to Semantic Versioning 2.0.0
- Cross-platform Mixed Reality support
- Windows Mixed Reality
- Microsoft HoloLens
- Immersive Headsets
- OpenVR
- Windows Mixed Reality
- New, more modular architecture
- Core
- Interface definitions
- Data types
- Profile system for configuration
- Mixed Reality Toolkit scene object
- Unity Input data provider
- Mixed Reality Toolkit Standard Shader
- Platform data providers
- Windows Mixed Reality
- Windows Voice
- OpenVR
- System services
- Boundary
- Diagnostics (featuring the Visual Profiler)
- Input
- Spatial Awareness
- Teleportation
- Features
- Audio influencer effects
- Solvers
- User Experience Controls
- Standard Assets
- Core
Requirements
- Unity 2018.3.x or later
- Microsoft Visual Studio 2017
- Windows SDK 10.0.17134 or later
- Windows 10 1803 or later
The Packages
This release consists of two packages: Foundation and Examples.
Foundation
The Foundation package contains all of the packages defined here. This will enable access to the complete Mixed Reality Toolkit foundational feature set without needing to install any other packages.
Examples
The Examples package contains demonstration scenes and assets used to help get you started using the systems and features of the Mixed Reality Toolkit.
Changes since v2.0.0 Beta2 Release Candidate
- (#3496) Fix air-tap in Holographic Remoting (workaround for Unity issue #1033526)
- (#3502) MixedRealityToolkit Profile Inspector
- (#3503) Small Performance Tweaks Round 2
- (#3506) Read the default profile and default platforms from the ExtensionServiceAttribute
- (#3508) Pre-beta2 spell check pass
Known Issues
The following issues are known and under investigation.
- (#3158) Improve Workflow for Stabilization Plane
- (#3177) The "select" voice command no longer fires an event on Windows Mixed Reality
- (#3217) vNEXT Task: Add Application Pause/Focus from Engine to Service Locator
- (#3308) DeployOptions: Not able to connect to hololens and deploy appx
- (#3322) Unity UI buttons have priority over MRTK buttons
- (#3331) Controller visualization for Windows Mixed Reality
- (#3332) Controller visualization for OpenVR
- (#3359) FocusManager does not compute distance to Canvas correctly
- (#3403) If no camera exists in the scene, MRTK Configure doesn't properly set up the scene
- (#3422) [UWP] Selecting InputFields in the Editor only works outside the center text
- (#3427) Question: UIRayCastCamera Disappearing on click of create new in profiles
- (#3429) How to setup uGUI for MRTK?)
- (#3430) MRTK continually complains about irrelevant joysticks
Breaking Changes
Since the release of Mixed Reality Toolkit v2018.9.0 Beta 1, the number and scope of breaking changes is too large to completely enumerate here. The following is a subset of the most impactful breaking changes.
PLEASE NOTE: Many of the breaking changes involved the modularization of the Mixed Reality Toolkit. Configuration profiles created with the Beta 1 release will need to be updated or recreated.
- (#3074) Refactor Controller Mapping Profile to accept individual controller scriptable objects
- (#3115) Update inconsistent naming of core system implementations
- (#3295) Remove requirement for IMixedRealityInputHandler < T > to be an IMixedRealityInputHandler
- (#3326) Spatial awareness interface changes
- (#3341) Tree layout and assembly restructure to align with packaging
- (#3357) Create separate WindowsMixedReality provider assembly
- (#3358) Create separate OpenVR provider assembly
- (#3387) Add attribute to make sure we can migrate to data provider in V3
Microsoft Mixed Reality Toolkit v2.0.0 Beta2 Release Candidate
Overview
Welcome to the release candidate for Beta 2 of the Microsoft Mixed Reality Toolkit version 2 (formerly vNext 2018.x)!
PLEASE NOTE: This release is a significant breaking change from Mixed Reality Toolkit 2018.9.0 (released 2018/10/31) and all HoloToolkit releases.
Documentation for v2 is being written and published to https://github.com/Microsoft/MixedRealityToolkit-Unity/wiki. Please see the sidebar on the right hand of the page for individual links.
Features
- New version numbering system
- Adheres to Semantic Versioning 2.0.0
- Cross-platform Mixed Reality support
- Windows Mixed Reality
- Microsoft HoloLens
- Immersive Headsets
- OpenVR
- Windows Mixed Reality
- New, more modular architecture
- Core
- Interface definitions
- Data types
- Profile system for configuration
- Mixed Reality Toolkit scene object
- Unity Input data provider
- Mixed Reality Toolkit Standard Shader
- Platform data providers
- Windows Mixed Reality
- Windows Voice
- OpenVR
- System services
- Boundary
- Diagnostics (featuring the Visual Profiler)
- Input
- Spatial Awareness
- Teleportation
- Features
- Audio influencer effects
- Solvers
- User Experience Controls
- Standard Assets
- Core
Requirements
- Unity 2018.3.x or later
- Microsoft Visual Studio 2017
- Windows SDK 10.0.17763 or later
- Windows 10 1803 or later
The Packages
This release consists of two packages: Foundation and Examples.
Foundation
The Foundation package contains all of the packages defined here. This will enable access to the complete Mixed Reality Toolkit foundational feature set without needing to install any other packages.
Examples
The Examples package contains demonstration scenes and assets used to help get you started using the systems and features of the Mixed Reality Toolkit.
Known Issues
The following issues are known and under investigation.
- (#3158) Improve Workflow for Stabilization Plane
- (#3177) The "select" voice command no longer fires an event on Windows Mixed Reality
- (#3217) vNEXT Task: Add Application Pause/Focus from Engine to Service Locator
- (#3308) DeployOptions: Not able to connect to hololens and deploy appx
- (#3322) Unity UI buttons have priority over MRTK buttons
- (#3331) Controller visualization for Windows Mixed Reality
- (#3332) Controller visualization for OpenVR
- (#3359) FocusManager does not compute distance to Canvas correctly
- (#3403) If no camera exists in the scene, MRTK Configure doesn't properly set up the scene
- (#3422) [UWP] Selecting InputFields in the Editor only works outside the center text
- (#3427) Question: UIRayCastCamera Disappearing on click of create new in profiles
- (#3428) Airtap\Select not working (Holographic Simulation / Remoting)
- (#3429) How to setup uGUI for MRTK?)
- (#3430) MRTK continually complains about irrelevant joysticks
- (#3456) Selection not working in new vNext project (Holographic Simulation / Remoting)
Breaking Changes
Since the release of Mixed Reality Toolkit v2018.9.0 Beta 1, the number and scope of breaking changes is too large to completely enumerate here. The following is a subset of the most impactful breaking changes.
PLEASE NOTE: Many of the breaking changes involved the modularization of the Mixed Reality Toolkit. Configuration profiles created with the Beta 1 release will need to be updated or recreated.
- (#3074) Refactor Controller Mapping Profile to accept individual controller scriptable objects
- (#3115) Update inconsistent naming of core system implementations
- (#3295) Remove requirement for IMixedRealityInputHandler < T > to be an IMixedRealityInputHandler
- (#3326) Spatial awareness interface changes
- (#3341) Tree layout and assembly restructure to align with packaging
- (#3357) Create separate WindowsMixedReality provider assembly
- (#3358) Create separate OpenVR provider assembly
- (#3387) Add attribute to make sure we can migrate to data provider in V3
HoloToolkit 2017.4.3.0 - Refresh
This is a zero code change refresh of the 2017.4.3.0 release.
The changes contained within are updates to source comments and documentation.
HoloToolkit 2017.4.3.0
Project board: https://github.com/Microsoft/MixedRealityToolkit-Unity/projects/18
Upgrade Guide
Attention!
- This release is targeted for the Unity 2017.x products
- The recommended Editor version is 2017.4 LTS (Long Term Support)
- This release should be compatible for development for both HoloLens & immersive headsets for 2017.2+
- Windows SDK 10.0.17134 is required for 2017.2+
- Visual Studio 2017 is required.
- Fall Creators Update or later is required.
- When upgrading to this release, delete all toolkit folders before importing the package.
Fixes
- (#2937) Prevent solver targets from rotating when the target is the head
- (#2932) Fix null exception in WorldAnchorManager
- (#2985) Fix QR code building on non-WSA platforms
- (#3181) Delay trying to load controller models to enable Editor loading
Preview Features
- (#1867) Spectator View (share holograms with HoloLens and iOS devices)
- (#2327) Spectator View multilens support
- (#2872) QR Code Tracking
Import HoloToolkit-Unity-Preview-2017.4.3.0.unitypackage to include SpectatorView or QR Code Tracking in your project.
Mixed Reality Toolkit 2018.9.0 (vNext Beta)
Release Notes
- This is a pre-release version and is not feature complete.
- This release is not intended for production use.
- This release contains many breaking changes from previous HoloToolkit and Mixed Reality Toolkit vNext releases.
- Requires Unity 2018.1 or later
- Recommended version: 2018.2.14f1
- This product uses C# 6 language features.
- Use the ".NET 4.x" API Compatibility Level
- To build for Windows Mixed Reality, set
- Platform == Universal Windows Platform
- Select Windows Mixed Reality as the Virtual Reality SDK
- To build for Open VR, set
- Platform== PC, Mac & Linux Standalone
- Select OpenVR as the Virtual Reality SDK
Getting Started
Link to documents coming soon....
What's New?
- New MRTK Architecture
- Core / Device Abstraction Layer
- SDK layer
- Features
- New profile system to configure Mixed Reality Toolkit systems (Input, Spatial Awareness, etc.)
- Core systems
- Camera
- Input and Interactions
- Hand, Controller and Voice support
- Action based (with rules support)
- Boundary (for Room scale Immersive experiences)
- Spatial Awareness (mesh support for HoloLens experiences)
- Teleportation
- Diagnostics (CPU, Memory , Frame rate information)
- Registered Extension Services
- Windows Mixed Reality Device Manager
- Unity OpenVR Device Manager
- Unity Joystick Manager
- Unity Touch Input Manager
- Windows Mixed Reality Spatial Observer
- Windows Speech Input Manager
- Windows Dictation Input Manager
- Mouse Input Manager
- Solvers
- UX Collections
- Spatial Mouse support
- Audio Influencers
- Occlusion
- Low Fidelity (Lo-Fi)
- Demo scenes (in MixedRealityToolkit-2018.9.0-Examples.unitypackage)
- Audio
- Lo-Fi Effect
- Occlusion
- Boundary (room scale immersive experiences)
- Solvers
- Spatial Awareness Mesh (HoloLens)
- Standard shader
- Material Gallery
- Standard Material Comparison
- Standard Material Gallery
- UX
- Collections
- Lines
- Audio
- Devices Supported:
- Windows Mixed Reality
- Microsoft HoloLens
- Immersive Headsets
- OpenVR
- Windows Mixed Reality
Known Issues
- (#3004) Boundary components do not align properly with the platform on OpenVR
- Known issue in Unity 2018.x
- (#3037) If loading a system fails with an exception, no systems are active
- Controller models are not yet loaded from GLTF.
- Custom models can be specified in the Controller Visualization Profile