Applications that require spatial mapping data rely on the device to automatically collect this data over time and across sessions as the user explores their environment with the device active. The completeness and quality of this data depends on a number of factors including the amount of exploration the user has done, how much time has passed since the exploration and whether objects such as furniture and doors have moved since the device scanned the area. To ensure useful spatial mapping data, applications developers have several options:
Note that in all these cases the actual data gathered during the exploration is stored by the system and the application does not need to do this.
Applications may decide to analyze the spatial mapping data at the start of the experience to judge whether they want the user to perform additional steps to improve its completeness and quality. If analysis indicates quality should be improved, developers should provide a visualization to overlay on the world to indicate:
Users do not know what makes a scan "good". They need to be shown or told what to look for if they’re asked to evaluate a scan – flatness, distance from actual walls, etc. The developer should implement a feedback loop that includes refreshing the spatial mapping data during the scanning or exploration phase.
In many cases, it may be best to tell the user what they need to do (e.g. look at the ceiling, look behind furniture), in order to get the necessary scan quality.
The spatial mapping data is the most heavy weight data source applications can consumed and to avoid performance issues such as dropped frames or stuttering consumption of this data should be done carefully.
Active scanning during an experience can be both beneficial or detrimental and the developer will need to decide which method to use based on the experience.
In the case of cached spatial mapping, the application typically takes a snapshot of the spatial mapping data and uses this snapshot for the duration of the experience. Benefits include:
A good case for this method is a controlled environment or a table top game.
Certain applications may rely on continues scanning to refresh spatial mapping data.
A good case for this method is one where holograms are expected to interact with moving objects, e.g. a holographic car that drives on the floor may want to correctly bump into a door depending on whether it is open or closed.