The Mixed Reality Toolkit is a collection of scripts and components intended to accelerate development of applications targeting Microsoft HoloLens and Windows Mixed Reality headsets. The project is aimed at reducing barriers to entry to create mixed reality applications and contribute back to the community as we all grow.
MixedRealityToolkit-Unity uses code from the base MixedRealityToolkit and makes it easier to consume in Unity.
Learn more about Windows Mixed Reality here
Check out the updates from the Fall Creators update for Windows Mixed Reality
Currently we are waiting on a fix for HoloLens development from Unity, for now you should use the 2017.1.2 version of Unity and the "Release" version of the MRTK Asset:
For existing HoloLens developers, also check out the Breaking Changes information from the previous release.
Looking to upgrade your projects to Windows Mixed Reality? Follow the Upgrade Guide.
The Mixed Reality Toolkit for Unity includes many API's to accelerate the development of Mixed Reality projects for both HoloLens and the newer Immersive Headsets (IHMD)
Input | Sharing | Spatial Mapping |
---|---|---|
Scripts that leverage inputs such as gaze, gesture, voice and motion controllers. | Sharing library enables collaboration across multiple devices. | Scripts that allow applications to bring the real world into the digital using HoloLens. |
Spatial Sound | UX Controls | Utilities |
Scripts to help plug spatial audio into your application. | Building blocks for creating good UX in your application like common controls. | Common helpers and tools that you can leverage in your application. |
Spatial Understanding | Build | Boundary |
Tailor experiences based on room semantics like couch, wall etc. | Build and deploy automation window for Unity Editor. | Scripts that help with rendering the floor and boundaries for Immersive Devices. |
Windows 10 FCU | Unity 3D | Visual Studio 2017 | Simulator (optional) |
---|---|---|---|
To develop apps for mixed reality headsets, you need the Windows 10 Fall Creators Update | The Unity 3D engine provides support for building mixed reality projects in Windows 10 | Visual Studio is used for code editing, deploying and building UWP app packages | The Emulators allow you test your app without the device in a simulated environment |
To get up and going as quickly as possible, here are some guides to help you get started building Mixed Reality Projects
Quick start | Contributing to this project | Fall Creators Update |
---|---|---|
Please go over the Getting started guide to learn more about getting off the ground quickly. | Please go over the Contributing guidelines to learn more about the process and thinking. | Check out the recent updates for Windows Mixed reality in the Fall Creators update |
The MRTK includes many great samples and starter scenes to demonstrate the uses of the MRTK API, these include:
Keyboard input sample | Input manager tests | Interactive button demos |
---|---|---|
A sample virtual keyboard, similar to that used in the Mixed Reality Portal | Several gaze interaction demos, showcasing popups, gaze buttons and more | Example UI buttons and controls for use in Mixed Reality |
Motion Controller tests | Grab Mechanics demo | Scene occlusion demo |
Motion controller test scene demonstrating controller variables (IHMB only) | Several examples of grab mechanics using the Motion Controllers (IHMD Only) | Scene construction demo on how to make occluded windows |
Check out the Examples folder for more details.
Target Unity release | Release timeframe | Master release tag | Toolkit release features |
---|---|---|---|
2017.2.0 | (current) | v1.2017.2.0 |
|
2017.3.0 | End Dec 2017 | v1.2017.3.0 |
|
Target Unity release | Release timeframe | Branch release tag | Branch pre-release features | Status |
---|---|---|---|---|
2017.2.1 | Mid Oct 2017 | v1.Dev.2017.2.1 |
|
Complete |
- Updating landing page for the ReadMe.md to help app developers find content better.
- Updating API documentation using tools like Doxygen and not writing them manually. This is something we will work with all of you on.
- Update Wiki to host API documentation instead.
- Move reusable features from Mixed Reality Design Labs project into toolkit.
- Improved samples and test cases
- Master branch releases will align with major Unity releases marking a release every 3 months. Please read the Unity roadmap.
- Each release will be marked as a GitHub release tag. You can consume this release by:
- Using the zip file available in the release notes
- Unity packages available in the release notes
- Syncing to the specific git tag you would like to lock on.
- Release tag name convention: v1.Unity release major number.Unity release minor number.Iteration number
- For example: For Unity version 2017.1.0 our release tag would be v1.2017.1.0
- If we marked another release with the same Unity version: v1.2017.1.1
- Unity packages for each release will be published to the Unity asset store.
- Unity packages for each feature area like Input/SpatialMapping will also be added to the release notes.
- Academy content will be updated with each major toolkit release.
- Development branches are great for incubating features before they make their way into master.
- These branches can be feature work or experimental features.
- Development branches might not be on the same Unity versions as master.
- For being merged into Master the dev branch will have to follow the cadence laid out for master.
- Development branches might choose to mark releases on a faster cadence based on customer/project needs.
- Recommend marking a development branch tag every 2 weeks as needed to ensure stability before making up to master.
- Development branches might be deleted once merged into master. If more work is pending, it's ok to continue working in them.
External\How To docs folder is meant to help everyone with migrating forward or any simple doubts they might have about the process. Please feel free to grow all these sections. We can't wait to see your additions!
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Academy | Design | Development | Community |
---|---|---|---|
See code examples. Do a coding tutorial. Watch guest lectures. | Get design guides. Build user interface. Learn interactions and input. | Get development guides. Learn the technology. Understand the science. | Join open source projects. Ask questions on forums. Attend events and meetups. |