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.
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.