【Niantic Lightship ARDK 3.0 #2】What you need to know when updating from ARDK 2.X ?

From the standpoint of a developer / Creator

Designium
Designium StoryHub
7 min readDec 7, 2023

--

CONTENTS

Introduction

Hi! I am Sakuma Katsuya (@ppengotsu) from Designium.

This is the second article in the series (total of 3) highlighting new features and changes in the latest version of Niantic Lightship ARDK. This article is a compilation of information I gathered from our engineers on what you need to know when updating from ARDK 2.X.

The Best Choice

If possible, it is better to create a new Unity project and import ARDK 3.0. If you have created a project using ARDK 2.X, the migration guide on the official website will be helpful. Please check the official website “Migration Guide-ARDK 2.X to 3.0” below.

However, due to some unknown bug or your own class, there is a possibility that you will get stuck in updating. In order to prevent errors not listed in the official website migration guide, we recommend creating a new Unity project and importing ARDK 3.0.

Specifically, the advice I received was that the following steps would be a good approach. This will almost eliminate unexplained errors caused by Unity’s package cache and DLL cache.

  1. Create a new Unity project compatible with ARDK 3.0.
  2. Complete the settings of ARDK 3.0 in the new project.
  3. Copy source code and materials other than ARDK from the existing project to the new project.
  4. Respond to class changes in sequence.

For iPhone 11 and Earlier Models

For iPhone 11 and earlier, you can also choose to turn off Environment Occlusion. Regarding the Environment Occlusion effect on iPhone 11 and earlier models, the occlusion accuracy of ARDK 3.0 on iPhone 11 and earlier models may not be as accurate as on newer models. If the accuracy required by your application is not achieved, consider turning it off.

The setting to change is to set the AR Occlusion Manager’s Environment Depth Mode to disabled as shown below.

GUI Settings

🔼 Back to the Top

Some Features were Removed

No Scanning Framework

Currently, ARDK 3.0 does not seem to have a feature that allows users to dynamically create 3D models by photographing objects such as statues while the application is running.

I think it would be difficult to implement this feature, so if you need this feature you might want to use ARDK 2.X.

No Mock Environments

In ARDK 2.X, it was possible to mock AR environments in the Unity Editor for development and testing without special installation, but this feature has been deprecated.

The alternative to this feature is the “Recording and Playback” feature that has been available since ARDK 2.X. You can check the action in the Unity Editor while playing a pre-recorded video of a specific location captured by your device. This feature can also be used when adjusting mesh generation parameters in the Unity Editor.

Unity’s Netcode

Communication related classes must correspond to Netcode. It was implemented using ARDK’s networking API, but now it has been changed to using Unity’s Netcode.

Due to changes in namespaces, class names, etc. I think the implementation of the communication part will require numerous changes.

Check LiDAR On or Off before Building

For the mesh generation feature, it is necessary to select either LiDAR on or off before building.

If the “Prefer LiDAR if Available” is enabled in Unity’s project settings, devices equipped with LiDAR will use LiDAR. If turned off, LiDAR will not be used all the time.

If you want to generate meshes larger than tens of meters with the meshing feature updated in ARDK 3.0, you will need to turn off LiDAR. There seems to be no automatic switching between using LiDAR to generate meshes for nearby objects and image processing to roughly generate meshes for distant objects.

The setting to turn LiDAR on or off is in the Unity project settings. Therefore, changes cannot be made while the app is running. For apps that want to use large areas in AR, it seems that it is impossible to dynamically control settings of each scene, such as turning on LiDAR only for certain scenes. You need to configure whether the entire application uses LiDAR.

Turn LiDAR on/off in project settings

🔼 Back to the Top

Changes in Shared AR

Have changes to shared AR spaces led to changes in indoor event planning?

1.Differences in user experience after app distribution

Sharing an AR space using ARDK 2.X requires using the keyboard or QR code to enter the ID to identify the space to be shared.

With the ARDK 3.0 shared AR feature, you can now share the AR space simply by scanning the same VPS location or a marker. For those who experience it, it seems to be better because input is no longer required.

However, there is a drawback.

There are no public VPS near our home. In remote areas, it can also be difficult to find one. In addition to sharing image markers such as comic covers, magazine covers, and product logos, it has become difficult to provide multiplayer apps that allow people to share AR spaces indoors.

2.Differences during development

ARDK 2.X shares AR space by participants entering the same ID at the same location. Developers don’t need to prepare anything in advance. As long as you have AR and an internet connection, you can try the sharing feature instantly from anywhere. You can try it right away in your office conference room.

ARDK 3.0 shares AR spaces by localizing specific locations. Using VPS means you need to scan and locate your target area in advance. To make a new location eligible for localization, you must scan and wait a few hours for processing. In locations where there is no publicly available localized target (VPS), such as an office, it may take some time before space sharing can be implemented.

As a method that does not use VPS, you can share AR spaces through image markers. In this case, you need to prepare the markers before sharing the AR spaces.

Please note that either method requires preparation in advance.

XR Plug-in Management Settings

XR Plug-in Management settings are changed automatically. The “Niantic Lightship SDK + Apple ARKit” in the XR plug-in in the Unity project settings may be automatically turned off. If you get many ARKit errors when building, please check whether this setting is turned on as shown below.

🔼 Back to the Top

ARDK 2.X Support Deadline

It seems I don’t have much time to update ARDK 3.0 gradually. The official website has announced that official support for ARDK 2.X will end on April 1, 2024. There is less than half a year left. Time may be running out if we include the time for the test.

Advantages of ARDK 3.0

So far we’ve talked about some of the hurdles when migrating, and I’d like to end with some praise from our members for ARDK 3.0.

  • Can be used with AR Foundation extension libraries like the Google Geospatial API
  • The range of mesh generation has been expanded
  • Officially supports Unity 2022

It’s great to be able to combine the features of each library. Using the Geospatial API, you can set up a 3D model with latitude and longitude at a specific location. Possible applications include “navigating to a destination using the Geospatial API, and once arriving at the destination, providing an AR experience based on detailed local information using the ARDK 3.0 meshing feature.’’

For applications that have been running for a long time, updating to Unity 2022 is indispensable in order to be compatible with future iOS updates. In addition, Unity 2022 has also improved processing speed in all aspects. Therefore, improvements in development speed and application execution speed are worth looking forward to. This advantage also works for applications that are only used for a short period of time.

From the mesh generation example below, you can see that the mesh is generated far away on the street (more than 20 meters away).

Example of Mesh Generation
Settings when Mesh Generating

Conclusion

What’s most surprising is how the AR space is shared has changed. It has become almost mandatory to specify locations where localization can be done, so you need to think about how to connect the locations you want to localize with your plans.

ARDK 3.0 has only been officially released for a short time, so this is not an article that provides perfect advice. I hope it will be helpful to you.

In the last article, we will actually build an example and explain it. Please look forward to it☺️

EDITORIAL NOTE

I am Mary Chin (Chi-Ping Chin), the writer and designer of the PR team at Designium. Updating ARDK 2.X to 3.0 may not be a smooth process. When encountering problems, mutual assistance and cooperation through asking and sharing may be a good way for us to complete the ARDK migration. Let’s complete this mission together! 🔥 And if you have any ideas for cooperation, please feel free to contact us. 😉

CONTACT FORM

--

--

Designium
Designium StoryHub

Award-winning XR Studio specializes in developing VPS experiences. 日本東京科技x設計公司。 基於「讓人們感到開心」的理念,開發結合新科技的數位內容體驗。包含「結合地方文化」、「提供技術服務」、「協助有趣的創作」等。 如需合作相談,請隨時與我們聯繫。