Release 0.2.0
Overview
This release introduces new features including a device plugin system, data schemas
with FlatBuffer serialization, and major improvements to the hand/head tracking systems. The
codebase has been modernized with C++20 support, improved Python packaging, and better code
quality through clang-format enforcement.
🚀 New Features
Plugin Manager System
- Plugin Manager API - New plugin architecture for discovering and managing external plugin
binaries with YAML-based metadata configuration - Plugin health monitoring - Added
check_healthAPI that throwsPluginCrashExceptionif
the plugin process crashes - Manus Glove Plugin - Full integration with Manus SDK for glove-based hand tracking with
controller pose fusion - Controller Synthetic Hands Plugin - Generate synthetic hand poses from VR controllers
Schema & Data Serialization
- FlatBuffer-based schemas for efficient data serialization:
pose.fbs- Pose representation with position and quaterniontensor.fbs- Tensor message for multi-dimensional datahand.fbs- Hand pose schema with joint datahead.fbs- Head tracking schema
- Python bindings for all schemas with comprehensive unit tests
- C++ Object API for working with schema data
Device I/O Module
- Renamed and reorganized
xriomodule todeviceiofor clarity - Controller Tracker - New tracking support for VR controllers
- Head Tracker - Dedicated head pose tracking component
- Integrated FlatBuffer schemas for head and hand pose data
Examples & Documentation
- LeRobot Example - New example for robot learning data recording and visualization
- Camera Streaming Example - Standalone GStreamer-based camera streaming with OAK-D support
(host/robot Docker configs) - Improved README with better setup and build instructions
🔧 Improvements
Build System & Dependencies
- Switched from Git submodules to CMake FetchContent for dependency management
- Upgraded to C++20 to enable designated initializers
- clang-format enforcement in CI for consistent code style
- Improved Python packaging:
- Locked Python version in
pyproject.toml - Explicit Python version and ABI in wheel filenames
- Auto-generated
.pyistub files for Python bindings
- Locked Python version in
- Use mainline yaml-cpp instead of fork
Code Quality
- RAII improvements - Replaced
OpenXRHandlewithstd::unique_ptr - RAII for XR core functions - Better resource management
- Namespace reorganization - Renamed from
oxrtocore - Extensive refactoring of hand tracker and session APIs
CI/CD
- Added clang-format checks to Linux builds
- CI optimizations to avoid exceeding usage limits
- Fixed Python test paths in Ubuntu build workflow
CloudXR Integration
- Enabled push device support in CloudXR container
- Updated web app and WSS proxy Dockerfiles
- Run nginx with non-root user for security
- Fixed HAProxy configuration permissions
⚠️ Breaking Changes
xriomodule renamed todeviceio- update import paths accordinglyTeleopSessionAPI replaced withDeviceIOSession- Namespace changed from
oxr::tocore::in C++ code
🙏 Contributors
Thanks to all contributors who made this release possible!