- Implement Virtual Keyboard
- Loading virtual environments via GLTF
- Make xrdesktop work with GNOME / KDE on Wayland
- Improve UX for mouse / keyboard input
- Implement scripting by enabling GObject introspection
- Implement xr_shell_unstable_v1 Wayland protocol for 3D clients
- Extend support for more controllers
Implement Virtual Keyboard
A VR keyboard is part of every desktop VR experience. We currently only provide a keyboard via the OpenVR API, which is implemented by SteamVR. Optimally we will be able to run an internal VR keyboard on both APIs, implemented with our frameworks.
You will learn: C11, GLib, UX design, Vulkan, OpenXR, X11, Wayland
Loading virtual environments via GLTF
Being able to choose a more interesting background in form of a GLTF scene. This will require work in our Gulkan rendering library, as well as experience in working with 3D scenes and assets. Blender should be used as the primary asset pipeline.
You will learn: C11, GLib, Blender, Vulkan, GLTF
Make xrdesktop work with GNOME / KDE on Wayland
xrdesktop should work with Wayland on KDE and GNOME, but needs more work in terms of testing and ironing out the last missing parts. This includes patches to
libinputsynth to implement generic synthesis of input in Wayland compositors, as well as the enhancement of the user experience. This might include upstream work. The final result should be tested and usable in KDE and GNOME.
You will learn: C11, GLib, Wayland, OpenGL, Vulkan, KDE, GNOME, C++
Improve UX for mouse / keyboard input
A requested feature is to make xrdesktop work with traditional keyboard / mouse input only. This will most likely require more Xorg / Wayland work and will be kind of a hack on GNOME and KDE. This is also required for a stand alone implementation of xrdesktop for usage with the PC.
You will learn: C11, GLib, Wayland, X11
Implement scripting by enabling GObject introspection
More information on this can be found in the issue: #3.
Implement xr_shell_unstable_v1 Wayland protocol for 3D clients
To make xrdesktop support future 3D UI protocol standards, we should implement the xr_shell_unstable_v1 protocol he uses in wxrc to enable stand alone 3D apps on xrdesktop. This would require also rendering improvments in the scene renderer.
You will learn: C11, GLib, Wayland, Vulkan, OpenGL
Extend support for more controllers
With our OpenXR backend we now support a wide range of controllers with very heterogeneous abilities. Implementing profiles and UX improvements for them is part of this project. You will also look deeper into the stack with using custom branches of Monado and OpenHMD, as well as writing patches. It helps if you have diverse controller hardware here.
You will learn: C11, GLib, OpenXR, UX