ARDK 0.6.0 Release Notes 2021-02-10
API Refactor in Depth, Occlusions, and Semantics
We refactored Semantics and Depth into separate classes from IARFrame. See Breaking Changes section for more detail.
Example Scene and Extensions
We’ve updated some of the content and organization of our example scenes to make them more developer friendly. We’ve also updated some of our ‘Helpers’. Note: in future releases of ARDK we will begin to refer to our Helpers as Extensions.
Documentation and User Manual
We’ve made improvements to our documentation, including updates to the organization, stylization, and version release process.
ARDK is now fully namespaced with the Niantic prefix.
EditorToolSuite is now VirtualStudio and ARLog
The EditorToolSuite has been rebranded as VirtualStudio. A new logging tool has been added, called ARLog which should make debugging ARDK functionality much easier. Please see below for additional information.
Heads up: As of ARDK 0.6.0, we officially require .Net 4.x.
Some APIs included in ARDK may no longer compile on .Net 3.5.
Heads up: Armv7 builds will no longer work on 64 bit Android devices.
This is an ARCore requirement. In order to properly deploy to 64 bit Android devices, the scripting backend must be set to Il2cpp, and target architecture ARM64.
Notable Known Issues
An Exception in Unity is thrown for Android devices running Android 6 and lower that attempt to use the ARDK.
As announced for 5.0, on Android due to new manifest tags interacting with Unity’s manifest merge operation, we do not support target API >29. This issue remains for 0.6.0.
See Known Issues section for full list.
[Basic AR] New
ARSceneManagerPrefab to enable drag and drop functionality for managing an
ARSession’s lifecycle, configuration, and basic camera support.
[Multiplayer] Added message size limits to the
Size of byte data:
8kb for Unreliable messages,
10mb for Reliable messages
Size of string key (when encoded in UTF8):
Size of byte data:
[Multiplayer] For external builds:
ARDKAuthRegistrarno longer requires runtime input or fires any events.
Authentication information is set in
Awake(), and the
ServerConfigurationis ready to use immediately afterwards. This is following the larger external authentication refactor.
[Multiplayer] For external builds: the multiplayer session ID is now generated from user input as well as each external developer’s API key.
This will prevent distinct applications from connecting to the same session.
[Multiplayer] The most recently received
PeerStatefor each peer is available through the
[Developer Tools] ARLog
Build your application with the scripting define symbol
#ARDK_DEBUGto enable debug logs from ARDK.
Filter for relevant namespaces or classes using
ARLog.EnableLogFeature()to see logs regarding initialization, method calls, and native events. This can be useful for debugging problems without modifying ARDK code or using a separate ARDK artifact.
[Developer Platform] Attaching a debugger to an armored build of ARDK will no longer crash the application.
[Developer Platform] New manual-style documentation pages and organization.
[Developer Platform] Moved scenes that were previously in the ARDK-Example project but were mainly used for testing purposes into a test-specific project. These will no longer be released with ARDK-Examples
[Basic AR] ARDK will no longer crash if on Android if a native AR session is unable to be initialized.
[Multiplayer] Improved performance of a peer caching helper method in Multiplayer sessions.
[Contextual Awareness] Example scene
ContextualAwarenesshas been broken up into its various components to more directly relay API usage and best practices.
[Developer Tools] Updated ARDK Remote Feed App UI
[Developer Platform] ARDK-Example scenes have all been audited for API best practices.
[Developer Platform] Documentation pages updated where necessary.
[Multiplayer] Fixed a crash/exception related to the
PeerAddedevent when using
[Developer Tools] Fixed mock plane anchors to work properly with non-axis-aligned bounding boxes
[Developer Tools] Fixed
PlatformAgnosticInputclass to correctly surface mouse-up events.
[Developer Tools] Fixed Unity crashing/freezing related to improper deinitialization of RemoteConnection processes.
[Developer Tools] For external builds: fix for Remote Connection over USB not properly creating and connecting to
[Basic AR] Removed
IARAnchor.WorldScaleproperty and dependencies
[Multiplayer] Removed many obsolete or unused fields from
[Multiplayer] Removed the
ARDKAuthRegistrar.DidAuthenticateevent, authentication now occurs in native code upon creation of the session. Internal developers (non external builds) no longer need to consider the
[Multiplayer] For external builds: the authentication flow is now slightly different.
As long as the
ServerConfiguration.AuthenticationURLfields are set before creating a
NativeMultipeerNetworkingobject, no further action is necessary. Authentication codes are no longer required.
[Contextual Awareness] Refactored
Depthinto separate classes from
[Contextual Awareness] Removed
ModelParams, the replacements are properties from
IDepthBufferreturn a new instance of the same class but with new data.
MonoDepthUtilswas removed and functions went to
IDepthBufferto get the focal length with less arguments.
[Contextual Awareness] Removed the depreciated
[Contextual Awareness] Renamed
[Contextual Awareness] Renamed
[Contextual Awareness] Removed the
ConfigHelpercomponent from the ARDK-Examples project. ARDK will automatically set default URLs for resources (DBoW and Depth Model) if none are provided before they are required.
[Developer Tools] Removed all classes in the
Niantic.ARDK.VirtualStudio.Remotenamespace from the public API
[Developer Platform] The namespace
All references to ARDK will be broken.
MultipeerNetworkinguse factories now. Additionally, the methods for those that already had factories have changed.
By default, most users will just want to call
CreateOrThrow(), either with empty arguments or with a collection of
ARInfoSources that tells what to actually use (
Mock, for the moment, but new values may be added in the future).
[Developer Platform] There are no more static “Any” events. The only static events are in the factories and notify when the objects are created. From that point, users can register to any event they need directly on the instance they were just notified about.
[Developer Platform] Many classes that had a
Destroy()method are now
[Multiplayer] Using the
SendMessageAPI within the
PeerAddedcallback directed towards the newly added Peer will fail.
Workaround: Use the
SendMessageAPI for a particular Peer outside their corresponding
[Multiplayer] For external builds: failure to authenticate (invalid API key or authentication URL) will result in the application hanging.
[Contextual Awareness] ARDK-Playground Ring scene is broken upon reentry.
[Contextual Awareness] Due to model quality changes, Walkable Planes may be less accurate than in previous releases.
[AR Scanning] Recorder v2 captures images with colors swapped on some Xiaomi devices.
[Developer Tools] Hit tests performed on a Mock Plane may return results in the “air”.
[Developer Tools] Mock plane hit tests aren’t returned in order of closest to farthest.
MockARNetworkingpose and state logic slightly differ from
[Developer Platform] On Android due to new manifest tags interacting with Unity’s manifest merge operation, we do not support target API >29.
[Developer Platform] An Exception in Unity is thrown for Android devices running Android 6 and lower that attempt to use the ARDK.
[Developer Platform] On Unity 2019.1 to Unity 2019.3, there will be a build issue involving
GraphicsFenceto prevent this issue locally
[Developer Platform] On Unity 2019, our .asmdef files contain references to deprecated platforms and do not load properly. This will affect users that use the Universal Render Pipeline, or have require .asmdefs to link dependencies.
Released: February 10, 2021