Skip to content

Implementation Status

Marko Kazimirovic edited this page May 22, 2026 · 3 revisions

Implementation Status

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.

Runtime infrastructure

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]

Aug-Ins module system

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+

Host API

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]

Service-side adapters

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+

Shipped modules

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

Documentation

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

Clone this wiki locally