diff --git a/gsoc-2023.md b/gsoc-2023.md index d9a14e0fe1a0cfa487fadd2d09d8ff344f709b00..5c0c4f1db99b5a7f8cf6b3fd7aef8fe1ba71213d 100644 --- a/gsoc-2023.md +++ b/gsoc-2023.md @@ -9,6 +9,28 @@ layout: main * TOC {:toc} +## Portable and convenient config UI + +Monado has a lot of configurable options and currently, there is no convenient visual means to update them. This project consists in implementing a config UI in Monado and could be broken down into three project phases. First, choose a UI technology that satisfies the below UI requirements. Second, Integrate that UI technology into Monado codebase. Third, implement the required UI menus and elements using the integrated UI codebase. + +UI toolkit requirements: +* Must be open-source +* Must be cross-platform (GNU/Linux, Android, Windows) +* Must be capable of rendering rich (and nice) contents. +* Must be lightweight +* Must be accessible from both host console and from within immersive environment. + +Deliverables: +* A set of MRs in Monado codebase effectively implementing config UI. + +Requirements: +* Scripting knowledge... python, javascript, html, ... +* Basic knowledge in human/machine interface + +Difficulty: easy + +Project Size : Small (\~150 hours) + # Frame Timing Tools In VR, stutters, judders and jitters in rendering are a much bigger deal than on desktop monitors. Instead of being just annoying, they can cause disorientation, and even motion sickness. @@ -26,3 +48,29 @@ Requirements: Difficulty: medium Project Size : Large (~350 hours) + +## Immersive Dashboard + +Monado is an OpenXR runtime used to run immersive OpenXR applications. When the Monado server is first launched, the user wearing any AR or VR headset ends up in a very simple space without any means for directly seeing runtime options or launching applications. Apps need to be executed from another means, such as the Host's console and so, this project Idea consists in implementing a full-blown Immersive System Dashboard within Monado. This visually appealing dashboard should not only let the user interact with applications' lifecycle (start, pause, stop), but also allows for seeing debug variables in realtime (frame statistics, timing, etc...). The dashboard as an application in itself should be built with lovr (https://lovr.org/), a framework coded in lua language that allows developers to create very nice immersive objects and scenes very easily and efficiently. + +Deliverables: +* A standalone application (The Immersive Dashboard) implementing a nice-looking, conveninent system dashboard. +* A series of MRs into Monado codebase to integrate the Dashboard UI element with the right hooks (for example : For seeing dashboard app as privileged). + +Requirements: +* Basic C knowledge (for code additions to Monado) +* Scripting knowledge... python, javascript, html. +* Basic knowledge in human/machine interface + +Difficulty: medium + +Project Size : Small (\~150 hours) + + +## Your own idea + +We greatly welcome a student to come up with their own project idea, we could not possibly cover ever single idea that +is possible for Monado on our own. Please join our chats to discuss them. + +* [Discord](https://discord.gg/8RkJgRJ) +* [#monado](https://webchat.oftc.net/?channels=monado) on [OFTC](https://www.oftc.net/)