SDK v1.20.0



  • REST: Added map copy, align and stitch requests

  • REST: Added device model logging to improve future localization method development

  • Core: Added configurable solverType to enable localization method selection

  • Core: Added new map construction parameters:

    • locFilter, disabled by default

    • featureFilter, 0 by default

    • mapCompression, 0 by default


  • Core: Android plugin; user validation (for real-time mapping and other Enterprise features)

SDK v1.19.2



  • Updated Unity version to 2022.3.10f1

  • Updated Unity packages

  • Core: Updated plugin interface for LocalizeImage(), now returns a struct with the pose data and confidence value

  • Samples: Changed to use the newTrackedPoseDriver component in Unity, instead of the deprecatedARPoseDriver component


  • Core: Added native plugins for Magic Leap 2 and HoloLens 2

  • Developer Portal: Added the password reset functionality


  • Core: On-server localization now works when the map construction has reached the sparse state

SDK v1.19.1



  • Core: Fixed Map construction sometimes failing with a version 1.18.1 dataset

  • Samples: Changed all sample scenes to use the deprecated ARPoseDriver, until Unity fixes the TrackedPoseDriver in AR Foundation

  • Samples: Sample scenes on Android sometimes start with a black screen, with errors in adb console: "Failed to begin a new frame, ProcessSkybox will not render the skybox. Skipped rendering frame because GfxDevice is in invalid state (device lost)". Deleting the Library folder in the Unity project seems to fix this. This problem is related to Unity 2022 and AR Foundation.

SDK v1.19



  • Core: Real-time on-device mapping (requires Enterprise license)

  • Core: Optimized memory usage and speed

  • Core: "Edit" map type for edited maps

  • Samples: Added Magic Leap 2 samples (on-device localization and real-time mapping require Enterprise license)

  • Samples: Added GeoPose localizer option to Mapper settings

  • Samples: Added a new sample scene "Realtime Mapping Sample"

  • Samples: Added a new sample scene "Move AR Camera instead of AR Space"

  • Added support for the Immersal China server


  • Core: Handedness fix to GeoPose localizer

  • Core: Fixed minor memory leaks

  • Core: Fixed ARMap::FreeMap() bugs with map handles, should now behave correctly in multi-scene scenarios and in Unity Editor

  • Core: REST requests now return the correct amount of bytes

  • Samples: Fixed ContentPlacement sample crashing at startup when no content.json file was present

  • Samples: Removed Immersal logo from being a RaycastTarget

  • Samples: Fixed mapper not clearing loaded maps on logout


  • Samples: Updated Unity version to 2022.3 LTS

  • Samples: Updated ARFoundation, ARKit and ARCore packages to 5.0.6

  • Samples: Updated all sample scenes to use the new input system and XRRig

  • Removed Lumin plugin and dropped support for Magic Leap 1

  • Removed old Unity NavMeshComponents and added new AI Navigation package

  • Removed unused parameters from the plugin interface

SDK v1.18



  • Core/Cloud Service: Localization improvements, less false positives

  • Cloud Service: Improved memory usage with large maps

  • Core: Removed unnecessary TMPro reference from a script

  • Core: Fixed editor scripts not to be included in builds on Unity 2022


  • Core: Android x86_64 plugin for Magic Leap 2 (FOR ENTERPRISE LICENSE ONLY, contact for licensing requests)

  • Samples: iOS post process script to turn off bitcode


  • Core: LoadMap() in ARMap now calls the plugin asynchronously to avoid UI freezes with large maps. The function doesn't return mapHandle anymore, but it's still available through ARMap.mapHandle.

  • Samples: Updated Unity version to 2021.3.16f1 and AR Foundation to 4.2.7

  • Samples: Cleaned up and updated some Unity packages

Known Issues

  • Samples: ARMap errors in the Unity Editor, don't affect builds on device

SDK v1.17


v1.16 and earlier maps can be used with v1.17 but new v1.17 maps can not be loaded with earlier versions by default


  • Core: Apple Silicon support in the macOS plugin

  • REST API: Added featureType parameter to map constuction construct endpoint. Value 0 creates maps in the old format which is compatible with v1.16 and the new default value of 2 creates maps in the new v1.17 format

  • REST API: Added a map access token with get/set endpoints

  • Developer Portal: Toggle to visualize input poses for new v1.17 maps


  • Core: Improved tracking quality measurement

  • Core: Fixed OnPoseFound event not always firing

  • Developer Portal: Map origin in correct location in 3D Viewer

  • Other minor bug fixes


  • Cloud Service: Improved map construction process, more accurate maps

  • Cloud Service: Support for constructing really large maps with Leica BLK2GO and other rigs

  • Core: Improve visual positioning performance

  • Developer Portal: Improved 3D Viewer visuals

  • Samples: Updated Unity version to 2021.3 LTS

  • Samples: Updated AR Foundation packages to v4.2.6 to fix iOS 16 issues


  • Samples: Multiplayer sample removed because it was using the old UNet HLAPI not supported by Unity anymore

SDK v1.16.1



  • Developer Portal: Support for uploading Leica BLK2GO .b2g files for map construction (FOR ENTERPRISE LICENSE ONLY, contact for licensing requests)

  • Core & Samples: A native UWP ARM64 plugin for HoloLens 2 + HLLocalizer sample (FOR ENTERPRISE LICENSE ONLY, contact for licensing requests)

  • Mapper: Added license text


  • Several bug fixes


  • Core: Refactored ImmersalSDK.cs to have RegisterLocalizer() and UnRegisterLocalizer() functions

SDK v1.15.0



Older maps will work with the new v1.15.0 release but new maps will not work with older releases!

We will support v1.14.1 until March 1st, 2022

v1.14.1 REST API can be accessed through

v1.15.0 REST API can be accessed through

The Developer Portal will support both versions. The version can be changed through a dropdown menu at the top.


  • Cloud Service: Restoring map data to the workspace now supports additive restore keeping old data. This allows for easy combination of existing maps.

  • Samples: Added a Debug Console to the Mapper app

  • Samples: Added a warning to the Mapper app login screen if the device has no network connection


  • Core: Fixed an issue with ARMap where maps were loaded twice

  • Samples: Fixed a bug in the Mapper app when aligning maps without changing the root map


  • Cloud Service: Now uses a right-handed coordinate system

  • Core: Now uses a right-handed coordinate system

  • Core: Core scripts now convert from right-handed coordinate system to Unity's left-handed coordinate system

  • Samples: The Mapper app now only shows the 50 first maps in the Map Download List with an option to load more.

Known Issues

  • v1.15.0 support for Nreal, HWAR, Magic Leap, and HoloLens will be updated shortly. These branches have not yet been updated at release.

SDK v1.14.1



  • Graduated Magic Leap plugin in the core SDK

  • Developer Portal: WebXR viewing mode for Android Chrome (prerequisites: up-to-date Chrome, chrome://flags/#webxr-incubations 'Enabled')

  • Core: ARSpace; added OnDestroy() housekeeping


  • Samples: Job / queue system in Mapper and some other samples was broken, fixed

  • Samples: Mapper; automatic capture experimental feature was on by default, fixed


  • Cloud Service: Faster map construction

  • Core: Recompiled and minified plugins, re-added ARMv7 support for Android (useful for Mono builds)

  • Samples: Updated to Unity 2020.3 LTS

SDK v1.11.3



  • Core: Fixed a minor compatibility problem with the latest GitHub samples

SDK v1.11.2



  • Core: Updated all plugins

  • Core: Improvements to the on-server localizer in ARLocalizer and ARMap

SDK v1.11.1



  • Core: Updated localizer with improved performance and speed

  • REST API: New functions using async/await instead of Unity coroutines

  • Switched to System.Net.HttpClient everywhere, because of random problems with UnityWebRequest on iOS

  • General bug fixes

SDK v1.10



  • REST API: Proper URI identifiers

  • REST API: new endpoints for image capture and on-server localization, where the image payload can be sent as binary instead of a Base64-encoded string (smaller filesize -> faster uploads)


  • Immersal Mapper: Smaller filesize in image uploads

  • Immersal Mapper: Localization and capturing is now faster especially on older devices, such as iPhone 7 and beyond

SDK v1.9




  • Core: Localizer does not return the map id anymore. Instead, it returns a map handle like an earlier SDK version did.

  • Immersal Mapper: Updated UI

  • Samples: Restructured Unity core package and the Unity sample project. ARMap.cs, ARLocalizer.cs, and other essential scripts are now part of the core package. This should make future SDK updates to new versions easier.

  • Samples: Code cleanup

  • Samples: Reworked the pointcloud3d shader to support point size attribute on OpenGL, Vulkan, and Metal platforms.

  • Samples: Mapper app sample updated to the latest version.

SDK v1.8




  • Samples: `NativeBindings` errors in Unity Editor.


  • Huawei AR Engine support moved to its

  • Samples: Api Compatibility Level was errorneously set to .NET 4.x, switched back to .NET Standard 2.0

  • Samples: Mapper now stores queued images into the persistent data directory to avoid out-of-memory crashes

  • Samples: Updated to Unity 2019.4.9f1 LTS and AR Foundation 4.0.8

SDK v1.7



  • Core: Improved localization robustness.

  • Core: REST API clean-up; error, start, progress, and complete callbacks.

  • Core: REST API; Map construct detail level.

  • Samples: Native double-precision GPS coordinates for iOS and Android.

  • Samples: Image upload progress bar to Mapper UI.

  • Samples: Map construction detail level in Mapper.

  • Samples: Visual GPS compass bearing in Mapper.


  • Samples: ARMap.cs crashing in Unity Editor when editing.

  • Samples: Bug fixes to Huawei AR sample scripts.


  • Core: Smaller plug-in size.

  • Core: Changed map hashes from MD5 to SHA256.

  • Samples: Updated to Unity 2019.4 LTS and AR Foundation 4.

Known issues:

  • Assets\ImmersalSDK\Core\Plugins\NativeBindings.cs(73,24): error CS0161: 'NativeBindings.GetLatitude()': not all code paths return a value If Unity's platform is 'PC, Mac & Linux Standalone', there's a regression bug in the Core SDK. Switch platform to iOS or Android to resolve the issue.

SDK v1.6



  • Server / Developer Portal: Support for textured meshes (both grayscale and RGB).

  • Samples: ARLocalizer.cs, ARSpace.cs & ARMap.cs: support for uniform scaling of maps.

  • Samples: ARLocalizer.cs now has MapChanged and PoseFound events.


  • Plugin: image capturing is now a lot faster.

SDK 1.5


SDK v1.4 was released to closed testing earlier. After a round of updates and new features, we decided to fast-track v1.5 out for public release.

New v1.5 (technically v1.4) maps are not supported by older SDK versions.


  • Server/Developer Portal: Support for private and public maps.

  • Server/Developer Portal: Sending/copying maps between accounts.

  • Server/Developer Portal: Search for public maps and filter by GPS coordinates or user accounts.

  • Server/Developer Portal: SHA256 hashes for new maps.

  • Server/Developer Portal: Reset the private developer token.

  • Samples: ARLocalizer.cs has a new toggle to reset filtering when the last localized map id changes.

  • Samples: Graph-based navigation sample.


  • Immersal Mapper: Android now properly requests for location (GPS) permissions.


  • Server/Plug-in: Generated maps are now up to 80% smaller.

  • Server/Plug-in: Map file format is not compatible with v1.3 anymore. v1.5.0 plugin can still load maps done with earlier SDK versions. Server/Plug-in: Both the localization accuracy and speed have been improved. Plug-in: The native plugins are now 75% smaller.

  • Developer Portal: Updated version of the Developer Portal to support new features.

  • Samples: ARlocalizer.cs lastLocalizedMapId variable made public.

SDK 1.3


New v1.3 maps are not supported by older SDK versions.


  • Developer Portal: v1.3 breaks map file format forward compatibility. Old maps are stored in a separate legacy v1.2 Developer Portal. Maps are not carried over to the new version.

  • Developer Portal: A new sparse state in map construction. Maps are generated faster as you can now download the .bytes file and sparse .ply point cloud before the dense mesh is computed.

  • Server: On-server localizer now also accepts RGB24 .png images in addition to 8-bit grayscale ones for easier headset integration.

  • Plugin: Visual GPS support. If a map contains GPS data, the localizer will return WGS84 lat/long/alt coordinates with a successful localization.

  • Samples: Mapping App now has a GPS toggle. When on, captured images contain GPS coordinate data which is used in map construction. Also, maps in the map list are filtered with a 200-meter radius from the current location.


  • ARLocalizer.cs Burst mode now runs when the app enters the foreground.

  • ARLocalizer.cs and ARHelper.cs Fixed rotation for different screen orientations so portrait/landscape/auto now work.

  • Plugin: Localizer now returns -1 mapID if no maps are loaded.


  • Immersal AR Cloud SDK name to Immersal SDK everywhere.

  • Developer Portal: Dense meshes are now more detailed.

  • Plugin: Localizer now returns the actual mapID from the Developer Portal instead of a mapHandle unique to the session.

  • Plugin: Map file format changed. Old .bytes files continue to work in v1.3, but new maps will not work in older versions.

  • Samples: Updated project to Unity 2019.2.20f1.

  • Samples: Added dependancy to AR Foundation 3.1 preview, because some scenes have AR Occlusion Manager attached to the AR Camera. Older versions of AR Foundation continue to work.

  • Samples: Updated NavigationSample scripts.

SDK 1.2



  • Developer Portal: Map stitching. You can select multiple maps and combine them into one new map (assuming the maps have overlapping features).

  • Samples: Mapping App can now restore any old map's source data to the workspace from the map list.

  • Samples: Mapping app can also delete maps from the map list directly.

  • SDK: Mapping performance improvements.

  • SDK: REST API updated.


  • Samples: The "AR Cloud space" rotation and position can now be gotten from ARSpace.cs instead of ARLocalizer.cs, which was buggy anyway and returned only the first map's pose, thus giving incorrect results when using multimaps.

  • Samples: Navigation and multiplayer samples fixed to work with multimaps.

  • Samples: UI fixes all over.


  • Samples: Updated project to Unity 2019.2.8f1 and AR Foundation 3.0.0 preview.3, should continue to work just fine with older versions.

  • Developer Portal: Updated EULA.

SDK 1.1



  • A simple Multiplayer Sample scene using Unity Networking (Note: You need to enable Multiplayer in Unity Services).

  • Variable lighting adaptation.

  • Android 64-bit support.

  • Map Download Sample (previously SampleScene) and MapListController.cs are back by popular demand.

  • On-server localization.

  • Gravity-based map alignment when constructing a new map.


  • Mapping and localization now work on iPad Mini (probably fixes problems with various Android devices as well).

  • Point cloud renderer and runtime map loading fixes.

  • On-device localization was sometimes giving false results.


  • Supported Unity version is now 2019.2.3f1+, should work on 2018.4 LTS still with correct AR Foundation packages.

  • Android plugin is now an .aar file with both 32-bit and 64-bit binaries.

SDK 1.01



  • Samples: Mapping App now notifies the user if sequential captured images can be connected by their matching feature points.


  • Samples: C# API updated for AR Foundation 1.5 / 2.2.

  • Samples: Point cloud preview bugs fixed.

  • Samples: Now distributed in a separate GitHub repository.

  • SDK: Requires Unity 2018.4 LTS.

  • SDK: Now distributed as a .unitypackage (available at the developer portal).

SDK 0.19



  • SDK: Improved multimap support in Unity Editor.

  • SDK: ARLocalizer.cs finds the first pose much faster.


  • Samples: Improved MappingApp with separate Workspace and Visualize modes.

  • Samples: Changes to sample scenes to support multimap feature.

  • SDK: ARSpace.cs functionality moved to ARMap.cs to clarify multimap workflow.

SDK 0.18



  • Samples: Downsample option in ARLocalizer. Uses less memory and is faster.

  • Samples: Multimap loading support in MappingApp.

  • Samples: RGB Image Capture Toggle in MappingApp.

  • Developer Portal: Dense point cloud download.

  • Developer Portal: Delete map function.

  • SDK: Initial multimap support.


  • SDK: Fixed camera intrinsics calculation (fixes screen space Y offset bug on iOS devices).

  • SDK: ARCloud.cs script removed, ARSpace.cs has the same functionality.

Known issues

  • Samples: Removed the drop-down menu for dynamic map loading. It needs to be completely reworked to support multimaps.

SDK 0.17



  • Samples: Persistent Content Placement Sample Scene.

  • Samples: Pose Filtering in SampleScene.

  • Developer Portal: Dense point cloud download.

  • SDK: RGB Camera Capture option.


  • Samples: MappingApp UI and UX improvements.

  • SDK: Updated to OpenCV 4.

  • SDK: Improved network bandwidth usage during mapping.

SDK 0.16



  • Samples: Indoor Navigation Sample Scene.

  • Samples: Tracking Quality Indicator PoseIndicator in SampleScene.

  • Developer Portal: Sparse point cloud download.

  • SDK: Feature Anchor sets map orientation.


  • Samples: Option to switch between different maps in addition to the embedded one.

  • Samples: MappingApp UI and UX improvements.

  • Samples: MappingApp Capture Delay decreased from 0.5 seconds to 0.25 seconds.

  • Unity Package: Project cleanup.


  • Samples: Fixed crash when no debug text was assigned to ARLocalizer.

  • SDK: Fixed a bug with setting the camera resolution. Now defaults to best possible.

SDK 0.15


Initial release

Last updated