Contributing to this project? See the github and Kanban Board. New to this project? Go through the
Once Project Standalone gets to a stage where it supports running OpenXR applications, the final aspect of the project will be some sort of user interface. That is, how will users of our headset be able to select and launch OpenXR (or WebXR) applications without needing to link it with an external device?
The solution is this: A custom launcher. We develop our own OpenXR-based application that exposes a launcher environment to the user. In this launcher environment, the user can ideally browse installed OpenXR applications, browse the internet to download more, or launch WebXR experiences on the internet. In addition, we would want to expose basic OS functionalities, e.g. a shell interface, file browsing, windows, etc.
An example of an existing launcher environment —that we will likely end up copying a lot from —is Meta Horizon OS, illustrated below:

To develop this application, there are a few options. Note that the Raspberry CM5’s processor uses ARM architecture, and thus any game engine or development platform we use must support compiling applications to Linux on ARM. Unfortunately, Unity does not compile to ARM Linux, but we do have other available options:
With the presence of Godot, UE5 becomes overkill, so the choice is really just between Godot and no engine at all.
Although creating the launcher using something like OpenGL would be a fun technical challenge, the most practical option is undoubtedly Godot, as this will allow quick prototyping and iteration. Thus, assuming no compatibility issues down the road, Godot is what we will use to create this launcher.
The current plan is as follows: