6D.ai SDK Release Notes - version 0.20.0

Release Notes
6D.ai beta SDK v0.20.0
Feb 5, 2019

Introduction

Happy Tuesday!

More and more developers request the ability to start and stop the 6D.ai beta SDK within a larger app. It is now possible with the introduction of two API methods in this release: SixDegreesSDK_GetState()​ and ​SixDegreesSDK_Stop()​.

We also included a number of small improvements, described below.

Be sure to review Sample Apps and Documentation options on the 6D Developer Portal to learn more about how to install and use the sample code and 6D SDK.

Changes

New Features

  • SixDegreesSDK_GetState()​ returns the current state of the SDK: SixDegreesStateStopped​, ​SixDegreesStateInitializing​ and SixDegreesStateRunning​.
  • SixDegreesSDK_IsInitialized()​ is now deprecated and can be replaced with SixDegreesSDK_GetState() == SixDegreesStateRunning​.
  • SixDegreesSDK_Stop() ​interrupts the ARKit and 6D.ai sessions, cancels pending transactions with the AR Cloud, and releases the associated resources.

Bug Fixes

  • Fixed crashes occurring when calling ​SixDegreesSDK_Cancel()​ during certain transactions with the AR Cloud.

Improvements

  • Limited the visibility of method symbols in the static library in order to make it easier to link the 6D.ai framework concurrently with libraries like zlib.
  • Optimizations to the Metal pipeline.
  • Renamed the SceneKit sample app in line with the Unity sample app, added button to toggle the mesh visibility.
  • Cleanup of some Unity sample app warnings that appeared in 2018.3

Known Issues

The following issues require work under the hood and will be addressed in future releases:
  • Meshing:​ difficult environments (white walls, metallic, reflective or transparent surfaces) sometimes produce irregularities like mesh shards flying in mid-air.
  • Relocalization:​ when loading large multi-room locations from the AR Cloud, the relocalization phase can incur high resource consumption and framerate slowdown or freezes.
  • Memory: ​each ​SixDegreesSDK_Initialize()​/​SixDegreesSDK_Stop()​ cycle leaks between 2 and 4 megabytes.

Hardware Requirements

As of SDK version 0.20.0, the following iOS devices are supported:
Year
 
Supported iPhones
Identify your iPhone model
Supported iPads
Identify your iPad model
2018 iPhone XS
iPhone XS Max
iPhone XR
iPad Pro 12.9" (3rd Gen)
iPad Pro 11"
iPad 9.7" (6th Gen)
2017 iPhone X
iPhone 8
iPhone 8 Plus
iPad Pro 12.9" (2nd Gen)
iPad Pro 10.5"
2016 iPhone 7
iPhone 7 Plus
iPad Pro 9.7"
2015 iPad Pro 12.9" (1st Gen)
Not supported * (no plans to add support):
  • iPhone 6S (2015) and lower
  • iPad 5th Gen (2017) and lower
  • iPad Air family
  • iPad Mini family
* The SDK ​will not initialize​​ on those devices, even if they support ARKit. The API method SixDegreesSDK_IsDeviceSupported() can be used at runtime to detect if the device is supported by the SDK.

System Requirements to Build Sample Apps

  • iPhone XS Max, iPhone XS, iPhone XR, iPhone X, iPhone 8 Plus, iPhone 8, iPhone 7 Plus, iPhone 7
  • iPad Pro (All generations and sizes), iPad 2018 (6th Gen)
  • iOS 12 or iOS 11.4+
  • Xcode 10+
  • Unity3D 2018.2+

Please review the 6D.ai SDK Function Definitions and the Meshing API Guide for additional info on SDK functions and how to work with the mesh.