{"id":27058937,"url":"https://github.com/stardustxr/server","last_synced_at":"2025-10-04T05:07:19.484Z","repository":{"id":37408442,"uuid":"491355198","full_name":"StardustXR/server","owner":"StardustXR","description":"Stardust XR Reference Server, now blazingly fast in Rust :D","archived":false,"fork":false,"pushed_at":"2024-10-21T10:18:56.000Z","size":2558,"stargazers_count":103,"open_issues_count":5,"forks_count":15,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-29T16:57:34.917Z","etag":null,"topics":["ar","linux","rust","vr","xr"],"latest_commit_sha":null,"homepage":"https://stardustxr.org/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StardustXR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"technobaboo","open_collective":"stardust-xr"}},"created_at":"2022-05-12T03:49:39.000Z","updated_at":"2024-10-27T08:23:51.000Z","dependencies_parsed_at":"2024-02-17T06:32:35.535Z","dependency_job_id":"0b0ce022-42f4-41d5-bf3d-25e2955b58c5","html_url":"https://github.com/StardustXR/server","commit_stats":{"total_commits":676,"total_committers":10,"mean_commits":67.6,"dds":"0.047337278106508895","last_synced_commit":"c830becbff8907809c87dc0949f9a0abd4d77ed6"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StardustXR%2Fserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StardustXR%2Fserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StardustXR%2Fserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StardustXR%2Fserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StardustXR","download_url":"https://codeload.github.com/StardustXR/server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332552,"owners_count":20921854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ar","linux","rust","vr","xr"],"created_at":"2025-04-05T12:17:41.513Z","updated_at":"2025-10-04T05:07:14.447Z","avatar_url":"https://github.com/StardustXR.png","language":"Rust","funding_links":["https://github.com/sponsors/technobaboo","https://opencollective.com/stardust-xr"],"categories":[],"sub_categories":[],"readme":"# Stardust XR Server\n\nStardust XR is a display server for VR and AR headsets on Linux-based systems. [Stardust provides a 3D environment](https://www.youtube.com/watch?v=v2WblwbaLaA), where anything from 2D windows (including your existing apps!), to 3D apps built from objects, can exist together in physical space.  \n\n![workflow](/img/workflow.png)\n\n## Core Dependencies \n| **Dependency**              | **Ubuntu/Debian**                                                                               | **Arch Linux**                                    | **Fedora**                                                  |\n|-----------------------------|-------------------------------------------------------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------|\n| **Cargo**                   | `cargo`                                                                                       | `cargo` | `cargo` |\n| **CMake**                   | `cmake`                                                                                       | `cmake`                                           | `cmake`                                                     |\n| **EGL+GLES 3.2**            | `libegl1-mesa-dev`, `libgles2-mesa-dev`                                                         | `mesa` *(provides EGL/GLES libraries and headers)* | `mesa-libEGL-devel`, `mesa-libGLES-devel`                     |\n| **GLX+Xlib**                | `libx11-dev`, `libxfixes-dev`, `libxcb1-dev`, `libgl1-mesa-dev`, `libxkbcommon-dev`              | `libx11`, `libxfixes`, `libxcb` *(and GLX via mesa)*| `libX11-devel`, `libXfixes-devel`, `libxcb-devel`, `mesa-libGL-devel` *(or equivalent)* |\n| **fontconfig**              | `libfontconfig1-dev`                                                                            | `fontconfig`                                      | `fontconfig-devel`                                          |\n| **dlopen** (glibc function) | Provided by `libc6-dev` (part of the core C library)                                            | Provided by `glibc` *(included in base-devel)*    | Provided by `glibc-devel`                                     |\n| **OpenXR Loader**           | `libopenxr-loader1`, `libopenxr-dev`, `libopenxr1-monado`                                       | `openxr`                                          | `openxr-devel`                                              |\n\nCommand line installation of core \u0026 dynamic dependencies are provided below:\n\u003cdetails\u003e\n\u003csummary\u003eUbuntu/Debian\u003c/summary\u003e \n  \u003cpre\u003e\u003ccode class=\"language-bash\"\u003e\n  sudo apt-get update \u0026\u0026 sudo apt-get install -y \\\n  build-essential \\\n  cargo \\\n  cmake \\\n  libegl1-mesa-dev libgles2-mesa-dev \\\n  libx11-dev libxfixes-dev libxcb1-dev libxau-dev libgl1-mesa-dev libxkbcommon-dev \\\n  libfontconfig1-dev libfreetype6-dev libharfbuzz-dev libgraphite2-dev \\\n  libc6-dev \\\n  libopenxr-loader1 libopenxr-dev libopenxr1-monado libwayland-dev \\\n  libjsoncpp-dev libdrm-dev libexpat1-dev libxcb-randr0-dev \\\n  libxml2-dev libffi-dev libbz2-dev libpng-dev libbrotli-dev liblzma-dev libglib2.0-dev libpcre2-dev\n  \u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eArch Linux\u003c/summary\u003e \n  \u003cpre\u003e\u003ccode class=\"language-bash\"\u003e\n  sudo pacman -Syu --needed \\\n  base-devel \\\n  rust \\\n  cmake \\\n  mesa \\\n  libx11 \\\n  libxfixes \\\n  libxcb \\\n  libxkbcommon \\\n  fontconfig \\\n  freetype2 \\\n  openxr \\\n  jsoncpp \\\n  libffi \\\n  wayland \\\n  expat \\\n  libxml2 \\\n  libxau \\\n  bzip2 \\\n  xz \\\n  libpng \\\n  brotli \\\n  pcre2 \\\n  glib2 \\\n  libdrm\n  \u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFedora\u003c/summary\u003e \n  \u003cpre\u003e\u003ccode class=\"language-bash\"\u003e\nsudo dnf group install development-tools \u0026\u0026 \\\nsudo dnf install -y \\\n  cargo \\\n  cmake \\\n  mesa-libEGL-devel \\\n  mesa-libGLES-devel \\\n  libX11-devel \\\n  libXfixes-devel \\\n  libxcb-devel \\\n  libxkbcommon-devel \\\n  fontconfig-devel \\\n  freetype-devel \\\n  harfbuzz-devel \\\n  graphite2-devel \\\n  openxr-devel \\ \n  wayland-devel \\\n  jsoncpp-devel \\\n  libdrm-devel \\\n  expat-devel \\\n  xcb-util-devel \\\n  libxml2-devel \\\n  libXau-devel \\\n  bzip2-devel \\\n  xz-devel \\\n  libpng-devel \\\n  brotli-devel \\\n  pcre2-devel \\\n  glib2-devel\n  \u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n## Installation\n\nMore detailed instructions and walkthroughs are provided at https://www.stardustxr.org\n\nThe [Terra Repository](https://terra.fyralabs.com/) is required, and comes pre-installed with [Ultramarine Linux](https://ultramarine-linux.org/). Other Fedora Editions and derivatives can directly install terra-release:\n\n```bash\nsudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release\n```\n\nFor a full installation of the Stardust XR server *and* a selected group of clients, run:\n\n```bash\nsudo dnf group install stardust-xr\n```\n\n## Manual Build\nWe've provided a manual installation script [here](https://github.com/cyberneticmelon/usefulscripts/blob/main/stardustxr_setup.sh) 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.\n\nAfter cloning the repository\n```bash\ncargo build\n```\n\n## Usage\n\u003e [!NOTE]\n\u003e For help with setting up an XR headset on linux, visit https://stardustxr.org/docs/get-started/setup-openxr\n\n\nThe **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](https://github.com/StardustXR/flatland), which allows normal 2D apps to run in Stardust, [Protostar](https://github.com/StardustXR/protostar), which contains Hexagon Launcher, an app launcher menu, and [Black Hole](https://github.com/StardustXR/black-hole) to quickly tuck away your objects and apps (kind of like desktop peek on Windows).\n\nFirst, 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.)\n\nIf 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.\n\n\u003e [!IMPORTANT]\n\u003e [Flatland](https://github.com/StardustXR/flatland) must be running for 2D apps to launch. \n\n### Startup Script\nA startup script can be created at `~/.config/stardust/startup` that will launch specified settings and clients/applications, an example of which is shown [here](https://github.com/cyberneticmelon/usefulscripts/blob/main/startup). If you used the [installation script](https://github.com/cyberneticmelon/usefulscripts/blob/main/stardustxr_setup.sh), 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](https://github.com/StardustXR/gravity) client to specify X Y and Z co-ordinates).\n\n### Flatscreen Navigation\nA video guide showcasing flatscreen controls is available [here](https://www.youtube.com/watch?v=JCYecSlKlDI)  \n\nTo move around, hold down `Shift + W A S D`, with `Q` for moving down and `E` for moving up.\n![wasd](https://github.com/StardustXR/website/blob/main/static/img/updated_flat_wasd.GIF)\n\nTo look around, hold down `Shift + Right` Click while moving the mouse. \n![updated_look](https://github.com/StardustXR/website/blob/main/static/img/updated_flat_look.GIF)\n\nTo drag applications out of the app launcher, hold down `Shift + ~`\n![updated_drag](https://github.com/StardustXR/website/blob/main/static/img/updated_flat_drag.GIF)\n\n### XR Navigation\nA video guide showcasing XR controls is available [here](https://www.youtube.com/watch?v=RbxFq6JjliA)  \n\n**Quest 3 Hand tracking**:\nPinch to drag and drop, grasp with full hand for grabbing, point and click with pointer finger to click or pinch from a distance  \n\n![hand_pinching](https://github.com/StardustXR/website/blob/main/static/img/hand_pinching.GIF)\n\n**Quest 3 Controller**:\nGrab with the grip buttons, click by touching the tip of the cones or by using the trigger from a distance  \n\n![controller_click](https://github.com/StardustXR/website/blob/main/static/img/controller_click.GIF)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstardustxr%2Fserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstardustxr%2Fserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstardustxr%2Fserver/lists"}