|
|
[[_TOC_]]
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, UX design, Vulkan, OpenXR, X11, Wayland
|
|
|
|
|
|
**Difficulty:** medium
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, Blender, Vulkan, GLTF
|
|
|
|
|
|
**Difficulty:** medium
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, Wayland, OpenGL, Vulkan, KDE, GNOME, C++
|
|
|
|
|
|
**Difficulty:** easy
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, Wayland, X11
|
|
|
|
|
|
**Difficulty:** medium
|
|
|
|
|
|
# Implement scripting by enabling GObject introspection
|
|
|
|
|
|
Enabling JavaScript and Python bindings is basically free in GObject. We already have gobject-introspection in the build system, but it is never compiled and tested. Writing minimal examples in JavaScript an Python for the whole xrdesktop stack will make development easy and attract new contributors. This will require API and runtime.
|
|
|
|
|
|
More information on this can be found in the issue: https://gitlab.freedesktop.org/xrdesktop/xrdesktop/issues/3.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, Python, JavaScript, Vulkan
|
|
|
|
|
|
**Difficulty:** hard
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
https://git.sr.ht/~sircmpwn/wxrc/tree/master/protocol/zxr-shell-unstable-v1.xml
|
|
|
|
|
|
**Recommended skills:** C11, GLib, Wayland, Vulkan, OpenGL
|
|
|
|
|
|
**Difficulty:** hard
|
|
|
|
|
|
# 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.
|
|
|
|
|
|
**Recommended skills:** C11, GLib, OpenXR, UX
|
|
|
|
|
|
**Difficulty:** medium |
|
|
\ No newline at end of file |