Updated documentation for easier onboarding of developers and users (#19)

* Website updated with better documentation and guides

* Website update with better documentation

* ❤️

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/05-quest-3-setup.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/05-quest-3-setup.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/05-quest-3-setup.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docusaurus.config.js

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/04-manual.md

Co-authored-by: Jaiden Riordan <jade@e.email>

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/01-What-is-Stardust.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/02-Quickstart.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update docs/01-get-started/03-setup-openxr.md

Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>

* Update 02-Quickstart.md

Added information about Atomic installations

* Update 02-Quickstart.md

* Update 03-setup-openxr.md

Added Terra installation information for Atomic versions

* Update 04-manual.md

Added Terra installation information about Atomic editions

* Update 05-quest-3-setup.md

Updating Terra installation information about Atomic editions

* Update 02-Quickstart.md

* Update 03-setup-openxr.md

* Update 04-manual.md

* Update 05-quest-3-setup.md

* Update 05-quest-3-setup.md

* Update 01-What-is-Stardust.md

* Update 02-Quickstart.md

* Update 03-setup-openxr.md

---------

Co-authored-by: Jaiden Riordan <jade@e.email>
Co-authored-by: Owen Zimmerman <123591347+Owen-sz@users.noreply.github.com>
This commit was merged in pull request #19.
This commit is contained in:
Cyberneticmelon
2025-03-07 13:38:36 -05:00
committed by GitHub
parent b5d1c679f4
commit 97fbd850ee
21 changed files with 483 additions and 122 deletions

View File

@@ -0,0 +1,12 @@
---
sidebar_position: 1
---
# What is Stardust XR?
[![Stardust XR Demo Reel](/img/docs/sizzlethumb.png)](https://www.youtube.com/watch?v=v2WblwbaLaA)
Stardust XR is a [display server](https://itsfoss.com/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.
If you'd like to try Stardust XR on your existing device without a headset, head to the [Quick Start](Quickstart) guide. If you'd like to use a VR headset, check out [Set up OpenXR Runtime](setup-openxr). If you already have your headset set up, head to the [Full Stardust Installation](manual) page. If you've a beginner, and have a Meta Quest device, we've created a [full walkthrough to get you started playing with Stardust](quest-3-setup)!
Stardust XR is acitvely looking for help with development to expand the project. You can also [become a sponsor](https://github.com/sponsors/technobaboo).

View File

@@ -1,37 +0,0 @@
---
sidebar_position: 1
---
# Setup OpenXR Runtime
:::info
if you want to test stardust in flatscreen mode (in a window) without a headset or other OpenXR device, you can skip this step and start with [trying out telescope](bundled).
:::
Check the [hardware table](https://lvra.gitlab.io/docs/hardware/) to ensure your hardware and headset are compatible:
## SteamVR
You will likely want to use [Monado](#monado) instead, but if you need to the instructions are available.
:::warning
If you are on NixOS please consult https://lvra.gitlab.io/docs/distros/nixos/ before installing SteamVR.
:::
https://lvra.gitlab.io/docs/steamvr/ is a good starting point, but be aware that the stardust server cannot run as an overlay on top of other games due to SteamVR not implementing the OpenXR Overlay extension.
## Monado
If you've got a wired headset, this is generally the way to go.
### NixOS
It's generally easiest to follow the instructions at https://lvra.gitlab.io/docs/distros/nixos/ to install properly to the system.
### Other distros
[Envision](https://lvra.gitlab.io/docs/fossvr/envision/) is the XR launcher (like a minecraft launcher) of choice for open source XR and is overall better in practice than SteamVR. If you are a Fedora user, Envision is packaged, but it's reccomended to get it from the [Terra repository](https://terra.fyralabs.com/). Other distros will need to build from source.
# Test OpenXR Runtime
Try running [XRGears](https://gitlab.freedesktop.org/monado/demos/xrgears) and see if it works, you can get it from the system's package manager often.

View File

@@ -0,0 +1,67 @@
---
sidebar_position: 2
---
# Quick Start Guide
The quickest way to get started with Stardust XR is to try out <span style={{ color: 'yellow' }}>Telescope</span>, this works with the device you already have, or a headset. It comes with the **Stardust XR server**, an app launcher called **Hexagon Launcher**, and some helpful apps like **Flatland** to use your 2D apps inside Stardust, and **Black Hole** to quickly tuck away your objects and apps (kind of like desktop peek on Windows).
<h1>
<img
src="/img/docs/Fedora_logo.svg"
alt="Fedora Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
<img
src="/img/docs/ultramarine-logo.svg"
alt="Ultramarine Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
Fedora and derivatives (except Enterprise Linux)
</h1>
:::info
You will need the [Terra repository](https://terra.fyralabs.com/), unless you have [Ultramarine Linux](https://ultramarine-linux.org) or [Bazzite](https://bazzite.gg).
[Fedora Atomic Editions](https://fedoraproject.org/atomic-desktops/) will need to run the following command:
```
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
Other Fedora Editions can directly install terra-release:
```
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
```
:::
Then, install Telescope using:
```
sudo dnf install telescope
```
<h1>
<img src="/img/docs/arch.png" alt="Logo" style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }} />
Arch Linux
</h1>
On Arch Linux, Stardust XR is available in the Arch Linux User Repository [AUR](https://aur.archlinux.org/packages/stardust-xr-telescope). We suggest using an AUR helper, like Paru:
```
paru -S stardust-xr-telescope
```
<h1>
<img src="/img/docs/nixos.svg" alt="Logo" style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }} />
NixOS
</h1>
On NixOS use the [Nix package manager](https://nixos.org/download/#nix-install-linux), make sure [flakes are enabled](https://nixos.wiki/wiki/flakes).
```
nix run github:StardustXR/telescope
```
# After Installation
From here, just run `telescope -f` for flatscreen mode in your terminal!
You will see a floating hexagon with the Stardust XR logo in the center, this is Hexagon Launcher.
To look around, hold down ***Shift*** and ***Right Click*** while moving the mouse.
To move around, hold down ***Shift*** and ***W A S D***, with ***Q*** for moving down and ***E*** for moving up.
If you click on the hexagon, the launcher will open. Try dragging one of the apps with the ***Mouse 5*** (Back) button. The small minus sign is Black Hole, if you click it, it will grab any open window and store it away. Click it again and they will return to their original location.
If you are already using OpenXR within Linux, running `telescope` while OpenXR is running should launch Stardust on your headset. If not, check further instructions for setting up OpenXR.

View File

@@ -1,54 +0,0 @@
---
sidebar_position: 2
---
# Bundled setup
Telescope is a bundled Stardust setup that lets you 1-click run all the essentials for testing a setup out on an existing 2D computer.
## Nix
### Install Nix
For easy development and distribution this project uses the [nix package manager](https://nix.dev/).<br/>
This allows to ensure all dependency requirements are met.
If you do not have nix installed follow the instructions at https://nixos.org/download/#nix-install-linux.
:::warning
Make sure to have [flakes enabled](https://nixos.wiki/wiki/flakes).
:::
### Run Telescope
Because telescope itself is a nix flake, you simply have to run
Intel/AMD/NVK graphics:
```sh
nix run github:StardustXR/telescope
```
~~Proprietary NVIDIA graphics:~~ is broken :/
```sh
NIXPKGS_ALLOW_UNFREE=1 nix run --impure github:StardustXR/telescope#telescopeNvidia
```
## Fedora/Ultramarine
You can install Telescope, and all other core Stardust tools, through the [Terra repository](https://terra.fyralabs.com/). This repository is pre-installed on Ultramarine, manual instructions can be found on their website.
To just install Telescope:
```
dnf install telescope
```
To install all Stardust XR packages (Ultramarine 40 and later, Fedora 41 and later):
```
dnf group install stardust-xr
```
From here, just run `telescope` in your terminal of choice.
## Other
An AppImage generated from the nix flake is currently WIP. Please check back later or do a [manual build.](manual)

View File

@@ -1,26 +0,0 @@
---
sidebar_position: 3
---
# Manual build/installation
Make sure all repos are cloned on the same branch (e.g. all main or all dev branch) to ensure stardust protocol compatibility.
## Server
Run and maybe install the server from https://github.com/StardustXR/server.
Follow the README.
## Clients
After the server is running, you'll need to run some clients. Here's a demo showing some off:
![A showcase of some different clients](/img/docs/clients/demo_01.mp4)
Non-exhaustive list of clients:
- [**flatland**](https://github.com/StardustXR/flatland): 3D panel UI (like window manager) for intercting with all your 2D apps
![A flat panel containing the prism launcher](/img/docs/clients/flatland.png)
- [**protostar**](https://github.com/StardustXR/protostar): App launcher library and examples including futuristic hexagon launcher
- [**black hole**](https://github.com/StardustXR/black-hole): Universal minimization of Stardust objects
- [**gravity**](https://github.com/StardustXR/gravity): Launch programs with a certain offset in 3D space
- [**magnetar**](https://github.com/StardustXR/magnetar): Example workspaces client
- [**atmosphere**](https://github.com/StardustXR/atmosphere): 3D environment with natural momentum-based movement
- [**comet**](https://github.com/StardustXR/comet): Annotate in 3D wherever you want amongst your other apps!

View File

@@ -0,0 +1,92 @@
---
sidebar_position: 3
---
# Setup OpenXR Runtime
This guide will help you set up your VR or AR headset for use with Stardust. Although support for many headsets on Linux is still under active development, there are a number of good options available. If you already have OpenXR set up on your Linux distribution, head to the [Full Installation](manual) page to get Stardust XR installed.
:::info
If you want to try Stardust in a window on your existing device you can skip this step and checkout the [Quick Start Guide](Quickstart).
:::
# Envision
:::note
![Envision](/img/docs/Envision_Monado.png)
We highly recommend using [Envision](https://lvra.gitlab.io/docs/fossvr/envision/), an easy to use GUI for utilizing [Monado](https://monado.dev/) which is what you likely use if you have a wired headset. Envision also comes with [WiVRn](https://github.com/WiVRn/WiVRn) support for connecting to headsets like the Meta Quest wirelessly.
:::
Check the [hardware table](https://lvra.gitlab.io/docs/hardware/) (for Monado/WiVRn support) to ensure your hardware and headset are compatible. If you're using an Nvidia card, you'll need to install [proprietary drivers]((https://rpmfusion.org/Howto/NVIDIA). If you're using a modern Nvidia card on Fedora (with RPMFusion) or Ultramarine, this command will install the driver:
```
sudo dnf install akmod-nvidia
sudo akmods
# Wait for this to finish before rebooting, this may take up to 15 minutes
```
AMD graphic cards do not require additional drivers.
<h3>
<img
src="/img/docs/Fedora_logo.svg"
alt="Fedora Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
<img
src="/img/docs/ultramarine-logo.svg"
alt="Ultramarine Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
Fedora and derivatives (except Enterprise Linux)
</h3>
:::info
You will need the [Terra repository](https://terra.fyralabs.com/), unless you have [Ultramarine Linux](https://ultramarine-linux.org) or [Bazzite](https://bazzite.gg).
[Fedora Atomic Editions](https://fedoraproject.org/atomic-desktops/) will need to run the following command:
```
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
Other Fedora Editions can directly install terra-release:
```
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
```
:::
Then, install Envision using:
```
sudo dnf install envision
```
<h3>
<img src="/img/docs/arch.png" alt="Logo" style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }} />
Arch Linux
</h3>
For Arch Linux, Envision is available via the [AUR](https://aur.archlinux.org/packages/envision-xr-git). We suggest using an AUR helper, like Paru:
```
paru -S envision-xr-git
```
<h3>
<img src="/img/docs/nixos.svg" alt="Logo" style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }} />
NixOS
</h3>
On NixOS, it's generally easiest to follow the instructions at https://lvra.gitlab.io/docs/distros/nixos/ as Envision is currently unstable on NixOS and troubleshooting SteamVR can be tricky.
### Other options for installation
You can also download the [Envision AppImage](https://gitlab.com/gabmus/envision/-/pipelines?ref=main&status=success). Once downloaded, unzip the archive, you should find a file named Envision-x86_64.AppImage. You can do this from the properties menu in your file manager, or run `chmod +x Envision-x86_64.AppImage` in your terminal.
Then double click the file to run it.
![Envision App Image](/img/docs/envisionappimage.png)
When you launch Envision, you will have to build a profile for your headset, check the [Envision website](https://lvra.gitlab.io/docs/fossvr/envision/) for instructions specific to what you have. You can take a look at [this section] of our Meta Quest setup video for an example using WiVRn.
![Envision Build Profile](/img/docs/envisionbuildprofile.png)
Once you have one of these options installed, a quick way to test on the headset is by running `xrgears`. [xrgears](https://gitlab.freedesktop.org/monado/demos/xrgears) is a demo that comes with Monado.
:::tip
If you run into any problems during installation, the [Meta Quest Walkthrough](quest-3-setup) may contain information helpful in regards to dependencies, firewalls and drivers.
:::
# ALVR
Another option is ALVR, you can check the GitHub repository for more information [https://github.com/alvr-org/ALVR](https://github.com/alvr-org/ALVR)
# SteamVR
If you'd like to use SteamVR, head over to [https://lvra.gitlab.io/docs/steamvr/](https://lvra.gitlab.io/docs/steamvr/), although it is not the recommended way to use VR within Linux due to poor support.

View File

@@ -0,0 +1,89 @@
---
sidebar_position: 4
---
# Full Installation
Unlike [Telescope](Quickstart) that launches the Stardust XR server and a small selection of clients, the typical way to interact with Stardust is to first run the server, which only provides a void by default, as there are no applications or clients within it. You can then launch any combination of the clients listed below, as they are all considered separate items but can run concurrently inside Stardust.
<h3>
<img
src="/img/docs/Fedora_logo.svg"
alt="Fedora Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
<img
src="/img/docs/ultramarine-logo.svg"
alt="Ultramarine Logo"
style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }}
/>
Fedora and derivatives (except Enterprise Linux)
</h3>
:::info
You will need the [Terra repository](https://terra.fyralabs.com/), unless you have [Ultramarine Linux](https://ultramarine-linux.org) or [Bazzite](https://bazzite.gg).
[Fedora Atomic Editions](https://fedoraproject.org/atomic-desktops/) will need to run the following command:
```
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
Other Fedora Editions can directly install terra-release:
```
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
```
:::
Then, run this command to install the Stardust XR group:
```
sudo dnf group install stardust-xr
```
<h3>
<img src="/img/docs/arch.png" alt="Logo" style={{ verticalAlign: 'middle', height: '1em', marginRight: '0.5em' }} />
Arch Linux
</h3>
```
paru -s stardust-xr-telescope
paru -s stardust-xr-armillary
paru -s stardust-xr-atmosphere
paru -s stardust-xr-black-hole
paru -s stardust-xr-comet
paru -s stardust-xr-flatland
paru -s stardust-xr-gravity
paru -s stardust-xr-magnetar
paru -s stardust-xr-non-spatial-input
paru -s stardust-xr-protostar
paru -s stardust-xr-server
```
From there, you can launch the server with `stardust-xr-server`, then in another terminal window or tab, run any other clients you need. We recommend `flatland` and `hexagon-launcher`.
# Manual Build
:::caution
Make sure all of the repositories that are cloned are on the same branch (e.g. all main or all dev branch) to ensure Stardust protocol compatibility
:::
### Server
Clone the [Stardust XR Server](https://github.com/StardustXR/server) `https://github.com/StardustXR/server`
Make sure to check the list of prerequisites. Run `cargo build` and `cargo run` in the cloned repo to start the server. As stated above, the Stardust server will simply load in with a black void until clients are loaded in. This behaviour can currently be modified by creating a `startup` file inside the folder `~/.config/stardust/` to automate the loading in of clients, an example of which is shown [here](https://youtu.be/c6RyEYDz2iw?si=pL1zffNVsWocZHrc&t=788), and an example of is linked [here](https://github.com/cyberneticmelon/usefulscripts/blob/main/startup)
### Clients
After the server is running, you'll need to run some clients. Clone any of these, `cargo build` & then `cargo run` after the server is already running, and they will load into the Stardust server!
Non-exhaustive list of clients:
- [**flatland**](https://github.com/StardustXR/flatland): `https://github.com/StardustXR/flatland`
3D panel UI (like window manager) for intercting with all your 2D apps
- [**protostar**](https://github.com/StardustXR/protostar): `https://github.com/StardustXR/protostar`
App launcher library and examples including futuristic Hexagon Launcher
- [**black hole**](https://github.com/StardustXR/black-hole): `https://github.com/StardustXR/black-hole`
Universal minimization of Stardust objects
- [**gravity**](https://github.com/StardustXR/gravity): `https://github.com/StardustXR/gravity`
Launch programs with a certain offset in 3D space
- [**magnetar**](https://github.com/StardustXR/magnetar): `https://github.com/StardustXR/magnetar`
Example workspaces client
- [**atmosphere**](https://github.com/StardustXR/atmosphere): `https://github.com/StardustXR/atmosphere`
3D environment with natural momentum-based movement
- [**comet**](https://github.com/StardustXR/comet): `https://github.com/StardustXR/cometAnnotate`
Write in 3D wherever you want amongst your other apps!
### Installation Script
If you have all the correct dependencies, we've created a [script](https://github.com/cyberneticmelon/usefulscripts/blob/main/stardustxr_setup.sh) that will automatically `git clone` all of the necessary repositories, `cargo build` all of them, and give them a symlinks for running the server and clients from the command line. It also creates a [config](https://github.com/cyberneticmelon/usefulscripts/blob/main/startup) file that will by default install the default `atmosphere` background. Run the script with flag `-nobg` if you don't want that.

View File

@@ -0,0 +1,76 @@
---
sidebar_position: 5
---
# Meta Quest Walkthrough
Do you have a Meta Quest and would like to try Stardust for yourself? Even if you don't have any experience with Linux, this full guide will get you started with Stardust! It is recommended that you install a version of Linux called [Ultramarine](https://ultramarine-linux.org/download/). We suggest Plasma Edition due to VRR and HDR support. Once you have it installed, you will mainly be using the terminal to install what you need. Linked below is a YouTube walkthrough:
[![Youtube Tutorial](/img/docs/youtubethumb.png)](https://www.youtube.com/watch?v=Rgj9-9UwA2g)
:::info
Applies to Quest, Quest 2, Quest 3, and Quest Pro. These instructions should work on all Fedora derivatives (excluding Enterprise Linux) but you will need to download the [Terra repository](https://terra.fyralabs.com/), unless you have [Ultramarine Linux](https://ultramarine-linux.org) or [Bazzite](https://bazzite.gg).
[Fedora Atomic Editions](https://fedoraproject.org/atomic-desktops/) will need to run the following command:
```
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
Other Fedora Editions can directly install terra-release:
```
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
```
The setup video is done with a Meta Quest 3, and with [Ultramarine](https://ultramarine-linux.org/download/), a Fedora based distribution. Ultramarine comes with the Terra repository pre-installed. You can follow [these instructions](https://wiki.ultramarine-linux.org/en/setup/getting/) to install a version of Ultramarine.
:::
# Nvidia & AMD
AMD Graphics cards do not require additional drivers, but Nvidia graphics cards will need to install drivers [provided by RPMFusion](https://rpmfusion.org/Howto/NVIDIA), which can be installed with:
```
sudo dnf install akmod-nvidia
```
# Envision
The next step is to install [Envision](https://lvra.gitlab.io/docs/fossvr/envision/). Envision is a GUI that makes it easier to connect and run the Quest 3 (among other headsets) with [Monado](https://monado.dev/), an open source OpenXR implementation, and [WiVRn](https://github.com/WiVRn/WiVRn), a wireless streaming implementation that also works with the Quest 3. Envision comes pre-packaged with WiVRn. Envision can be installed via:
```
sudo dnf install akmod-nvidia
```
# Vulkan Layers
If you have an Nvidia graphics card, it is possible that you will need to install [Vulkan Layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) for Monado, although this may not be necessary depending on the driver version:
```
sudo dnf install -y monado-vulkan-layers
```
Next, Launch Envision, and in the drop down menu on the bottom, select the **WiVRn profile** and click **Build Profile**. It'll give you a list of dependencies to install, so copy the command and run it. After they are installed, there's one extra dependency to add manually.
```
sudo dnf install libnotify-devel
```
:::note
Note that [Developer Mode](https://developers.meta.com/horizon/documentation/native/android/mobile-device-setup/) must be enabled on your Quest 3. The most streamlined way to do this is through the Meta Horizons app on [Android](https://play.google.com/store/apps/details?id=com.oculus.twilight&hl=en_US) or [iPhone](https://apps.apple.com/us/app/meta-horizon/id1366478176)
:::
# Installing WiVRn
Once that is complete, you're ready to click Build Profile within Envision. Once it's done building, you're ready to install WiVRn on the headset. Connect your headset to your computer via the Quest 3 Link cable or another compatable USB-C cable. Now that Developer Mode is enabled, you should see "Allow USB debugging", click *allow* within the headset.
With debugging enabled and the headset connected, click **Install WiVRn** within Envision to install the android apk onto the headset.
# Firewalls
Once it's installed, you'll need avahi-daemon running:
```
systemctl enable --now avahi-daemon
```
And it's possible that your firewall could prevent connection, so use the following commands to open up the ports required and reload the firewall:
```
sudo firewall-cmd --zone=public --add-port=5353/udp --permanent
sudo firewall-cmd --zone=public --add-port=9757/udp --permanent
sudo firewall-cmd --zone=public --add-port=9757/tcp --permanent
sudo firewall-cmd --reload
```
# Stardust XR
Now that we've set up the Quest 3 to be able to connect to your linux distribution via Envision/WiVRn, we can install Stardust XR!
```
sudo dnf group install stardust-xr
```
Once installed, you'll have to launch WiVRN within the headset. On the bottom right of the Quest 3 menu, go to Library > Unknown Sources, and you'll see the WiVRn app. Once you're loaded up, click the Start button at the top of Envision on your computer, and you'll be greeted with a PIN for firs time setup. Back in the Quest 3, tap Connect, and enter the PIN, and you should see "Connection ready, Start a VR application on Ultramarine"
For the quickest way to test Stardust XR, run the command
```
telescope
```
Which will launch Stardust XR along with the Hexagon App Launcher and some pre-loaded applications!