Skip to content

Releases: Azure/azure-spatial-anchors-samples

V2.14.1

01 May 21:10
de2d9db
Compare
Choose a tag to compare

SDK
What's New
iBeacon Bluetooth beacons will work on iOS.

Fixed a crash that could occur while discovering anchors.

Unity Remoting for HoloLens should now work when using Unity 2021.3 and the latest OpenXR plugin

Error behaviour of some CloudSpatialAnchor functions have changed from throwing an exception (on failure) to calling a user supplied function with information on the exception.

Updated signature of the following CloudSpatialAnchorSession functions:
CreateAnchorAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor> const& anchor, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError)

DeleteAnchorAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor> const& anchor, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError)
GetAccessTokenWithAccountKeyAsync(std::string const& accountKey, std::function<void(std::string)> onComplete, std::function<void(std::exception_ptr)> onError)
GetAccessTokenWithAuthenticationTokenAsync(std::string const& authenticationToken, std::function<void(std::string)> onComplete, std::function<void(std::exception_ptr)> onError)
GetAnchorPropertiesAsync(std::string const& identifier, std::function<void(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor>)> onComplete, std::function<void(std::exception_ptr)> onError)
GetCloudSpatialAnchorMapsAsync(std::function<void(std::vector<std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchorMap>>)> onComplete, std::function<void(std::exception_ptr)> onError)
GetNearbyAnchorIdsAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::NearDeviceCriteria> const& criteria, std::function<void(std::shared_ptr<IVectorstd::string>)> onComplete, std::function<void(std::exception_ptr)> onError)
GetSessionStatusAsync(std::function<void(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::SessionStatus>)> onComplete, std::function<void(std::exception_ptr)> onError)
RefreshAnchorPropertiesAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor> const& anchor, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError) -> void
UpdateAnchorPropertiesAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor> const& anchor, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError)
Updated signature of the following CloudSpatialAnchorSessionDiagnostics functions:

CreateManifestAsync(std::string const& description, std::function<void(std::string)> onComplete, std::function<void(std::exception_ptr)> onError)

SubmitManifestAsync(std::string const& manifestPath, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError)

Updated signature of the following CloudSpatialAnchorWatcher function:
InformAnchorsNotNeeded(std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError)

Samples have been updated to Unity 2021.3.
HoloLens Unity samples have been updated to use the OpenXR Plugin. Please install the latest version (>= 1.7.2) of the OpenXR Plugin through the MixedRealityFeature tool as you update the ASA packages to 2.14.
The legacy WindowsMR plugin will still work in previous versions of Unity.

Known Issues

iOS/Unity deploy target may need to be set to 12.0 instead of 11.0.
Raycasting in the iOS/Unity sample appears to treat planes as infinitely sized. As a consequence, tables and desks in a room may take priority over the floor when raycasting.
Non-Unity apps may run into error similar to the one below in areas where older signatures (for the above functions) are being used:
error: too few arguments to function call, expected 3, have 2
});
^
note: 'CreateAnchorAsync' declared here
APIGEN_LINKAGE auto CloudSpatialAnchorSession::CreateAnchorAsync(std::shared_ptr<::Microsoft::Azure::SpatialAnchors::CloudSpatialAnchor> const& param_anchor, std::function<void()> onComplete, std::function<void(std::exception_ptr)> onError) -> void
^
error: too few arguments to function call, expected 3, have 2
});
To resolve the above error, remove Status (if included) as argument for onComplete function and include onError function (with std::exception_ptr argument) as last argument of function. For example:
Replace:
CreateAnchorAsync(cloudAnchor, [this](Status status) {

              ...

           });

With:
CreateAnchorAsync(cloudAnchor, this {
...

           }, [this](std::exception_ptr ex) {

               ...

           });

v2.13.0

20 Jul 00:03
914e32e
Compare
Choose a tag to compare

SDK only Hotfix v2.13.3

  • When using the OpenXR runtime on HoloLens, ASA would only issue one query per watcher
  • Fixed a crash likely associated with updating AppProperties for an anchor that hasn't been recalled by a watcher.

No changes to samples.

SDK

What's New

  • AppCenter dependency removed from all platforms.
  • Fixed crash on some iOS devices when starting a session.
  • SessionUpdated will no longer fire after calling StopSession
  • ReadyForCreate property based on ReadyForCreateProgress rather than RecommendedForCreateProgress
  • Fix iOS crash in CoarseReloc destructor

Known Issues

  • None

Samples

What's New

Known Issues

  • The Xamarin iOS sample does not recall or create anchors usable by other samples.
  • The Objective-C iOS 'Shared Demo' has a bad layout on some devices preventing the sample from being completed without making changes to the UI before building.

v2.12.0

04 Feb 17:20
Compare
Choose a tag to compare

SDK

  • What's New

    • This release fixes a bug where CloudSpatialAnchor.AppProperties were not being returned when locating anchors by relationship, i.e., using the AnchorLocateCriteria.NearAnchor criteria.
    • This release includes a change in Azure Spatial Anchors Unity plugin which makes the anchors found using the SpatialAnchorManager class agnostic to the manipulation of the ARSessionOrigin . This is useful for scenarios that ASA is used along other Unity packages that manipulate the ARSessionOrigin, such as World Locking Tools.
    • This release fixes a bug in Android platform where SDK may log one telemetry event even if SDK telemetry has been disabled by the app.
  • Known Issues

    • None

Samples

  • What's New

    • None.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.
    • Unity sample for HoloLens does not allow for surface interaction when placing cubes and hence cubes are not placed on surfaces.
    • Unity sample for Android nearby mode may occasionally show the message "Demo failed. check debugger output for more information" on the screen at the end of demo due to a known timing issue in sample code.

v2.11.0

19 Nov 04:39
Compare
Choose a tag to compare

SDK

  • What's New

    • This release adds a new CloudSpatialAnchorSession::EnableTelemetry method to the SDK API set which allows apps to disable ASA SDK Telemetry. ASA powered apps that would like to disable telemetry should call CloudSpatialAnchorSession::EnableTelemetry(false) before calling CloudSpatialAnchorSession::Start() which would result in no telemetry events being logged by the ASA SDK. Note that ASA SDK telemetry is enabled by default.
    • Previous versions of the ASA SDK for mobile platforms had a dependency on AppCenter for telemetry which needed an AppCenter.framework file being bundled with the ASA SDK CocoaPods package. For iOS platforms, this dependency is now replaced with the 1DS SDK which is linked into SDK binaries, and hence AppCenter.framework is now removed from SDK CocoaPods package. This is expected to fix an issue reported by ASA developers on iOS version 15.0 or later where ASA powered apps get into a bad state and crash at startup with a call stack in AppCenter.framework.
    • This release fixes an exception thrown by ASA SDK on specific Android device models (e.g., Samsung Galaxy Tab A7 and Motorola G50) with the error message of “InvalidOperationException: Row stride needs to be the same as width”.
    • This release fixes a build error in Unity projects for iOS and Android platform targets if the same project was including the OpenXr UPM package for the HoloLens platform. The build error message in these cases was from SpatialAnchorExtensions.cs file in com.microsoft.azure.spatial-anchors-sdk.core package with the message “error CS0234: The type or namespace name 'MixedReality' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)".
    • This release fixes a bug in the ASA Unity plug-in code that manifested as an exception in SpatialAnchorManager::ProcessLatestFrame when the scene camera was not tagged as the MainCamera in Unity.
    • This release fixes a bug in the ASA Unity plug-in code that manifested as SpatialAnchorExtensions::GetPose returning an error if the anchor was already found by the ASA SDK previously (i.e., AnchorLocatedStatus==AlreadyTracked) and if the app was attempting to relocate the same anchor again.
    • This release includes a few different bug fixes in the ASA Unity plug-in code where all bugs manifested as ASA Unity plugin occasionally returning identity pose for located anchors.
    • This release adds support for WinXR plugin version 4.6.0 which is required by the latest versions of the Unity 2020.3. If WinXR plugin 4.6.0 was used with previous ASA SDK versions, anchors were always found at Unity origin.
    • The ASA SDK Unity plugin implementation is updated to replace two obsolete ARFoundation API usages in ASA SDK Unity scrips. These obsolete APIs were AddAnchor() and ARAnchorManager.RemoveAnchor(). This issue resulted in build time warnings in the Unity editor in previous ASA SDK versions with a message “com.microsoft.azure.spatial-anchors-sdk.core@... SpatialAnchorManager.cs: warning CS0618: 'ARAnchorManager.AddAnchor(Pose)' is obsolete: 'Add an anchor using AddComponent()”. These warnings are now fixed in this release.
  • Known Issues

    • None

Samples

  • What's New

    • Added a new button to Unity sample’s CoarseReloc mode to allow deleting all anchors around the device. The sample ‘Nearby Demo’ also now deletes the anchors created in the demo at the end. These changes are helpful to avoid adding too many anchors in the same space during development and testing if the sample is run in the same space multiple times.
    • Fixed a bug in Unity sample’s CoarseReloc mode where sample code was using the pose of the wrong anchors for rendering.
    • Updated readme in samples repo to include a correct link for sending feedback to the ASA team.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.
    • Unity sample for HoloLens does not allow for surface interaction when placing cubes and hence cubes are not placed on surfaces.
    • Unity sample for Android nearby mode may occasionally show the message "Demo failed. check debugger output for more information" on the screen at the end of demo due to a known timing issue in sample code.

v2.10.2

23 Jul 20:58
Compare
Choose a tag to compare

SDK

  • What's New

    • This SDK 2.10.2 hotfix release contains a fix for a packaging issue introduced in SDK 2.10.0 release specific to iOS packages. The issue was that submitting ASA powered apps to Apple store through Xcode resulted in the following error message:

    "This bundle Payload/<AppName>/Frameworks/AzureSpatialAnchors.framework is invalid. The Info.plist file is missing the required key: CFBundleVersion.

    There are no changes to the core binaries and functionalities in this release compared to SDK 2.10.0 or 2.10.1. Please refer to SDK 2.10.0 release notes below for details of new features introduced in SDK 2.10.0.

  • Known Issues

    • Due to a known issue in the Windows XR plugin, anchors found in Unity HoloLens apps using the ASA SDK's Unity plugin package may have an identity pose for one frame after AnchorLocated event is raised, and then the correct anchor pose is set in the next frame.

Samples

  • What's New

    • No updates to samples compared to SDK 2.10.0 release.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.

    • Unity sample for HoloLens does not allow for surface interaction when placing cubes and hence cubes are not placed on surfaces.

v2.10.1

17 Jul 17:50
Compare
Choose a tag to compare

SDK

  • What's New

    • This SDK 2.10.1 hotfix release contains a fix for a packaging issue introduced in SDK 2.10.0 in iOS UPM package for Unity. The issue was that importing the com.microsoft.azure.spatial-anchors-sdk.ios UPM package version 2.10.0 in Unity resulted in the following error message in Unity Editor.

    Asset Packages/com.microsoft.azure.spatial-anchors-sdk.ios/Plugins/iOS/AzureSpatialAnchors.framework/_CodeSignature/CodeResources has no meta file, but it's in an immutable folder. The asset will be ignored.

    There are no changes to the core binaries and functionalities in this release compared to SDK 2.10.0. Please refer to SDK 2.10.0 release notes below for details of new features introduced in SDK 2.10.0.

  • Known Issues

    • Due to a known issue in the Windows XR plugin, anchors found in Unity HoloLens apps using the ASA SDK's Unity plugin package may have an identity pose for one frame after AnchorLocated event is raised, and then the correct anchor pose is set in the next frame.

Samples

  • What's New

    • No changes to samples compared to SDK 2.10.0 release.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.

    • Unity sample for HoloLens does not allow for surface interaction when placing cubes and hence cubes are not placed on surfaces.

v2.10.0

15 Jul 04:52
Compare
Choose a tag to compare

SDK

  • What's New

    • Unity plugin package included in this release of Azure Spatial Anchors SDK provides support for either Mixed Reality OpenXR plugin (com.microsoft.mixedreality.openxr) or the Windows XR plugin (com.unity.xr.windowsmr) for HoloLens. If you are using Unity and deploying to HoloLens, you can now include either of these packages in your project. Please refer to Setting up your XR configuration - Mixed Reality | Microsoft Docs and Choosing a Unity version and XR plugin - Mixed Reality | Microsoft Docs for more details about XR configuration in Unity. For the Mixed Reality OpenXR plugin, we recommend version 1.0.0 or later, and for the Windows XR plugin, we recommend version 4.5.0 or later.

    • This release of Azure Spatial Anchors SDK includes a change that improves the accuracy of spatial anchors by leveraging the state of device's native tracking system in a better way. While locating existing anchors created with older SDK versions will improve, the most improvement comes when new anchors are created and located with this new SDK version.

    • Following the recent BinTray sunsetting which was used to publish older ASA SDK Maven packages, starting with this release of Azure Spatial Anchors SDK, Maven packages for Android are published to a new feed at https://dev.azure.com/aipmr/MixedReality-Unity-Packages/_packaging?_a=feed&feed=Maven-packages. Android projects using ASA SDK need to add these lines to their "repositories" section of their project build.gradle file to acquire the packages:

       repositories {
             ...
             maven {
                 url 'https://pkgs.dev.azure.com/aipmr/MixedReality-Unity-Packages/\_packaging/Maven-packages/maven/v1'
             }
             ...
       }
    

    Please refer to build.gradle of ASA's NDK Android sample to see an example of how this new feed is included for Android projects.

    • This release includes an SDK bug fix on HoloLens, where the bug manifested as random crashes on HoloLens devices with a call stack in ASA SDK.

    • This release includes an SDK bug fix in the Unity plugin package. Due to this bug, SpatialAnchorManager in the Unity plugin was occasionally getting into a bad state where it was providing poses for newly found anchors at previously created or located anchors, and hence the bug manifested as occasional newly found anchors appearing at the previously created or located anchor locations.

  • Known Issues

    • Due to a known issue in the Windows XR plugin, anchors found in Unity HoloLens apps using the ASA SDK's Unity plugin package may have an identity pose for one frame after AnchorLocated event is raised, and then the correct anchor pose is set in the next frame.

Samples

  • What's New

    • Unity sample is upgraded to Unity 2020.3 LTS.

    • Unity sample has improved hologram visibility by using more ambient lighting for cube holograms.

  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.

    • Unity sample for HoloLens does not allow for surface interaction when placing cubes and hence cubes are not placed on surfaces.

v2.9.0

19 Mar 05:44
Compare
Choose a tag to compare

SDK

  • What's New

    • Starting with this SDK 2.9.0 release, the Unity plugin released as part of the SDK now supports Unity 2020.3 (LTS) and the Unity XR Plug-in Framework, and drops support for Unity 2019.4 (LTS) due to known issues between the XR Plug-in Framework and the deprecated WindowsMR plugin. Core functionalities and bug fixes included in SDK 2.9.0 are equivalent to SDK 2.8.1. Developers wishing to continue using Unity 2019.4 (LTS) can use ASA SDK 2.8.1 instead of ASA SDK 2.9.0.
  • Known Issues

    • None

Samples

  • What's New

    • Unity samples are updated to use Unity 2020.3 (LTS) and the Unity XR Plug-in Framework.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.

v2.8.1

17 Mar 18:12
Compare
Choose a tag to compare

SDK

  • What's New
    • Added validity check for the transform of created anchors. This check will fail when a transform is either not affine or its rotation matrix is not orthonormal. This may be caused by non-uniform scale, a uniform scale other than 1.0, or malformed values. Note that non-unity scale transforms may be considered valid on some AR platforms, but not necessarily on others, and given that ASA is a cross-platform technology it does not support non-unity scale transforms during anchor creation.

Samples

  • Bug Fixes

    • Fixed a bug in NearbyDemo scene of Unity sample app when deployed to Android devices. This bug would manifest as a failure to find nearby anchors during the neighboring app state of the Nearby Demo.
    • Fixed a bug visibility of UI layout in Xamarin app when deployed to iOS.
  • Known Issues

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in the sample code.

v2.7.2

28 Jan 07:10
Compare
Choose a tag to compare

SDK

  • What's New:

    • This SDK 2.7.2 release contains these two bug fixes specific to HoloLens platform:

      • The first bug was specific to ARM32 builds running on HoloLens 2 and was manifesting as an access violation crash in SDK during anchor creation or query.
      • The second bug was manifesting as a crash on HoloLens 1 and 2 platforms when SDK's diagnostic and logging feature was enabled.

      This SDK release does not contain any changes for iOS and Android platforms.

  • Known Issues:

    • None

Samples

  • What's New:

    • Fixed a bug in HoloLens Unity sample Basic Demo mode where clicking through the demo steps too fast could cause an exception.
  • Known Issues:

    • iOS Xamarin sample may freeze in nearby demo mode when placing an anchor due to an issue in sample code.