Installation
Your app talks to Odyssey Desktop, so first install Odyssey Desktop on the computer your app runs on. Then add the SDK for your language.
Install the OdysseyArm.HubClient
package from NuGet:
dotnet add package OdysseyArm.HubClientIt targets .NET Standard 2.0 and 2.1 and .NET 8, so it also works in Unity and in the .NET version of Godot.
Install odysseyhubclient from
PyPI:
pip install odysseyhubclientThe module is imported as ohc_uniffi.
With vcpkg: add https://github.com/odysseyarm/vcpkg-registry to your
project’s vcpkg-configuration.json as a registry for the odyssey-hub-client
port, and add odyssey-hub-client to your vcpkg.json. Without vcpkg:
download odyssey-hub-client.zip from the latest
odyssey-hub-client-ffi release.
Either way the package provides a CMake config and an ohc target:
find_package(odyssey_hub_client CONFIG REQUIRED)target_link_libraries(your_app PRIVATE ohc)Include ohc.h.
With vcpkg: add https://github.com/odysseyarm/vcpkg-registry to your
project’s vcpkg-configuration.json as a registry for the odyssey-hub-client
port, and add odyssey-hub-client to your vcpkg.json. Without vcpkg:
download odyssey-hub-client.zip from the latest
odyssey-hub-client-ffi release.
Either way the package provides a CMake config and an ohc target:
find_package(odyssey_hub_client CONFIG REQUIRED)target_link_libraries(your_app PRIVATE ohc)Include ohc.hpp, and ohc_extras.hpp for the TrackingHistory
wrapper.
The crates are not on crates.io yet. Depend on them from git:
[dependencies]odyssey-hub-client = { git = "https://github.com/odysseyarm/odyssey" }odyssey-hub-common = { git = "https://github.com/odysseyarm/odyssey" }# Only for zeroing: the Vector2 and Vector3 that zero() takes.odyssey-hub-server-interface = { git = "https://github.com/odysseyarm/odyssey" }Building them needs the Protocol Buffers compiler, protoc, on your PATH.
Next, connect and print some tracking data: Quickstart.

