Docs regarding OXR based Marker Tracking are missing. Also, Unable to initialise related function pointers such as xrCreateMarkerDetectorML

I had posted this as a reply to another post, but I think it is important enough to have its own dedicated discussion, that is why I am re-posting it here.

You had mentioned that you will add marker size estimation in this release. I found out that you have added a header file and a .h/.cpp containing the logic for querying markers based on openxr calls. Namely: XR_ML_marker_understanding.h and MarkerTracking.h/.cpp files.

I want to implement the marker tracking using these calls. However, I have been unable to find any documentation regarding these calls and their arguments. As you may know, in OXR usually we need to supply a chained data structure for the functions. In some occasions, one needs to call a method multiple times to get the correct result. These characteristics makes working with OXR to require the access to the respective docs. Hence, it would be really helpful if you could provide the docs regarding these calls. I am writing this post since I have been unable to find any information on OpenXR Specs page nor in the aforementioned files.

Moreover, trying to initialise function pointers such as xrCreateMarkerDetectorML, xrDestroyMarkerDetectorML, etc. using the latest standard OpenXR Loader SDK (version 1.0.31), fails. Your documenation regarding OpenXR Runtime Setup, also, does not list the extension XR_ML_MARKER_UNDERSTANDING_EXTENSION as a supported extension. Hence, the question: How can I build openxr-loader with this extension enabled? Or, can you give us access to the openxr-loader library that you use for this extension?

tl;dr: The openxr methods are there, where are the docs? And how to get the extension in openxr-loader library?


I'm sorry about any confusion in the release notes. Support for the XR_ML_marker_understanding extension is experimental as of ML OS 1.4. I've added a note for us to put together some documentation to clarify how we generally go about documenting and publishing new OpenXR extensions. Experimental extensions represent things that may have been implemented in MagicLeap's public OpenXR runtimes, but are not [yet] officially supported. We may even have some sample code available that could leverage the APIs. However, the extension (and it's corresponding documentation) has not yet been published as a part of the OpenXR specification - The OpenXR™ Specification

From a developer's perspective, you can consider any extension in this state as unsupported. You're essentially using undocumented APIs that are subject to change at any time.

Again, sorry about any confusion or frustration regarding marker tracking. I'll follow up with you via dm about this extension in particular.