Skip to main content
Version: Release 4.0.0

Release Notes v4.0 Beta

Features/Fixes

  • Scaniverse Integration
    • Developers can use Scaniverse (Business account) to capture sites, generate VPS maps, meshes, and splats, then use those VPS maps directly from NSDK 4.0.
  • VPS2
    • NSDK 4.0 now exposes VPS2 as an improved localization service for Unity, Swift, and Kotlin. VPS2 unifies VPS and WPS under a single session and API surface, providing both coarse and precise localization. Existing ARDK 3.x projects continue to function without interruption; NSDK 4.0 is the forward path for new work, with VPS2 as the default VPS integration.
    • Cloud-Based Geopositioning (Experimental): VPS2 supports an optional cloud-based coarse geopositioning mode that sends camera imagery to the cloud to compute an improved geoposition and heading. This can be enabled via the Universal Localization Enabled configuration option.
  • Auth
    • NSDK 4.0 introduces a token-based authentication model for Niantic Spatial, moving beyond the legacy API-key‑only approach used by Lightship ARDK.
  • Unity
    • A workaround is introduced to correct mean sea level altitude values in Unity iOS builds. The altitude values that Unity provides on iOS are relative to mean sea level, but NSDK requires WGS84 altitude. NSDK automatically converts these altitude values by using a downloaded model. The first time that an NSDK feature that requires altitude starts on Unity iOS, a download is performed. The device must be connected to the internet during the first run, and there will be a brief delay before the feature starts running.

Breaking Changes

  • This release includes significant namespace updates that will break compatibility with version 3.17. Please review the migration guide for detailed instructions on updating your project.
  • The VPS Coverage API is only compatible with VPS locations created or activated through the Geospatial Browser (GSB). Locations created on Scaniverse are not supported. A unified Sites API will replace the VPS Coverage API in a future release.

Notes

  • We have removed support for Magic Leap 2
  • Documentation for previously released versions is now archived and available from our Github repository.

Known Issues

  • Device Mapping doesn’t yet work with VPS2 and requires legacy VPS.
  • Device Mapping Maps created from 3.x are not currently compatible in 4.0
  • There are known performance issues when running algorithms like meshing for a long time in Kotlin.
  • [LocationMeshManager] Requesting a size limit when downloading a VPS mesh currently has no effect.
  • [LocationMeshManager] Mesh decoding on iOS devices may fail with an error “Failed to download all meshes”. This issue can be resolved by removing and reimporting the Draco for Unity 5.1.4 package in the Unity Package Manager, then rebuilding your application.
  • In the VPS Localization example, if the device loses tracking after successfully localizing, the device will not localize with VPS in an attempt to recover. A workaround for this issue is to enable continuous localization from ARLocationManager
  • On some older Android phones, the frame-rate will drop for several seconds at the beginning of a VPS session when VPS diagnostics are enabled. This happens while the machine learning models used by VPS diagnostics are being loaded. Once the ML models finish loading, the frame rate recovers (usually about 5-10 seconds). This slow-down does not show up on newer phones (most phones released since 2020 should be OK). The slowdown can be prevented by disabling VPS Diagnostics on the ARLocationManager (this will prevent diagnostics feedback events).
  • Importing the ARDK UPM in a project started from Universal 3D template might cause a few build errors reported in the console. Restarting the editor should fix this.
  • [Quest 3 SDK] Is currently in beta. There are known infrequent instances of instability. Please restart the app when those occur.