mixed reality xr microsoft

Microsoft Mixed Reality Does Not Have to Die

TLDR; Or at least Microsoft's relevance in the Extended Reality (XR) space doesn't have to.. But Microsoft does need to change its XR strategy.

There have been recent articles responding to Microsoft deprecating its Mixed Reality functionality and the general continued reduction in Mixed Reality efforts and investment. This comes as not surprise to many, with Microsoft recently vastly reducing its Mixed Reality team, throwing doubt on their desire to want to continue to innovate and be relevant in this space.

But there's (still) good news

As a Microsoft MVP in Developer Technologies and Mixed Reality, I feel it is important to share with the dev community how C# and .NET Developers can still continue to create a variety of XR (AR, VR & MR) experiences using their C# & .NET skillset for a variety of devices (not just the HoloLens!) as I truly believe that XR and immersive experiences will become increasingly important in society over the next few years.

And if done correctly, Microsoft could help position C# & .NET developers to take advantage of the inevitable rise of XR.

Mobile Augmented Reality using Xamarin.iOS (ARKit) and Xamarin.Android (ARCore)

Today, C# and .NET developers can use Visual Studio and cross platform tooling to create native mobile Augmented Reality experiences. Something that is not nearly promoted enough by Microsoft considering its desire to push its cross platform capabilities once upon a time.

  • Xamarin.iOS can be used to create AR experiences on iPhone, and iPad devices utilising iOS's AR framework ARKit.
  • Xamarin.Android can be used to create AR experiences on Android devices utilising Androids AR framework ARCore.

Both ARKit and ARCore allow C# / .NET developers to leverage amazing AR functionality native to the devices taking advantage of the device hardware and cameras such as plane detection, image detection, body detection, face detection, physics engines, animations and touch gestures to name just a few.

And all this can be done inside Visual Studio, with no need to learn a new IDE like Unity.

Here is an example of a periodic table in augmented reality on my iPhone created using Xamarin.iOS, C# and .NET from within Visual Studio.

If you haven't already looked at creating AR experiences for iOS and Android devices using C# & .NET inside Visual Studio, I suggest you check it out.

Virtual Reality and Mixed Reality using StereoKit and OpenXR

A relatively new open source Mixed Reality framework originally conceived by Nick Klingensmith that also allows developers to use C# & .NET from inside Visual Studio, but this time create experiences for headsets such as the Meta Quest 2 & 3 is StereoKit.

I must admit, I've fallen a little in love with StereoKit. It's declarative code style and simplicity allow developers to create VR & MR experiences for their headsets very quickly with solutions building and deploying in seconds.

The fact that StereoKit is OpenXR standard compliant is a big draw for me. Creating an XR app with StereoKit that can be easily deployed to a range of devices that support OpenXR is very appealing.

With the increasing capability, availability and popularity of devices like the Quest 3, this combination of technologies is tantalising.

Here is an example proof of concept I created with StereoKit running on my Meta Quest 3 headset demonstrating immersive data visualisation and analysis, created with C# & .NET using Visual Studio.

For more information about StereoKit, go to StereoKit.net.

Unity, AR Foundation and MRTK

I am less familiar with this combination of technologies and the Unity IDE is not my favourite, so can't talk about it with any authority, but I know it is possible to use a framework within the Unity IDE called AR Foundation (which I believe is an abstraction/wrapper around ARKit and ARCore - depending on which device platform is being targeted) to use C# and .NET to create AR experiences, and the MRTK (Mixed Reality Toolkit) to target headsets.

If you are already experienced with Unity, you may want to start here.


HoloLens

I was super excited when the HoloLens device was first revealed and demonstrated. Despite its limited FOV (Field of View), in many ways it heralded a new era of XR and showed the industry that Microsoft was capable of cutting edge technology and shaping the future. Inspiring many developers to create some amazing experiences for this technology.

Unfortunately with only a single iteration (HoloLens 2) and a price point of $3500 and a perceived sole focus on enterprise & industry, without additional iterations with a lower price point, Microsoft are effectively putting all their expensive XR eggs in one basket and could be left holding an XR equivalent of a Blackberry; an enterprise device which is destined to be replaced by consumer equivalents that can equally serve both consumer and enterprise markets.

I'm not saying the HoloLens isn't a fantastic device - it is, with many use cases. And I understand Microsoft's strategy of solely targeting enterprise and industry - While the sun is shining make hay. The military contracts alone are eye watering.. But without further iterations or significant drops in price, HoloLens days could unfortunately be numbered, destined to be replaced by consumer devices. Just like Blackberry was with its over confident focus and reliance on the enterprise market.

We've seen this before. Many times.

I recommend a change in Microsoft's XR Strategy

If Microsoft don't want to invest in consumer XR hardware, they could take another path to stay relevant in the XR space whilst still achieving XR longevity beyond HoloLens.

As mentioned above; Microsoft actually provide various (not very well promoted) ways to create XR experiences.

I would recommend the following:

  • XR Vendor hardware: Double down on their existing XR development technologies that leverage other vendors hardware (e.g. Cross platform mobile AR & StereoKit). Let others handle the hardware, and go back to being a market leading software company, this time in XR software.
  • XR Promotion: Promote and popularise these various XR development options made possible by Microsoft technologies like C# & .NET. It's not Fields of Dreams. Developers need to be made aware of these XR dev options.
  • XR Community: Invest in building a community around XR development with Microsoft technologies once again.
  • Developer Culture: Many perceive Microsoft to be losing much of its software development culture. Culture eats strategy for breakfast. The software development culture at Microsoft needs some love.
  • XR Showcase: MS should showcase the vast range of inspiring and amazing XR experiences that can be built using the technologies and platforms mentioned. All created using C# & .NET. Why don't they do this already?

Community is perhaps the most important thing here. I've come to believe that for any technology or strategy to succeed, it requires buy in, approval, adoption and passion from the community. Without community support no technology or strategy can succeed.

Making these changes to their XR strategy would not only allow them to continue to be at the forefront of the XR space and ensure longevity if done correctly, it would also endear themselves to the XR and dev community and go a long way to repairing some of the XR communities lost faith in their XR strategy.

Admittedly, missing from my above suggestions are any significant financial incentives for Microsoft to rejuvenate its XR strategy in this manner and start a renaissance in XR development with Microsoft technologies.

That would require further thought, but not an unsurmountable task.

Summary

Microsoft is at a pivotal point in its XR strategy.

On its current path I fear it has too many eggs in one basket, and is neglecting the important consumer XR space and XR community that is critical in achieving its longevity.

It is more than possible that Microsoft doesn't want to do XR "in this way". Which is fine, but I believe would ultimately be short-sighted given the growth we are going to witness in XR and immersive experiences.

Unknown to many devs still, are the range of XR development options that are available to date that utilise C#, .NET and Visual Studio. The topic perhaps of my next article.

I really want to be optimistic about the future of XR in general, and the part that Microsoft can play in it. I strongly believe that Microsoft has the resources, capability and talent to help accelerate the entire XR industry. Just not the inclination. That's why it pains me to see continual exits and reducing investment in this exciting space by them.

To be perfectly clear, I sincerely hope I am wrong about the precarious position Microsoft find themselves in with their current approach to XR, and that Microsoft completely turns around its XR strategy, renews its efforts and goes on to thrive and lead in the XR space. That would be awesome. I would be very, very glad to be proven wrong if this happened.

Until such time.. Go now and do what developers do best. Create the future with the many tools we have at our disposal.

-- Lee