ARDK 0.10.0 Release Notes 2021-08-05

What’s New

  • [Basic AR] Add a manager for image detection, as well as update the example scene to use it.

  • [Basic AR] The ARPlaneManager can be configured to not spawn any game objects, by setting the plane prefab to null.

  • [Context Awareness] Added support for models with up to 32 semantic classes.

  • [Developer Tools] Virtual Studio’s Remote mode now supports adding and removing ARAnchors.

  • [Developer Platform] ARDK 0.10.0 has been tested against iOS 15 beta and Android 12 beta with all tests passing. We do not expect any trouble, but please continue report any unexpected behavior

Known Issues

  • [Basic AR] Disposing an ARSession after adding an image anchor causes crash

  • [Basic AR] Image anchors detected on Android devices will initially return a position of (0, 0, 0)

  • [Basic AR] Image anchors detected on Android devices are updated each frame without a change to the underlying data

  • [Basic AR] Observed possibility for ARSessionManager to subscribe to CapabilityChecker.Success twice

  • [Multiplayer] Physics not simulating for unowned network objects

  • [Contextual Awareness] Depth not correctly enabling when ARDepthManager is enabled after the ARSession has Ran

  • [Developer Tools] MockARNetworking pose and state logic doesn’t exactly match native (will go directly from waitingForLocalization to stable)

  • [Developer Tools] Remote Depth buffer is not oriented to screen viewport

  • [Developer Tools] Observed memory leak for ARFrame messages received after the RemoteEditorARSession is destroyed

  • [Developer Platform] The Redmi Note 9 Pro device is currently unusable

  • [Developer Platform] Android Manifest may fail to merge in Unity if Android target API is set higher than 29. The solution is to use a newer version of gradle to build, see the Android section in the System Requirements page

  • [Developer Platform][Examples] In the LowLevelNetworking scene, sent messages are not displayed on the sender’s device

  • [Developer Platform][Examples] In the LowLevelNetworking scene, server errors are not completely handled which could lead to some irrecoverable states

  • [Developer Platform][RecordingExamples] In the Capture scene, the camera view appears without use of Init and Run buttons.

Improvements

  • [Multiplayer] Improved reporting of multiplayer errors. It is now possible to differentiate types of connectivity issues to simplify root cause analysis.

  • [Contextual Awareness] Depth Point Cloud is more accurate

  • [Contextual Awareness] Context Awareness Features can be preloaded and then used when there is no internet connection

  • [Developer Tools] Combined Virtual Studio (Mock) and RemoteConnection windows into a single window, where you can now directly control mock players from.

  • [Developer Platform] General improvements to the documentation in various areas

  • [Developer Platform] Added a search bar to documentation page allowing search within ARDK API

Bug Fixes

  • [Basic AR] Add a documentation blurb to the Image Detection page about ARImageDetectionManager.

  • [Multiplayer] Fixed bug where IARSession.MapsAdded and MapsUpdated events weren’t being surfaced.

  • [Multiplayer] Changed Mock/Remote ARNetworking to be the same as on-device ARNetworking, where disposal of ARNetworking, ARSession, and MultipeerNetworking objects are all separate.

  • [Contextual Awareness] Fixed issue where mesh glitches appear in the Garden Chunk Meshing Tutorial

  • [Contextual Awareness] Fixed issue in which depth frame latched in the screen when moving very slowly

  • [Contextual Awareness] Fixed erroneous button labeling in GameBoard example

  • [Contextual Awareness] Fixes bug where awareness buffer was misaligned in LandscapeLeft orientation

  • [Developer Tools] MockDetectables fixed to be discovered right away if _timeToDiscovery is set to 0. MockMaps fixed to be only discovered once per ARSession run (this is consistent with on-device behaviour).

  • [Developer Tools] ARDKGlobalVersion methods fixed to return valid values in Unity Editor

  • [Developer Platform] Fixed bug where sometimes Virtual Studio window would not detect joined session metadata.

Breaking Changes

  • [Basic AR] Fix UnityLifecycleDriver.Initialized incorrectly being true when instantiating a prefab.

  • [Multiplayer] Renamed IMultipeerNetworking.Disconnecting to IMultipeerNetworking.Disconnected to match ARDK event naming convention.

  • [Contextual Awareness] Remove _occlusionEnabledOnStart from DepthMeshOcclusionManager, and instead correctly initialize the OcclusionEffect with the AreFeaturesEnabled state.

  • [Developer Tools] Removed DisableOnStartInNonEditorBuilds component (stub class, remnant of very old version of ARDK).

  • [Developer Tools] Changed ARInfoSource to be named RuntimeEnvironment, since the enum value is applicable for networking in addition to AR.

  • [Developer Tools] ARDKGlobalVersion method names capitalized to match ARDK code style.

Upgrade Guide

Context Awareness Working Offline

If you want contextual awareness features to work while the phone is offline, you can use either the IFeaturePreloader or FeaturePreloadManager to load Feature.ContextAwareness while the phone has internet access. Then depth, semantic segmentation, and meshing will work even if the device is offline the first time those features are actually used.

DepthMeshOcclusionManager

If you were using the _occlusionEnabledOnStart property to prevent depth from starting immediately, you’ll need to either:

  • Disable the DepthMeshOcclusionManager component, and enable it when you want depth, or

  • Set UnityLifecycleDriver._manageUsingUnityLifecycle property to false and call EnableFeatures on the DepthMeshOcclusionManager when you want depth.

ARInfoSource

If you were manually specifying whether to use the native, mock, or remote implementation of ARDK by providing an ARInfoSource, you’ll need to change it to use the equivalent RuntimeEnvironment value.

ARDKGlobalVersion

If you were checking the ARDK version using this class, the method’s name has been changed to be capitalized.

IMultipeerNetworking

If you were listening to disconnect events, you need to subscribe to the Disconnected event instead of Disconnecting.

Released: August 05, 2021