Client SDK
The Odyssey client SDK connects your application to the Odyssey hub, which runs alongside Odyssey Desktop and talks to the devices. Through it you receive device connections, tracking poses and events, and send commands back.
The SDK is written in Rust. Other languages use bindings generated from it:
| Language | Binding | Source |
|---|---|---|
| Rust | native crate | crates/odyssey-hub-client |
| C, C++ | C ABI with a C++ helper header | sdk/odyssey-hub-client-ffi |
| C#, Python | UniFFI | sdk/odyssey-hub-client-uniffi |
Before writing tracking code, read Coordinate systems: it explains which way each axis points in the poses the SDK returns and how to convert them for engines such as Unity.
Installing
Section titled “Installing”Install the OdysseyArm.HubClient
package from NuGet:
dotnet add package OdysseyArm.HubClientPython
Section titled “Python”Install odysseyhubclient from PyPI:
pip install odysseyhubclientThe module is imported as ohc_uniffi. See the
Python sample.
C and C++
Section titled “C and C++”With vcpkg:
- Add the registry
https://github.com/odysseyarm/vcpkg-registryto your project’svcpkg-configuration.json. - Install the
odyssey-hub-clientport.
Without vcpkg, download odyssey-hub-client.zip from the latest
odyssey-hub-client-ffi release.
Either way, the package provides a CMake config, so you can use:
find_package(odyssey_hub_client CONFIG REQUIRED)See the C sample and the C++ sample.
The crate is not on crates.io yet. Depend on it from git:
[dependencies]odyssey-hub-client = { git = "https://github.com/odysseyarm/odyssey" }
