SDK components: Modules and packages

In this chapter we give a brief overview of the modules and packages that comprise the Auki SDK.

The core ConjureKit package

The ConjureKit (^com.aukilabs.unity.conjurekit^) package is the core package that handles the connection to the posemesh, and acts as an entry hub for most of the other modules. All ConjureKit SDK modules depend on this package. It offers a range of multiplayer features, from basic custom messaging for simple scenarios to a more advanced Entity Component System (ECS). The ECS is specifically designed for complex multiplayer environments, enabling the integration and management of diverse entities and components, as well as intricate system logic.

Modules

The Auki SDK comes with optional packages known as modules. A module always depends on the core package and similarly needs to be instantiated and initialized.

Manna

The Manna module (^com.aukilabs.unity.manna^) enables instant calibration with centimeter precision positioning into domains or ad hoc shared AR sessions. It lets users scan a QR code of a known size and determine the device's relative position from that QR code at that moment. It then adjusts the Unity coordinate space to match the coordinate space of the QR code so that (x, y, z) coordinates in the Unity coordinate system will represent the same location in AR (e.g., corner of a table) for all participants. Additionally, Manna can connect to the multiplayer session associated with a QR code, so that participants can not only view digital assets together but also interact with them.

Vikja

The Vikja module (^com.aukilabs.unity.vikja^) is useful for implementing simple multiplayer features. It uses a shared key-value store used for attaching arbitrary properties to Entities. Each change to the store is broadcast to all participants, and the current state of the store is sent to joining participants. For more complex multiplayer features that require more than just broadcasting messages, the Entity Component System (ECS) is more suitable.

Dagaz

The Dagaz module (^com.aukilabs.unity.dagaz^) enables devices to work with Volumetric Features.

A Volumetric Feature (VF) represents a volume that is occupied in the real world. Dagaz will detect occupied spaces during a ConjureKit session and try to piece together large clusters of matter. Dagaz will track the new VF and update its shape and pose as it detects more information from the real world. You can then use this information to make your AR experiences more aware of their surroundings.

Odal

The Odal module (^com.aukilabs.unity.odal^) is for loading and instantiating ^.glb^ files with animations at runtime. It provides an easy-to-use interface for creating 3D assets in AR that are visible to all participants in the multiplayer session.

Grund

The Grund module (^com.aukilabs.unity.grund^) helps with an important aspect of most AR experiences: virtual assets should be properly vertically aligned with surfaces in the physical environment. For example, an AR animal sitting on the floor should neither appear to sink into the floor nor float above the floor. Grund ensures that all the participants of the multiplayer session see the horizontal planes at the same height. So if someone creates an AR pet sitting on the table, it looks correct for all other participants.

Standalone Packages

The Auki SDK includes also additional packages like utility libraries or simply additional features that do not require ConjureKit core. These can be used on their own, but are also used by modules to implement some features.

ARFoundation integration

The ARFoundation integration (^com.aukilabs.unity.integration.arfoundation^) package provides methods for easy integration with Unity's ARFoundation framework.

Ark

The Ark (^com.aukilabs.unity.ark^) package is a library of computer vision and implementation algorithms for QR code detection and pose estimation. It provides developers with low-level access to QR code data, enabling the creation of more nuanced and customized use cases for the scanner. Ark uses the Ceres package to help Manna achieve sophisticated QR code pose estimation using single or sequential camera images.

Ceres

The Ceres (^com.aukilabs.unity.ceres^) package is a limited C# wrapper for Ceres Solver, a library natively implemented in C++ for modeling and solving complicated optimization problems. This package includes the full native library compiled for mobile platforms. Ark uses Ceres for pose estimation, but developers are free to use it for optimizing other functions as well.

Ur

The Ur (^com.aukilabs.unity.ur^) package provides real-time tracking of 3D hand poses from a monocular RGB camera feed (no LiDAR is required), the kind commonly found on mobile phones. Tracking and reconstructing the 3D pose and geometry of multiple hands in interaction is highly relevant for human-computer interaction applications, including AR/VR. Ur doesn't depend on the posemesh and can be used alone if you are only interested in a hand tracker.

This is the beginning of this lesson

Need a refresher on the essentials?

Check out more lessons, DIY kits and essentials reading material at the developer learning centre homepage.

Want to build on the posemesh and need a helping hand?

Apply for a grant of AUKI tokens to get your project off the ground, and work directly with the Auki Labs team to get your creation to market. Successful applicants may be granted up to 100k USD worth of AUKI tokens, and development and marketing support from the Auki Labs team.