Is Magic Leap Hub required for development?


I'm trying to setup a headless development environment and wondering if I can use the Android SDK and NDK as published by google?

Basically I'm writing a series of native applications that use Rust, Vulkan, OpenXR, Android SDK and NDK. I want to be able to push the code to github and have a CI/CD runner that will run the unit and integration tests, QA checks, and build the daily binaries. Therefore I need to script the setup of the build environment etc.

I assumed, like in the case of Phone development, I just need to pick the right API version of the Android SDK (API Level 33) and NDK (maybe API Level 24?). Is this assumption right?

If not, is there a way for me to pull down ML2 SDK and NDK via a script?


The Magic Leap Hub is not required for development. However if provides access to the MLSDK along with other packages.

Do you mind elaborating on what you are referring to when you say ML2 ... NDK? In the OpenXR environment setup we use the Android NDK 25.08775105 .

Thanks @kbabilinski. Basically our primary development environment is Linux which I dont believe is supported by ML Hub. We have developed our own simulation engine using Rust, Vulkan and OpenXR which we have sucessfully compiled as an Android app using the google Android SDK (33) and NDK(25).

What I'm not clear on is whether (with exception of the MLSDK), there is a bespoke Android SDK and NDK thats been tailored for the ML2, and which is only available through the ML Hub. If not, then I have no issues :slight_smile:

(I'm also not sure what is in MLSDK that we can't get through OpenXR. If there are critical capabilities we need, it would be great if we can pull it down directly in linux, but if not, I'm guessing we just have to copy the .so files across from Windows.) Im thinking that the easiest way to do this is to create a Docker image that simply compile everything. It can then also be used for the CI runners.

(For context, we are placing an order for an ML2, and I don't have any hardware to test on. I want to get a headstart in the development so we can start testing right away when the hardware arrives.)

Correct, you can use the standard Android SDK and NDK. Only the MLSDK is device specific.

Regarding the need for the MLSDK, Currently certain features such as voice commands, depth/world/eye cameras are only available through the MLSDK. We are working on supporting/adding more OpenXR APIs with every release.

Thanks. I think we would like those advance features. I'll have a play with copying the shared object files into the dev environment and see if it work as expected.