Quick Setup Guide for Hololens App Remoting Player on Unity

The Microsoft Hololens Holographic Remoting Player  is a solution to view remote holographic renders.  Hololens is an untethered device, a self-contained system that displays holograms to a user without the need for an external computer — however what if you have a very powerful machine that renders scenes and 3D models beyond the capability of most portables or even currently available consumer devices?

The Holographic Remoting Player is able to take the stream from a Holographic Remoting enabled application and display the view on the Hololens.   The initial tools are posted as a package with additional details at https://www.nuget.org/packages/Microsoft.Holographic.Remoting/1.0.0,  this approach is for enabling a windows application using the holographic API’s.

How do we get this functionality in Unity?

Setup Requirements:

  • Setup your Development Workstation, you need Windows 10 with the Anniversary Update.remotingwindowsversion

    Check and install updates if your version is lower than 1607 Build 14393.187. This takes a while to complete.

  • Setup the workstation for Hololens development following the guide https://developer.microsoft.com/en-us/windows/holographic/install_the_tools.This is not strictly needed for remoting on a workstation since you will not be deploying on the HoloLens but might as well do it so you can develop and learn with the currently released tools and tutorials.   (As of this entry, the latest version of the Unity Hololens Technical Preview is 5.4.0f3 and does not have Holographic Remoting included)
  • Install the latest Unity version that supports Holographic Remoting, as of writing the version is on Beta 5.5.0B5 Release. When prompted, make sure to install this Unity version on a different path as your Hololens Technical Preview, usually just follow the suggested versioned pathname.   Unity allows multiple versions to run side-by-side provided they are installed on different folders.remotingunityversion
  • On your Hololens, “Bloom” to the menu and start the “Store” app, find the Holographic Remoting Player and install on the Hololens. You can start the up and it will show the main graphic that indicates the device IP address which will be needed on the workstation.

Walkthrough Setup for Unity Holographic Remoting

  • Startup the Unity Version with Holographic Remoting Enabled
  • Create a new project
  • Change the Build Settings for Windows Store with the following values
    • SDK: Windows 10
    • Target Device: Hololens
    • UWP Build Type: D3D
    • Copy References: Checked
  • In the Player Settings, enable Virtual Reality for Windows Holographic
  • Create or Load a 3D Scene, such as the simple cube setup – the “Hello World” for 3D app development. Make sure the camera is at origin (0,0,0) much like a typical Hololens scene.
  • Select from the Unity Main Menu “Windows” / “Holographic Simulation and Remoting” to open the remoting settings.remotingmenuitemSetup for the Hololens with the following settings:
    • Perception Mode: Remote to device
    • Remote Machine Name: <Hololens IP Address>
    • Enable Video: Checked
    • Enable Audio: Checked
    • Max Bitrate: <Max Value>
    • Automatically Connect: Unchecked
      As of writing, enabling “Automatically Connect” does not display the scene on Hololensremotingwindow
  • Verify the Hololens Remoting Player is running on Hololens and then Click the “Connect” Button, assuming everything is setup as needed the “Connected Status” will change to “Connected” and change the indicator color to green.remotingwindowconnected
  • Click “Play” on the Unity Editor, the scene should now display on the Hololens,  moving around while wearing Hololens will also move the in-scene camera in Unity.

This setup allows a quick view of the Unity Scene on Hololens as well as basic camera movement input back to the Unity editor – a very convenient capability during holographic app development.   I’ll cover enabling apps for remoting using the Holographic Remoting tools in later posts.