-
Notifications
You must be signed in to change notification settings - Fork 0
Implementation Status
Marko Kazimirovic edited this page May 22, 2026
·
3 revisions
Per-subsystem status of the v0.2 codebase. Other wiki pages link here rather than restating status.
Labels:
-
[Working]-- implemented, on-device verified. -
[WIP]-- partial; some paths work, edges do not. -
[Planned]-- design exists, code does not. -
[Broken]-- regressed or misbehaves; tracked in Known-Issues.
Last verified on-device: 2026-05-21.
| Item | Status | Note |
|---|---|---|
| Out-of-process runtime build (APK) | [Working] |
gradlew assembleOutOfProcessDebug |
| Khronos broker registration | [Working] |
XR apps resolve us via OpenXRRuntimeService
|
MonadoService.startService background-restricted |
[WIP] |
startForegroundService works; bare startService fails on Android 12+. See Known-Issues. |
| Cardboard stereo distortion compositor | [Working] |
Inherited from upstream Monado. |
| IPC dispatch (proto.py codegen) | [Working] |
| Item | Status | Note |
|---|---|---|
.augins zip extraction with size-stamp cache |
[Working] |
|
| Manifest parser (Manifest_Version 1) | [Working] |
|
dlopen + sibling-.so preload |
[Working] |
Verified with ARCore module's libarcore_sdk_c.so
|
Dispatch registry (g_map) |
[Working] |
|
| Priority sort | [Working] |
Single-module case verified; multi-module priority interaction not yet stress-tested |
Lifecycle hooks (aug_on_module_load / aug_on_module_unload) |
[Working] |
|
| Per-module data dir via TLS | [Working] |
|
aug_on_module_load reject unwind |
[WIP] |
Rejected modules log but dispatch entries are not pulled back |
APK-bundled fallback (assets/modules/) |
[Planned] |
v0.2.x |
Dependencies (manifest Dependencies field + Kahn sort) |
[Planned] |
v0.2.x or v0.3, only if a real case lands |
Failure_Mode field |
[Planned] |
v0.2.x |
module_order.json priority override file |
[Planned] |
v0.2.x |
| Hot reload | [Planned] |
v0.3+ |
| Item | Status | Note |
|---|---|---|
v1 baseline (get_jvm, get_context, get_module_data_dir, log) |
[Working] |
|
Camera frame broker (publish_camera_frame_y8, subscribe_camera_frame) |
[Planned] |
Returns when Mercury is rewritten on v0.2 |
| Settings API (per-module persistent prefs) | [Planned] |
v0.2.2 |
Versioning via struct_version
|
[Working] |
| OpenXR / synthetic name | Adapter | Status |
|---|---|---|
xrLocateSpace |
aug_adapter_space_locate_space |
[Working] |
aug_LocateDeviceInSpace (backs T_base_xdev half of xrLocateViews) |
aug_adapter_space_locate_device |
[Working], head-only filter |
aug_DeviceGetTrackedPose (backs T_xdev_head half of xrLocateViews) |
-- |
[Planned] v0.2.x |
xrCreateHandTrackerEXT family |
-- |
[Planned], blocked on Mercury v0.2 rewrite |
xrEnumerateInstanceExtensionProperties augmentation |
-- |
[Planned], depends on manifest Advertised_OpenXR_Features
|
Codegen-from-xr.xml for adapters |
-- |
[Planned] v0.3+ |
| Module | Status | Note |
|---|---|---|
samples/augins-test-noop |
[Working] |
Phase 2b verification module. No dispatch; lifecycle only. |
samples/augins-test-locate-space |
[Working] |
Phase 2d verification module. Exports xrLocateSpace, writes sentinel pose. |
samples/augins-arcore-headpose |
[Working] |
First production v0.2 module. See ARCore-Module-Reference. |
module-example/augins-head-sway |
[Working] |
Tutorial module; adds a sinusoidal X-offset to the head pose. Standalone NDK build, no external SDK. See Module-Example-Walkthrough. |
| Mercury hand-tracking (ARCore camera) | [Planned] |
v0.1 source archived; not yet rewritten on v0.2 ABI |
| Mercury hand-tracking (USB camera) | [Planned] |
Future work |
| Item | Status | Note |
|---|---|---|
| Wiki landing + index | [Working] |
Phase 2f |
| Architecture overview | [Working] |
Phase 2f |
| Module system | [Working] |
Phase 2f |
| Manifest schema | [Working] |
Phase 2f |
| Host API reference | [Working] |
Phase 2f, points at module_abi.h as source of truth |
| Service-side dispatch | [Working] |
Phase 2f |
| Building the runtime | [Working] |
Phase 2f |
| Building a module | [Working] |
Phase 2f |
| ARCore module reference | [Working] |
Phase 2f |
| Implementation status (this page) | [Working] |
Phase 2f |
| Known issues | [Working] |
Phase 2f |
| Roadmap | [Working] |
Phase 2f |
| Acknowledgements | [Working] |
Phase 2f |
| Head-sway example walkthrough | [Working] |
See Module-Example-Walkthrough |
| README (root) rewrite for v0.2 | [Working] |
|
MODIFICATIONS.md (subsystem-grouped changes vs upstream Monado) |
[Working] |
|
| Per-file SPDX header sweep | [Working] |
scripts/relicense.ps1 allow-list updated for v0.2; 5 files flipped; 0 NVIDIA CORPORATION placeholders remain in source. |
| Mercury module reference | [Planned] |
After v0.2 Mercury rewrite |
| Calibration UI walkthrough | [Planned] |
v0.2.2 |