From 41218d680439c6c5c0bccdeaf4941a90ce338158 Mon Sep 17 00:00:00 2001 From: Nova Date: Fri, 30 Sep 2022 14:05:12 -0400 Subject: [PATCH] Update for rust --- .../stardust-protocol/_category_.json | 0 .../stardust-protocol/client/_category_.json | 0 .../client/initial-connection.md | 0 .../stardust-protocol/protocol.md | 0 .../stardust-protocol/server/_category_.json | 0 .../server/objects/_category_.json | 0 .../server/objects/drawable.md | 0 .../stardust-protocol/server/objects/field.md | 0 .../stardust-protocol/server/objects/hmd.md | 0 .../stardust-protocol/server/objects/input.md | 0 .../stardust-protocol/server/objects/root.md | 0 .../server/objects/spatial.md | 0 .../stardust-protocol/server/types/Model.md | 0 .../stardust-protocol/server/types/Node.md | 0 .../stardust-protocol/server/types/Spatial.md | 0 .../stardust-protocol/server/types/Zone.md | 0 .../server/types/_category_.json | 0 .../server/types/field/BoxField.md | 0 .../server/types/field/CylinderField.md | 0 .../server/types/field/Field.md | 0 .../server/types/field/SphereField.md | 0 .../server/types/field/_category_.json | 0 .../server/types/input/InputHandler.md | 0 .../server/types/input/InputMethod.md | 0 .../server/types/input/_category_.json | 0 .../types/input/inputtypes/HandInput.md | 0 .../types/input/inputtypes/PointerInput.md | 0 .../types/input/inputtypes/_category_.json | 0 .../server/types/item/_category_.json | 0 docs/getting-started/install.md | 127 +++++------------- docs/getting-started/starting.md | 19 ++- docs/getting-started/tech-overview.md | 6 +- src/components/HomepageFeatures.js | 2 +- 33 files changed, 53 insertions(+), 101 deletions(-) rename {docs => docs-archive}/stardust-protocol/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/client/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/client/initial-connection.md (100%) rename {docs => docs-archive}/stardust-protocol/protocol.md (100%) rename {docs => docs-archive}/stardust-protocol/server/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/drawable.md (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/field.md (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/hmd.md (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/input.md (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/root.md (100%) rename {docs => docs-archive}/stardust-protocol/server/objects/spatial.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/Model.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/Node.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/Spatial.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/Zone.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/types/field/BoxField.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/field/CylinderField.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/field/Field.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/field/SphereField.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/field/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/InputHandler.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/InputMethod.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/inputtypes/HandInput.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/inputtypes/PointerInput.md (100%) rename {docs => docs-archive}/stardust-protocol/server/types/input/inputtypes/_category_.json (100%) rename {docs => docs-archive}/stardust-protocol/server/types/item/_category_.json (100%) diff --git a/docs/stardust-protocol/_category_.json b/docs-archive/stardust-protocol/_category_.json similarity index 100% rename from docs/stardust-protocol/_category_.json rename to docs-archive/stardust-protocol/_category_.json diff --git a/docs/stardust-protocol/client/_category_.json b/docs-archive/stardust-protocol/client/_category_.json similarity index 100% rename from docs/stardust-protocol/client/_category_.json rename to docs-archive/stardust-protocol/client/_category_.json diff --git a/docs/stardust-protocol/client/initial-connection.md b/docs-archive/stardust-protocol/client/initial-connection.md similarity index 100% rename from docs/stardust-protocol/client/initial-connection.md rename to docs-archive/stardust-protocol/client/initial-connection.md diff --git a/docs/stardust-protocol/protocol.md b/docs-archive/stardust-protocol/protocol.md similarity index 100% rename from docs/stardust-protocol/protocol.md rename to docs-archive/stardust-protocol/protocol.md diff --git a/docs/stardust-protocol/server/_category_.json b/docs-archive/stardust-protocol/server/_category_.json similarity index 100% rename from docs/stardust-protocol/server/_category_.json rename to docs-archive/stardust-protocol/server/_category_.json diff --git a/docs/stardust-protocol/server/objects/_category_.json b/docs-archive/stardust-protocol/server/objects/_category_.json similarity index 100% rename from docs/stardust-protocol/server/objects/_category_.json rename to docs-archive/stardust-protocol/server/objects/_category_.json diff --git a/docs/stardust-protocol/server/objects/drawable.md b/docs-archive/stardust-protocol/server/objects/drawable.md similarity index 100% rename from docs/stardust-protocol/server/objects/drawable.md rename to docs-archive/stardust-protocol/server/objects/drawable.md diff --git a/docs/stardust-protocol/server/objects/field.md b/docs-archive/stardust-protocol/server/objects/field.md similarity index 100% rename from docs/stardust-protocol/server/objects/field.md rename to docs-archive/stardust-protocol/server/objects/field.md diff --git a/docs/stardust-protocol/server/objects/hmd.md b/docs-archive/stardust-protocol/server/objects/hmd.md similarity index 100% rename from docs/stardust-protocol/server/objects/hmd.md rename to docs-archive/stardust-protocol/server/objects/hmd.md diff --git a/docs/stardust-protocol/server/objects/input.md b/docs-archive/stardust-protocol/server/objects/input.md similarity index 100% rename from docs/stardust-protocol/server/objects/input.md rename to docs-archive/stardust-protocol/server/objects/input.md diff --git a/docs/stardust-protocol/server/objects/root.md b/docs-archive/stardust-protocol/server/objects/root.md similarity index 100% rename from docs/stardust-protocol/server/objects/root.md rename to docs-archive/stardust-protocol/server/objects/root.md diff --git a/docs/stardust-protocol/server/objects/spatial.md b/docs-archive/stardust-protocol/server/objects/spatial.md similarity index 100% rename from docs/stardust-protocol/server/objects/spatial.md rename to docs-archive/stardust-protocol/server/objects/spatial.md diff --git a/docs/stardust-protocol/server/types/Model.md b/docs-archive/stardust-protocol/server/types/Model.md similarity index 100% rename from docs/stardust-protocol/server/types/Model.md rename to docs-archive/stardust-protocol/server/types/Model.md diff --git a/docs/stardust-protocol/server/types/Node.md b/docs-archive/stardust-protocol/server/types/Node.md similarity index 100% rename from docs/stardust-protocol/server/types/Node.md rename to docs-archive/stardust-protocol/server/types/Node.md diff --git a/docs/stardust-protocol/server/types/Spatial.md b/docs-archive/stardust-protocol/server/types/Spatial.md similarity index 100% rename from docs/stardust-protocol/server/types/Spatial.md rename to docs-archive/stardust-protocol/server/types/Spatial.md diff --git a/docs/stardust-protocol/server/types/Zone.md b/docs-archive/stardust-protocol/server/types/Zone.md similarity index 100% rename from docs/stardust-protocol/server/types/Zone.md rename to docs-archive/stardust-protocol/server/types/Zone.md diff --git a/docs/stardust-protocol/server/types/_category_.json b/docs-archive/stardust-protocol/server/types/_category_.json similarity index 100% rename from docs/stardust-protocol/server/types/_category_.json rename to docs-archive/stardust-protocol/server/types/_category_.json diff --git a/docs/stardust-protocol/server/types/field/BoxField.md b/docs-archive/stardust-protocol/server/types/field/BoxField.md similarity index 100% rename from docs/stardust-protocol/server/types/field/BoxField.md rename to docs-archive/stardust-protocol/server/types/field/BoxField.md diff --git a/docs/stardust-protocol/server/types/field/CylinderField.md b/docs-archive/stardust-protocol/server/types/field/CylinderField.md similarity index 100% rename from docs/stardust-protocol/server/types/field/CylinderField.md rename to docs-archive/stardust-protocol/server/types/field/CylinderField.md diff --git a/docs/stardust-protocol/server/types/field/Field.md b/docs-archive/stardust-protocol/server/types/field/Field.md similarity index 100% rename from docs/stardust-protocol/server/types/field/Field.md rename to docs-archive/stardust-protocol/server/types/field/Field.md diff --git a/docs/stardust-protocol/server/types/field/SphereField.md b/docs-archive/stardust-protocol/server/types/field/SphereField.md similarity index 100% rename from docs/stardust-protocol/server/types/field/SphereField.md rename to docs-archive/stardust-protocol/server/types/field/SphereField.md diff --git a/docs/stardust-protocol/server/types/field/_category_.json b/docs-archive/stardust-protocol/server/types/field/_category_.json similarity index 100% rename from docs/stardust-protocol/server/types/field/_category_.json rename to docs-archive/stardust-protocol/server/types/field/_category_.json diff --git a/docs/stardust-protocol/server/types/input/InputHandler.md b/docs-archive/stardust-protocol/server/types/input/InputHandler.md similarity index 100% rename from docs/stardust-protocol/server/types/input/InputHandler.md rename to docs-archive/stardust-protocol/server/types/input/InputHandler.md diff --git a/docs/stardust-protocol/server/types/input/InputMethod.md b/docs-archive/stardust-protocol/server/types/input/InputMethod.md similarity index 100% rename from docs/stardust-protocol/server/types/input/InputMethod.md rename to docs-archive/stardust-protocol/server/types/input/InputMethod.md diff --git a/docs/stardust-protocol/server/types/input/_category_.json b/docs-archive/stardust-protocol/server/types/input/_category_.json similarity index 100% rename from docs/stardust-protocol/server/types/input/_category_.json rename to docs-archive/stardust-protocol/server/types/input/_category_.json diff --git a/docs/stardust-protocol/server/types/input/inputtypes/HandInput.md b/docs-archive/stardust-protocol/server/types/input/inputtypes/HandInput.md similarity index 100% rename from docs/stardust-protocol/server/types/input/inputtypes/HandInput.md rename to docs-archive/stardust-protocol/server/types/input/inputtypes/HandInput.md diff --git a/docs/stardust-protocol/server/types/input/inputtypes/PointerInput.md b/docs-archive/stardust-protocol/server/types/input/inputtypes/PointerInput.md similarity index 100% rename from docs/stardust-protocol/server/types/input/inputtypes/PointerInput.md rename to docs-archive/stardust-protocol/server/types/input/inputtypes/PointerInput.md diff --git a/docs/stardust-protocol/server/types/input/inputtypes/_category_.json b/docs-archive/stardust-protocol/server/types/input/inputtypes/_category_.json similarity index 100% rename from docs/stardust-protocol/server/types/input/inputtypes/_category_.json rename to docs-archive/stardust-protocol/server/types/input/inputtypes/_category_.json diff --git a/docs/stardust-protocol/server/types/item/_category_.json b/docs-archive/stardust-protocol/server/types/item/_category_.json similarity index 100% rename from docs/stardust-protocol/server/types/item/_category_.json rename to docs-archive/stardust-protocol/server/types/item/_category_.json diff --git a/docs/getting-started/install.md b/docs/getting-started/install.md index de376d8f..98500355 100644 --- a/docs/getting-started/install.md +++ b/docs/getting-started/install.md @@ -4,104 +4,51 @@ sidebar_position: 2 # Installation -As Stardust is a display server, it is split into multiple parts. Make sure to install the parts in order to avoid issues, and don't be afraid to ask questions in the Matrix or Discord servers! +As Stardust is a display server, it is split into multiple parts. Don't be afraid to ask questions in the [Matrix](https://matrix.to/#/#stardustxr:matrix.org) or [Discord](https://discord.gg/A9w7fKE) servers! -1. [libstardustxr client/server/fusion](#libstardustxr-server-client-and-fusion) -2. [stardust-xr](#stardust-xr-reference-server) -3. Other clients (such as the [tests](#stardust-client-tests)) +## [stardust-xr](https://github.com/StardustXR/stardust-xr-server) (reference server) -## [libstardustxr](https://github.com/StardustXR/libstardustxr) (server, client, and fusion) - -### Packages -AUR: `libstardustxr-git` and `libstardustxr-fusion-git` + + ### Build system -1. Meson >= 0.55.0 -2. Ninja (tested on 1.10.2) +1. Cargo + +### Build dependencies +1. Flatbuffers >= 2.0.8 +2. EGL+GLES 3.2 +3. GLX+Xlib +4. fontconfig +5. dlopen +6. libseat (such as [seatd](https://sr.ht/~kennylevinsen/seatd/)) +7. wayland +8. OpenXR Loader (required even if run in flatscreen mode, generally just named `openxr`) + +### Download +```bash +git clone https://github.com/StardustXR/stardust-xr-server.git +cd stardust-xr-server +``` + +### Build +```bash +cargo build +``` + +### Install +```bash +cargo install +``` + +## [Flatland](https://github.com/StardustXR/flatland) (Simple simula-like panel UI client for 2D app interaction) + +### Build system +1. Cargo ### Build dependencies 1. Flatbuffers >= 1.12.0 -### Download -```bash -git clone https://github.com/StardustXR/libstardustxr.git -cd libstardustxr -``` - -### Build -```bash -meson build --prefix=/usr -cd build -ninja -``` - ### Install ```bash -ninja install -``` - -## [stardust-xr](https://github.com/StardustXR/stardust-xr) (reference server) - -### Packages -AUR: `stardust-xr-git` - -### Build system -1. Meson >= 0.55.0 -2. Ninja (tested on 1.10.2) -3. CMake (tested on 3.21.1) - -### Build dependencies -1. [libstardustxr](#libstardustxr-server-client-and-fusion) -2. Flatbuffers >= 1.12.0 -3. EGL+GLES 3.2 -4. GLX+Xlib -5. fontconfig -6. dlopen -7. libseat (such as [seatd](https://sr.ht/~kennylevinsen/seatd/)) -8. wayland -9. xwayland -10. OpenXR Loader (required even if run in flatscreen mode, generally just named `openxr`) -11. libxkbcommon-x11 - -### Download -```bash -git clone https://github.com/StardustXR/stardust-xr.git -cd stardust-xr -``` - -### Build -```bash -meson build --prefix=/usr -cd build -ninja -``` - -### Install -```bash -meson install --skip-subprojects -``` - - -## [Stardust Client Tests](https://github.com/StardustXR/stardust-client-tests) - -### Build system -1. Meson >= 0.55.0 -2. Ninja (tested on 1.10.2) - -### Build dependencies -1. [libstardustxr](#libstardustxr-server-client-and-fusion) -2. Flatbuffers >= 1.12.0 -3. sdbus-cpp - -### Download -```bash -git clone https://github.com/StardustXR/stardust-client-tests.git -cd stardust-client-tests -``` - -### Build -```bash -meson build --prefix=/usr -cd build -ninja +cargo install flatland ``` diff --git a/docs/getting-started/starting.md b/docs/getting-started/starting.md index 47c4cdcc..3912c98a 100644 --- a/docs/getting-started/starting.md +++ b/docs/getting-started/starting.md @@ -4,7 +4,7 @@ sidebar_position: 3 # Starting -First, try running `stardustxr` in a terminal window. If a headset is plugged in and OpenXR is working no window will show up. However, the headset should show the same things as the window that opens: +First, try running `stardust-xr-server` in a terminal window. If a headset is plugged in and OpenXR is working no window will show up. However, the headset should show the same things as the window that opens: ![A pitch black void with a single bleach white hand in the middle](/img/docs/run/xr_mode_windowed_blank.png) @@ -20,11 +20,16 @@ Flatscreen mode when `~/.config/stardust/skytex.hdr` is [Zhengyang Gate](https:/ ### Help screen ``` -Stardust XR -Usage: stardustxr [OPTIONS] +stardust-xr-server 0.10.0 +Nova King +Stardust XR reference display server -Options: - -h,--help Print this help message and exit - -F,--flatscreen Run Stardust in flatscreen mode - --field-debug Draw translucent meshes around fields +USAGE: + stardust-xr-server [OPTIONS] + +OPTIONS: + -f, --flatscreen Force flatscreen mode and use the mouse pointer as a 3D pointer + -h, --help Print help information + -o, --overlay Run Stardust XR as an overlay with given priority + -V, --version Print version information ``` diff --git a/docs/getting-started/tech-overview.md b/docs/getting-started/tech-overview.md index f7c3033a..cf1fd2a8 100644 --- a/docs/getting-started/tech-overview.md +++ b/docs/getting-started/tech-overview.md @@ -7,7 +7,7 @@ sidebar_position: 4 ## Server The server is what renders all the meshes of each client, takes in input from input methods, and spits out input to input handlers according to the SUIS (Spatial Universal Interaction System). As well, the server is going to be part Wayland compositor and OpenXR runtime so all 2D and XR applications can be used together at once (if the hardware allows). It is the glue of Stardust, allowing any number of clients and apps to work in harmony while allowing the user full control in an intuitive way. -As new technologies come out, keeping the same server and trying to progressively upgrade it may lead to bloat and issues, so the protocol is designed to make creating new servers possible without too much hassle. Old interfaces can be deprecated without breaking the overall system, and new interfaces can be added if needed due to the object-oriented design. The design is highly inspired by game engines, however the reference server is made in StereoKit due to it being more optimal. +As new technologies come out, keeping the same server and trying to progressively upgrade it may lead to bloat and issues, so the protocol is designed to make creating new servers possible without too much hassle or to make servers modular. Old interfaces can be deprecated without breaking the overall system, and new interfaces can be added if needed due to the object-oriented design. The design is highly inspired by game engines, however the reference server is made in StereoKit due to it being more optimal. ### Reference Server Stardust has a reference server, but unlike other display servers this reference server is just as functional as any other Stardust server would be, because all the functionality is implemented in the clients. The server is just the glue. @@ -30,10 +30,10 @@ The reference server uses StereoKit as its backend for many reasons: - Uses OpenXR as its backend out of the box ## IPC -The Stardust XR IPC uses Unix domain sockets for communication. +The Stardust XR IPC uses Unix domain sockets for communication and a protocol based on flatbuffers/flexbuffers. ## [Protocol](stardust-protocol/protocol.md) The Stardust XR protocol is object-oriented, depending on a scenegraph on the server end and scenegraph or functionally equivalent structure on the client end. This allows easier implementation of the protocol while still remaining fast and reliable. ## Clients -The clients tell the server what models to draw, where they would like to accept input in, etc. Stardust clients are much more suited to widgets or user interfaces to 2D/XR apps. However, if a more fully featured application works better in Stardust it can do that too. \ No newline at end of file +The clients tell the server what models to draw, where they would like to accept input in, etc. Stardust clients are much more suited to widgets or user interfaces to 2D/XR apps. \ No newline at end of file diff --git a/src/components/HomepageFeatures.js b/src/components/HomepageFeatures.js index b4f9221d..2a9ad7fc 100644 --- a/src/components/HomepageFeatures.js +++ b/src/components/HomepageFeatures.js @@ -8,7 +8,7 @@ const FeatureList = [ image: '/img/icon.gif', description: ( <> - Stardust allows you to make XR widgets or interfaces and run them among others. + Stardust allows developers to make XR widgets or interfaces and run them among others. You don't have to make a whole system UI, just a few pieces. ),