I’ve been starting to work on extending the “Dancing Robot” HoloLens project to have a shared hologram: basically to have the position changes shared between devices, as well as the angles and speeds of the various parts of the robot arm.
There’s quite a lot to this. There needs to be a server somewhere that coordinates the messages sent between the various devices. There needs to be a shared concept of space, so that devices that are in the same room but in different locations – which is all of them, at least for the usage scenarios I’m currently considering – can place geometry in the same “real world” location.
Luckily the HoloLens Toolkit and its Unity-specific components – which were used in the Holograms 240 tutorial – incorporate a SharingService.exe server-side component as well as some infrastructure simplifying the use of “world anchors” that get exported/imported by the various connected devices.
But before looking into all that, it’s worth considering how the devices will talk to the server from a network perspective.
You’ll need to run the server on a Windows system accessible via a web-socket (with a particular IP address and port), which – during development, at least – will typically reside on your local network. Because IP addresses are normally assigned dynamically – and it’s quite a pain to have to rediscover them, the whole time – for my purposes I decided to buy a simple travel wi-fi router:
Yes, it’s really that small (I have normal-sized hands) and micro-USB powered. It’s going to be just perfect for taking on the road, such as for Autodesk University 2016 (and possibly DevDays).
I have my router allocate a specific IP address (by binding its MAC address in the DHCP settings) and so the “Sharing Stage” script inside Unity can have a hardcoded address in it.
I’ve also configured the router to assign specific IP addresses for the various HoloLens devices, as this greatly simplifies pushing builds from either Visual Studio or directly from Unity (something the HoloToolkit for Unity enables).
Having this basic set-up has so far made life much simpler. I’ll post more on how actually to address hologram sharing as I work through the specifics over the next week or so.