Hololens Development

Hololens Development

hololens POC

The HoloLens

From the time that Microsoft released its new HoloLens device in 2016, technology pioneers have been racing to jump on the bandwagon of mixed-reality and benefit from this virgin market.
HoloLens is an untethered holographic computer built into a headset that enables you to see, hear, and interact with holograms within an environment to create a hybrid reality. This hybrid or mixed reality merge between the real and the virtual, causing the physical and the digital to co-exist and to interact in real time.

Key early adopters from businesses and investors have already channeled their investments toward the mixed-reality technology, while the majority others are still watching closely to evaluate the appropriate timing to invest and endorse this new technology. For the latter, they might be a little late as the bandwagon is starting to accelerate.
These companies, big and small, are trying to build their capacities to develop for the HoloLens and be among the very first to penetrate what is expected to be a multibillion dollar market. Such companies usually design, develop, and launch mixed reality solutions and applications that intersect with their business needs. They mainly develop holographic content to transform the business experience on many levels, thus shifting challenges into opportunities.

What are Hololens applications?

 Hololens Applications
HoloLens apps are simply windows applications that take advantage of the Windows Holographic APIs or the OpenXR API. These APIs enable developers to place holograms in the real world, interact with the holograms using gaze, gestures, voice, in addition to spatial features access such as spatial mapping and spatial sound.

How to develop 3D applications for the Hololens?

A main drawback that developers are facing in the process of coding for the HoloLens is the steep learning curve required to operate on the available platforms, there are several options for developing for the HoloLens that we have categorized by the type of developers you are:
  • Option 1: Best for C++ developers

     Hololens Development VisualX C++
    The best option for writing 3d Hololens application in terms of performance is using DirectX in Visual C++. Obviously, DirectX development is very powerful as it gives you a direct access to the APIs but it is also much harder to code with especially as you have to write your own engine. This development stack always achieves a faster performance, but at the expense of development time. C++/DirectX will have the least layers/frameworks which results in a better performance. The other disadvantage is that very few developers HoloLens developers are using DirectX to develop for the HoloLens so the community support is lacking. Feel free to check the following for an overview of DirectX development.

  • Option 2: Best for games developers

     Hololens Development Unity or UnrealEngine
    For gaming developers, they currently have two options to develop for the HoloLens using a gaming platform: Unity, or alternatively Unreal Engine. Unity engine is the Microsoft recommended engine and has a great community behind it and you can always find some help and it is the currently the go to platform especially if you want to develop games for the HoloLens.
    Developers who are not specialized in gaming development need to learn a new environment and be familiar with the technicality of their gaming engine, which usually introduces a steep learning curve for other developers. Another disadvantage is that Unity does not have its own IDE, so you will need to use Visual Studio to write and edit code, and you will have to do a lot of switching back and forth between the two environments to a long development iteration time. Visual Studio is also needed to deploy and debug your code on the HoloLens, which makes the Development/Deployment/Debugging cycle even slower.
    You can get here an overview of unity development. Other gaming engine that started to be used for HoloLens development is the unreal engine: check the link here for more information.

  • Option 3: Best for web developers

     hololens Development Buildwagon
    Web developers is a huge community of developers that has yet to start developing for the HoloLens. The reasons they are not building is because it is very difficult for them to create application for the HoloLens and it requires a special skill set that most web developers are not familiar with.
    Web based developers, for example, are used to updating their web application and refreshing the browser to see the result. builddwagon online platform, enables developer to use existing familiar web technologies to create simple lightweight HoloLens experience. The platform provides the essential tools to code, demo, view, and test within a very minimal time span. The development language of this platform is in JavaScript and it uses its HoloBuild library to speed up the development process with a build in components. The developers can use the HoloLens online emulator to try their code, you can try it here, or on the HoloLens using the buildwagon app.

     Hololens Development Buildwagon Emulator.png
    When the developer reaches satisfactory results, their work can be branded, packaged and published as an app package on the Microsoft app store. To get started with simple example, check this HoloLens 101 example , or the Buildwagon HoloLens Development Tutorial.

    Main advantage of buildwagon:
    • Developers can build hololens apps the same way they build web applications using JavaScript; There is almost no learning curve to get started.
    • Developers can benefit from a short develop-build-test time, you just write your code and check the result on the HoloLens instantly.
    • You gain all the benefits of the web, making your application searchable, linkable, and low friction with no installation required.
    • You can start working on your PC in a browser, you don’t even need a hololens to get started (PS: hololens is recommended).
    • You can share your app with anyone by sending them a link, the is no download or installation required for them to try it on their HoloLens or in their browser.
    • You actually have a support line, the people who built the platform will help you with your hololens development problems.
    • You have less things to worry about as the platform is for HoloLens development in specific, and not a generic game development platform, which also lead to a smaller base code = a lower memory usage comapred to other engines.

  • Option 4: Best for windows developers

     Hololens Development UrhoSharp 3D 2D engine
    Windows developers can now use UrhoSharp, a 3D Game Engine, to develop Holographic experiences for the HoloLens. UrhoSharp is a cross-platform high-level 3D and 2D engine for Xamarin and .NET that can be used to create animated 3D and 2D scenes for your applications using geometries, materials, lights and cameras. For an introduction of urhoSharp check the following link. For a sample of hololens development with UrhoSharp check this link .
    The only concern with using UrhoSharp is the support and maintenance of it. - Not being updated since 2018.
    Other options for C# developers, who wants to work directly with directx, is using sharpdx: check here this link - Not being maintaned since 2019.
    Another recent option is sterokit, it has more activity than Urhosharp 3D, and is an open source mixed reality library using C#, check it out at this link.