What is ConjureKit?
ConjureKit SDK for Unity is a set of packages that allow developers to build applications for the posemesh, with low latency multiplayer and centimeter precision positioning in AR. The posemesh is the universal spatial computing API that makes these features possible and accessible to everyone in a fair and privacy-preserving manner. You can read more about the posemesh at https://www.posemesh.org/.
Additionally ConjureKit includes packages like hand tracker and volumetric features for creating richer applications that understand and interact with the physical world.
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 other ConjureKit SDK modules except for Ur 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, components, and intricate system logic.
ConjureKit SDK comes with optional packages known as modules.
While Auki Labs develops and publishes in-house developed modules (listed below), the SDK exposes the interfaces and primitives required for third-party developers to develop their own modules.
The Manna module enables instant calibration for shared AR sessions and centimeter precision positioning. This module lets you scan a QR code of a known size and determine the phone's relative position from that QR code at that moment. It then adjusts the Unity coordinate space to match with 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 same multiplayer session associated with the QR code, so the participants can not only view the assets together but also interact with them.
The 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.
The Vikja Module implements a shared key-value store used for attaching arbitrary properties to Entities. Each change to the store is broadcast to all participants. The current state of the store is sent to joining participants. This can be useful if you want to implement simple multiplayer features, like a chat, and want to avoid the complexity that comes with ECS.
The Dagaz module 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 space 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 interactive and aware of their surroundings.
The Odal module allows the loading and instantiating of
.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.
The Grund module 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.
This package provides methods for easy integration with Unity's ARFoundation framework.