mixed-reality

Choosing your engine

There are several development paths you can take through our documentation. The first step is finding the technology that’s right for you. If you already have one in mind, go ahead and jump right to its respective tab below. If you’re on the fence or just starting out, take a look through each one and understand what they offer, the available platforms and tools, and start creating!

[!IMPORTANT] Take a look at our porting guides overview if you have existing projects that you want to bring over to HoloLens 2 or immmersive VR headsets like the Reverb G2. We have guides for projects that are using HTK, MRTK v1, SteamVR or were developed for immersive headsets such as the Oculus Rift or HTC Vive.

Engine overview

Features and devices


Logistics Unity Unreal JavaScript Custom engine
(using OpenXR)
Language C# C++ JavaScript C/C++
Pricing Unity pricing Unreal pricing Free Free


Device features Unity Unreal JavaScript Custom engine
(using OpenXR)
Device/display tracking ✔️ ✔️ ✔️ ✔️
Hand input ✔️ ✔️ ✔️ ✔️
Eye input ✔️ ✔️ ✔️
Voice input ✔️ ✔️ ✔️ ✔️
Motion controllers ✔️ ✔️ ✔️ ✔️
Plane/mesh hit testing ✔️ ✔️ ✔️ ✔️
Scene understanding ✔️ ✔️ ✔️
Spatial sound ✔️ ✔️ ✔️ ✔️
QR code detection ✔️ ✔️ ✔️


Hardware Unity Unreal JavaScript Custom engine
(using OpenXR)
HoloLens 2 ✔️ ✔️ ✔️ ✔️
HoloLens (1st gen) ✔️ ✔️ WinRT (Legacy) only
Windows Mixed Reality headsets ✔️ ✔️ ✔️ ✔️
SteamVR headsets ✔️ ✔️ ✔️ ✔️
Oculus Quest/Rift ✔️ ✔️ ✔️ ✔️
Mobile (ARCore/ARKit) ✔️ ✔️ ✔️


Tools Unity Unreal JavaScript Custom engine
(using OpenXR)
   
Mixed Reality Toolkit ✔️ ✔️    
World Locking Tools ✔️    
<!– Mesh –>


Cloud services Unity Unreal JavaScript Custom engine
(using OpenXR)
Azure Spatial Anchors ✔️ ✔️ ✔️
Azure Object Anchors ✔️ ✔️
Azure Remote Rendering ✔️ * ✔️ *

[!NOTE]

Next steps

[!INCLUDE]