Skip to content
This repository has been archived by the owner on Sep 18, 2022. It is now read-only.

Overall Structure of Stardust

Nova King edited this page Dec 10, 2019 · 7 revisions

Introduction

"Stardust" itself refers to a complete user interface comprised of Stardust Core and enough modules to make it usable independent of another device. "Stardust Core" only refers to the core that includes the engine, API, input, module loader, and OpenXR integration.

Stardust Core must use modules to expand its capability. Modules have a wide range of capabilities:

  • Application compatibility (Wayland, OpenXR, etc.)
  • Core system interaction (notification area, application menu, etc.)
  • Additional hardware support (SLAM sensor, camera, microphone, hand tracking module, etc) that is not covered by OpenXR
  • Virtual hardware (virtual controller, virtual keyboard, etc)
  • Highly integrated applications (Exokit, 2D web browser, etc)

Glossary

As Stardust is an XR UI and there is no set terminology for many XR elements, this is the current language used in Stardust documentation and source code:

Core

Module - additional code to add functionality to Stardust.

2D content modules

Panel - an adapter that allows Stardust to interact and view 2D content such as Wayland surfaces, X windows, and web pages.

Panel Shell - a container around any panel that defines how you can interact with it in XR. There can be different panel shells for different panels at the same time.

3D content modules

App Shell - a remake of an application's UI from scratch, optimized for XR. Examples include a 3D analog clock you can place on the wall, a time machine-style control panel for backups, and a shelf containing video games you can pick up and play via Lutris.

Lens - an adapter that allows Stardust to interact and view XR content such as OpenXR clients, SteamVR games, and Exokit Reality Tabs.

Lens Frame - a container around any lens that defines how you can interact with it and composite it in XR. There can only be 1 type of lens frame that applies to all lenses, as compositing would not work otherwise.

Core functionality modules

Virtual Keyboard - same as any virtual keyboard, but has a wire that can connect to inputs on panel shells, keyboard adapters, and other inputs.

Keyboard Adapter - an object that can change the output of virtual keyboards. Examples include custom IMEs, autocorrect, and text suggestion. A virtual keyboard is plugged into the input, and the output is connected to another keyboard input.

Running Applications in Stardust

Here is a flowchart to show how 2D and XR applications will run inside Stardust: Flowchart of Stardust

Clone this wiki locally