Stardust XR is a display server for VR and AR headsets on Linux-based systems. Stardust provides a 3D environment, where anything from 2D windows (including your existing apps!), to 3D apps built from objects, can exist together in physical space.
Command line installation of core & dynamic dependencies are provided below:
Ubuntu/Debian
sudo apt update && sudo apt install \
build-essential \
cargo \
cmake \
libxkbcommon-dev libudev1 libinput10 libcap2 libmtdev1 libevdev2 libwacom9 libgudev-1.0-0 \
libglib2.0-dev libffi8 libpcre2-dev libxkbcommon-x11-dev libxcb-dev libxcb-xkb-dev libxau-dev \
libstdc++-dev libx11-dev libxfixes-dev libegl-dev libgbm-dev libfontconfig1-dev libgl-dev \
libdrm-dev libexpat1-dev libfreetype6-dev libxml2-dev zlib1g-dev libbz2-dev libpng-dev \
libharfbuzz-dev libbrotli-dev liblzma-dev libraphite2-dev
Fedora
sudo apt update && sudo apt install \
cargo \
cmake \
libxkbcommon-devel systemd-devel libinput-devel libcap-devel mtdev-devel libevdev-devel glib2-devel \
libffi-devel pcre2-devel libxkbcommon-x11-devel libxcb-devel libXau-devel libstdc++-devel libx11-devel libxfixes-devel \
mesa-libEGL-devel mesa-libgbm-devel fontconfig-devel libdrm-devel expat-devel freetype-devel libxml2-devel zlib-devel \
bzip2-devel libpng-devel harfbuzz-devel brotli-devel xz-devel graphite2-devel
Arch Linux
sudo pacman -Syu --needed \
cargo \
cmake \
libxkbcommon systemd libinput libcap mtdev libevdev libwacom glib2 libffi pcre2 libxkbcommon-x11 \
libxcb libxau libx11 libxfixes mesa fontconfig libdrm expat freetype2 libxml2 zlib bzip2 \
libpng harfbuzz brotli xz graphite
More detailed instructions and walkthroughs are provided at https://www.stardustxr.org
The Terra Repository is required, and comes pre-installed with Ultramarine Linux. Other Fedora Editions and derivatives can directly install terra-release:
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-releaseFor a full installation of the Stardust XR server and a selected group of clients, run:
sudo dnf group install stardust-xrWe've provided a manual installation script here that clones and builds the Stardust XR server along with a number of other clients from their respective repositories, and provides a startup script for automatically launching some clients.
After cloning the repository
cargo build --release # this is needed to skip validation layersNote
For help with setting up an XR headset on linux, visit https://stardustxr.org/docs/get-started/setup-openxr
The Stardust XR Server is a server that runs clients, so without any running, you will see a black screen. If you only have the server installed, we recommend also cloning and building the following clients to start: Flatland, which allows normal 2D apps to run in Stardust, Protostar, which contains Hexagon Launcher, an app launcher menu, and Black Hole to quickly tuck away your objects and apps (kind of like desktop peek on Windows).
First, try running cargo run -- -f in a terminal window to check out flatscreen mode, (or stardust-xr-server -f / stardust-xr-server_dev -f if you installed via dnf or the manual installation script, respectively, as they provide symlinks.)
If there aren't already any clients running, you'll need to manually launch them by either navigating to their repositories and running cargo run, or running them via their names if you installed via dnf or the manual installation script, such as flatland, hexagon_launcher, etc.
Important
Flatland must be running for 2D apps to launch.
A startup script can be created at ~/.config/stardust/startup that will launch specified settings and clients/applications, an example of which is shown here. If you used the installation script, one will have already been made for you. This allows wide flexibility of what clients to launch upon startup (and, for example, where, using the Gravity client to specify X Y and Z co-ordinates).
A video guide showcasing flatscreen controls is available here
To move around, hold down Shift + W A S D, with Q for moving down and E for moving up.
To look around, hold down Shift + Right Click while moving the mouse.
To drag applications out of the app launcher, hold down Shift + ~
A video guide showcasing XR controls is available here
Quest 3 Hand tracking: Pinch to drag and drop, grasp with full hand for grabbing, point and click with pointer finger to click or pinch from a distance
Quest 3 Controller: Grab with the grip buttons, click by touching the tip of the cones or by using the trigger from a distance
