Skip to content

Repository files navigation

Mixed Reality Toolkit

What is the Mixed Reality Toolkit

MRTK-Unity is a Microsoft driven project that provides a set of components and features to accelerate cross-platform MR app development in Unity. Here are some things MRTK does:

  • Provides the basic building blocks for Unity development on HoloLens, Windows Mixed Reality, and OpenVR.
  • Enables rapid prototyping via in-editor simulation that allows you to see changes immediately.
  • Designed as an extensible framework that provides developers ability to swap out core components.
  • Supports a wide range of platforms, including
    • Microsoft HoloLens
    • Microsoft HoloLens 2
    • Windows Mixed Reality headsets
    • OpenVR headsets (HTC Vive / Oculus Rift)

Getting Started with MRTK

Getting Started and Documentation
Getting Started
Getting Started
MRTK Overview
Feature Guides
Feature Guides
API Reference
API Reference

Build Status

BranchCI StatusDocs Status
mrtk_developmentCI StatusDocs Status

Required Software

Windows SDK 18362+Windows SDK 18362+UnityUnity 2018.4.xVisual Studio 2019Visual Studio 2019Simulator (optional)Simulator (optional)
To build apps with MRTK v2, you need the Windows 10 May 2019 Update SDK.
To run apps for immersive headsets, you need the Windows 10 Fall Creators Update.
The Unity 3D engine provides support for building mixed reality projects in Windows 10Visual Studio is used for code editing, deploying and building UWP app packagesThe Emulators allow you test your app without the device in a simulated environment

Feature Areas

Input SystemInput System
Hand Tracking<br/> (HoloLens 2)Hand Tracking
(HoloLens 2)
Eye Tracking<br/> (HoloLens 2)Eye Tracking
(HoloLens 2)
ProfilesProfiles
Gaze + Gesture<br/> (HoloLens)Gaze + Gesture
(HoloLens)
UI ControlsUI Controls
SolversSolvers
Multi-Scene<br/> ManagerMulti-Scene
Manager
Spatial<br/> AwarenessSpatial
Awareness
Diagnostic<br/> ToolDiagnostic
Tool
MRTK Standard ShaderMRTK Standard ShaderSpeech & DictationSpeech
& Dictation
Boundary<br/>SystemBoundary
System
In-Editor<br/>SimulationIn-Editor
Simulation
Experimental<br/>FeaturesExperimental
Features

UI and Interaction Building blocks

ButtonButtonBounding BoxBounding BoxManipulation HandlerManipulation Handler
A button control which supports various input methods including HoloLens 2's articulated handStandard UI for manipulating objects in 3D spaceScript for manipulating objects with one or two hands
SlateSlateSystem KeyboardSystem KeyboardInteractableInteractable
2D style plane which supports scrolling with articulated hand inputExample script of using the system keyboard in UnityA script for making objects interactable with visual states and theme support
SolverSolverObject CollectionObject CollectionTooltipTooltip
Various object positioning behaviors such as tag-along, body-lock, constant view size and surface magnetismScript for laying out an array of objects in a three-dimensional shapeAnnotation UI with flexible anchor/pivot system which can be used for labeling motion controllers and objects
SliderSliderMRTK Standard ShaderMRTK Standard ShaderHand MenuHand Menu
Slider UI for adjusting values supporting direct hand tracking interactionMRTK's Standard shader supports various Fluent design elements with performanceHand-locked UI for quick access, using Hand Constraint Solver
App BarApp BarPointersPointersFingertip VisualizationFingertip Visualization
UI for Bounding Box's manual activationLearn about various types of pointersVisual affordance on the fingertip which improves the confidence for the direct interaction
Hand Joint ChaserHand Joint ChaserSpatial AwarenessSpatial AwarenessVoice CommandVoice Command
Demonstrates how to use Solver to attach objects to the hand jointsMake your holographic objects interact with the physical environmentsScripts and examples for integrating speech input
Eye Tracking: Target SelectionEye Tracking: Target SelectionEye Tracking: NavigationEye Tracking: NavigationEye Tracking: Heat MapEye Tracking: Heat Map
Combine eyes, voice and hand input to quickly and effortlessly select holograms across your sceneLearn how to auto scroll text or fluently zoom into focused content based on what you are looking atExamples for logging, loading and visualizing what users have been looking at in your app

Tools

Optimize WindowOptimize WindowDependency WindowDependency WindowBuild Window Build WindowInput recordingInput recording
Automate configuration of Mixed Reality projects for performance optimizationsAnalyze dependencies between assets and identify unused assetsConfigure and execute end-to-end build process for Mixed Reality applicationsRecord and playback head movement and hand tracking data ins editor

Example Scenes

Explore MRTK's various types of interactions and UI controls in this example scene.

You can find other example scenes under Assets/MixedRealityToolkit.Examples/Demos folder.

Example Scene

MRTK Examples Hub

With MRTK Examples Hub, you can try various example scenes in MRTK. You can find pre-built app packages for HoloLens(x86), HoloLens 2(ARM), and Windows Mixed Reality immersive headsets(x64) under Release Assets folder. Use the Windows Device Portal to install apps on HoloLens.

Example Scene

Sample App

Periodic Table of the Elements is an open-source sample app which demonstrates how to use MRTK's input system and building blocks to create an app experience for HoloLens and Immersive headsets. Read the porting story: Bringing the Periodic Table of the Elements app to HoloLens 2 with MRTK v2

Periodic Table of the Elements

Engage with the Community

  • Join the conversation around MRTK on Slack.

  • Ask questions about using MRTK on Stack Overflow using the MRTK tag.

  • Search for known issues or file a new issue if you find something broken in MRTK code.

  • Join our weekly community shiproom to hear directly from the feature team. (link coming soon)

  • Deep dive into project plan and learn how you can contribute to MRTK in our wiki.

  • For issues related to Windows Mixed Reality that aren't directly related to the MRTK, check out the Windows Mixed Reality Developer Forum.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Useful resources on the Mixed Reality Dev Center

DiscoverDiscoverDesignDesignDevelopDevelopDistribute)Distribute
Learn to build mixed reality experiences for HoloLens and immersive headsets (VR).Get design guides. Build user interface. Learn interactions and input.Get development guides. Learn the technology. Understand the science.Get your app ready for others and consider creating a 3D launcher.

Useful resources on Azure

Spatial Anchors
Spatial Anchors
Speech ServicesSpeech ServicesVision ServicesVision Services
Spatial Anchors is a cross-platform service that allows you to create Mixed Reality experiences using objects that persist their location across devices over time.Discover and integrate Azure powered speech capabilities like speech to text, speaker recognition or speech translation into your application.Identify and analyze your image or video content using Vision Services like computer vision, face detection, emotion recognition or video indexer.

Learn more about the MRTK Project

You can find our planning material on our wiki under Project Management Section. You can always see the items the team is actively working on in the Iteration Plan issue.

How to Contribute

View the How To Contribute wiki page for the most up to date instructions on contributing to the Mixed Reality Toolkit!

For details on the different branches used in the Mixed Reality Toolkit repositories, check this Branch Guide here.

About

MixedRealityToolkit-Unity uses code from the base MixedRealityToolkit repository and makes it easier to consume in Unity.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages