MR Design Labs Unity Lunar Module by Microsoft - 26

Games & ProjectsVR & AR

This is a repostiory for the Lunar Module example HoloLens App

Unity 5.6.1f1MIT LicenseUpdated 3 years agoCreated on May 20th, 2017
Go to source

Mixed Reality Design Labs

This repo is where Microsoft’s Windows Mixed Reality Design team publishes examples and explorations. The goal is to inspire creators and help them to build Mixed Reality experiences. We share sample app projects here that demonstrate how to use various types of common controls and patterns in Mixed Reality. Find out details about common controls and sample apps on

Supported Unity version: 2017.1.0f3

The current supported version of Unity is Unity 2017.1.0f3. If you are looking to have support for previous versions of Unity please check under Releases.

Important: Requires submodule MRDesignLab

As soon as you clone the repo, init and update submodule with git command:

cd MRDesignLabs_Unity
git submodule init
git submodule update

To update the submodules you’ll still need to pull from master by either going into the individual submodule directory and doing a git pull or by doing the following command to do pulls on all the submodules:

git submodule foreach git pull

This will add HUX and related tools under Assets/MRDesignLab/ folder

Lunar Module

Lunar Module sample app

Lunar Module is a open-source sample app from Microsoft’s Mixed Reality Design Labs, it is a spiritual sequel to the 1979 Atari classic, Lunar Lander. This sample app will demonstrate how to extend Hololens’ base gestures with two hand tracking and xbox controller input, reactive objects to surface mapping and plane finding, and simple menu systems. You can use this project’s components to create your own mixed reality app experience.

Technical Details

Local Hand Input - Assets/MRDesignLab/HUX/Scripts/Utilities/LocalHandInput.cs - This script provides a convenient way to track left / right hand input in local space relative to the player’s head. Once the player taps anywhere in space, that point is treated as the input origin and all translations are reported as X,Y and Z position / velocity in local space. This local translation survives world translations as well (eg, walking forward with your hand extended). Acceleration, clamping and dead zones are also provided.

Local hand input

Simple Menu Collection - Assets/MRDesignLab/HUX/Prefabs/Dialogs/SimpleMenuCollection - Most of Lunar Module’s menus are generated by the SimpleMenuCollection.cs script, which extends SimpleMenu.cs class and combines it with ObjectCollection to provide a way to rapidly assemble interfaces.

To use this prefab, drag it into your scene and assign a button prefab. Then enter the desired button names and targets into the inspector editor. Buttons will be instantiated at runtime and assigned to the specified Input Receivers. (For an example of an Input Receiver, check out Assets/MRDesignLab_LunarModule/Scripts/Screens/StartupScreen.cs.) SimpleMenu.cs and SimpleMenuCollection.cs could easily be extended to include transitions, animations and so on.

Simple menu collection

Hand Coach - Assets/MRDesignLab_LunarModule/Prefabs/HandCoach - this prefab enables devs to create standardized tutorials for their apps. It provides an interface for demonstrating left or right handed gestures, including directional motion. Visual options include ghosting, highlighting and color changes for lost tracking.

Hand coach

More from Mixed Reality Design Labs

Common Controls Examples:

Periodic Table of Elements sample app:


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

Show all projects by Microsoft