Announcing Structure SDK 0.11.2

Structure SDK (For iOS) 0.11.2

Today (7th of January, 2020) we have released Structure SDK 0.11.2.

This is a minor update with some quick but important fixes. It still includes the major updates seen in SDK 0.11 but additionally fixes a few last-minute bugs we found. For a full post regarding the updates in SDK 0.11, and 0.11.1 please check out the below post.

Structure SDK 0.11.2 Release Notes

  • Fixed some bugs where Structure Sensor Mark II would either fail to stream after restarting streams several times, or the frame rate would slow down every time streaming would restart.

Structure SDK 0.11.1 Release Notes

  • Fixed a bug in our SLAM code that affects room level scanning when using our wide-vision lens attachment

  • Fixed a bug in the docs for launchStructureAppOrGoToAppStore. We specified in the docs that you should add structure to LSApplicationQueriesSchemes in the Info.plist, however this should have been structure-app.

Structure SDK (for iOS) 0.11

This is a major update to Structure SDK and it comes with a host of stability updates and improvements for Structure Sensor (Mark II).

This SDK is being released in parallel with a new Structure App and Mark II firmware update. For best results please use the latest SDK along with the latest firmware. Users can update the firmware by downloading the Structure app and running the included firmware updater. The firmware update is not available directly through the Structure SDK (for iOS) 0.11.

For any developers who may have run into issues with App Store rejection due to obfuscated code, please see our App Store Obfuscation Rejection Update forum post.

Structure SDK 0.11 Release Notes:

  • Structure SDK headers have been significantly refactored and now include a module map. These changes improve clarity, and will make Swift porting simpler. Now, instead of including separate classes, you only need to include the umbrella header ‘Structure.h’.

  • Driver updates to improve Structure Sensor (Mark II) connection and stability.

  • STSensorController has been deprecated. Verbose logs warning that STSensorController is no longer supported have been added. All apps built on STSensorController should migrate to STCaptureSession (details here: Announcing Structure SDK (iOS) 0.9: STCaptureSession). All samples built on STSensorController will still work for the time being, but will not be under continued development.

  • We have added a sample notification in the Scanner Sample prompting users to update to the latest firmware. The following code will prompt users to download the Structure App from the app store to update to the latest firmware version:

bool needToUpgradeFirmware = userInstructions & STCaptureSessionUserInstructionFirmwareUpdateRequired;
// OR
bool needToUpgradeFirmware = [[STSensorController sharedController] isFirmwareUpdateNeeded];

Issues Addressed:

  • Fixed a bug where apps would crash when backgrounded by the OS. This also resolves a crash that would happen when the camera permissions dialog box appears for the first time.
  • Fixed a bug where Structure Sensor Mark II would not reconnect after an app was backgrounded
  • Fixed a bug where unplugging and replugging Structure Sensor (Mark II) would crash the application

Notes:

  • “Improved Tracker” is not currently optimized for Structure Sensor Mark II. Optimization for the “Improved Tracker” will be added in the near future. In Structure SDK (for iOS) 0.11 “Legacy Tracker” has been set to the default tracking mode in the Scanner sample application. This option can be toggled by by setting kSTTrackerLegacyKey to YES in the STTracker options, or using the gear icon in the upper left corner of the Scanner Sample app.

Known Issues:

  • On iOS 13 sensors may not be detected on app initialization. The sensor must be unplugged and replugged to restore connection. This behavior does not exhibit itself on iOS 12.

  • kSTMapperVolumeCutBelowSupportPlaneKey clips the ground plane even when set to NO when using the legacy mapper.

  • We’ve seen intermittent framerate reduction when repeatedly stopping and restarting streaming on Mark II. Triggers include changing depth modes or returning to scan mode after saving a mesh. If you encounter reduced framerate, please quit and restart your app.

2 Likes

Can confirm that the original app crashes happening from backgrounding and the like seems to be fixed. Mark II is working way more reliably now, thanks for the update!

Heads up though that the guide for migrating away from STSensorController does not have a link in the post above as it seems it was supposed to from the following text “(details here:FORUM LINK)”. Also, the deprecation warning in Xcode links to the following, https://structure.io/r/capture-session, which is a dead link right now.

1 Like

Thanks for pointing those items out Christopher. We’ve updated the forum post, and will update the redirect link asap.

1 Like

@JacobErvin I’m experiencing an issue where every few times I initialize the sensor, the resulting view goes white and it doesn’t allow me to do anything until I unplug and replug back in the sensor in the app I’m working on. I was able to reproduce this a few times in the included Scanner demo project with the new SDK as well where the scan view would just freeze on initialization until I unplugged the sensor and plugged it back in. I just wanted to confirm that this is what was meant by the known issue mentioned in the release notes and repeated below. I am also only seeing this with the Mark II. The Mark I works without any issues on initialization and it wasn’t mentioned if this known issues is device specific or not.

On iOS 13 sensors may not be detected on app initialization. The sensor must be unplugged and replugged to restore connection. This behavior does not exhibit itself on iOS 12.

Here is an image from the App I am working on getting Mark II support for. It uses the Scanner demo code to scan and then render meshes in Swift.

Thanks!

1 Like

@JacobErvin please note that because of the known issue where a Mark II sensor may not be detected on app initialization that the test for MFi compliance pertaining to fully depleted battery may fail until the sensor is re-plugged.