Mixedrealitytoolkit-unity: Spatial Awareness should be enabled by default for HoloLens default configuration profiles

Created on 10 Sep 2019  路  6Comments  路  Source: microsoft/MixedRealityToolkit-Unity

Describe the problem

When creating a new MRTK project and selecting either of the 2 HoloLens default configuration profiles, none of them support Spatial Awareness by default.

Describe the solution you'd like

Both HoloLens default configurations should have Spatial Awareness enabled by default.

In the case that, the final decision is to keep it disabled by default, I think a good compromise is something like a ServiceDisabledException to be thrown (along with a message to enable it in the profile through the MRTK component) when a disabled service is being retrieved through CoreServices (and other classes with a similar situation). This would alert users that the functionality is not broken.

Additional context

I understand that this situation has been mentioned before at https://github.com/microsoft/MixedRealityToolkit-Unity/issues/4945, however, there seems to be a lack of discussion on that previous issue.

Personally, I spent about 20 minutes trying to figure out why my attempts at accessing the CoreServices.SpatialAwarenessService was constantly returning null. It didn't help that there wasn't much information or warnings provided about it.

The original decision seems to be that as most people are disabling it, it should be disabled by default. However, I feel that as Spatial Awareness is a critical and core part of the HoloLens 2 feature set, disabling it hurts the discoverability of the feature. For this issue, there are 2 types of people approaching this problem: People who want it enabled and people who want it disabled.

For the former, they would assume a key feature like this to be enabled by default and the first thing that they would think upon seeing it not present would be that the feature is broken. The consideration that it would be disabled by default, does not seem like the most logical conclusion for new users.

For the latter, even if the feature is enabled by default, they would actively hunt to disable it and achieve the same effect with minimum disruption. If they really couldn't find it, the documentation is present.

4 - In Review Documentation Feature Request

All 6 comments

@davidkline-ms something to consider for next iteration planning.
@Troy-Ferrell for feedback from other consumers of this as well

Thanks for the feedback @pycorax!

Spatial Awareness has been one of those interesting features. For people who use it, it is a critical feature. But there are actually a lot of people who don't use it at all.

The preference for on/off by default was also greatly influenced by the strong need for performance. Spatial mapping can involve a lot of polygons and in particular generally fills the entire screen with pixels to calculate. Thus, your perf budget will automatically be chunked up quite a bit by this one feature.

You're right though in that it shouldn't take 20 mins for someone to realize the service is disabled.

@Pycorax out of curiosity, how did you learn about CoreServices.SpatialAwarenessService?

Oh I was in the midst of making the RC1 to 2.0 upgrade recommendations on the docs. I found out through intellisense while switching all of my MixedRealityToolkit.InputManager references to CoreServices.InputManager.

Interesting, we try to make note of it in our docs (FYI to others also reading this thread):
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.html

@davidkline-ms, it might be interesting to log all services registered in console at startup or conversely log all profiles disabled/enabled

Now that you mentioned it, I think it would be great to have code examples in the guides on the docs as well. Most of them seem to have guides on using the components in the editor to do things but few of them actually have any examples on how to do them programmatically. I think that would help greatly!

Well I was actually referring to MRTK logging information at runtime in my comment.

But yes our goal is also to include more code snippets on how to do things going forward. Some of our docs have already started more along this path and more:
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Pointers.html

Was this page helpful?
0 / 5 - 0 ratings