Files
website/assets/js/ddb4e1f1.e3247fb7.js
github-actions[bot] 54e54f641b deploy: 1f4e00b4be
2024-08-22 07:42:59 +00:00

1 line
7.8 KiB
JavaScript

"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[948],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},i=Object.keys(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),p=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(r),g=n,d=u["".concat(l,".").concat(g)]||u[g]||m[g]||i;return r?a.createElement(d,o(o({ref:t},c),{},{components:r})):a.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:n,o[1]=s;for(var p=2;p<i;p++)o[p]=r[p];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}g.displayName="MDXCreateElement"},5207:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=r(8168),n=(r(6540),r(5680));const i={sidebar_position:1},o="Overview",s={unversionedId:"overview",id:"overview",title:"Overview",description:"Stardust XR (formerly known as Stardust) is an XR display server designed for Linux-based systems.",source:"@site/docs/01-overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,editUrl:"https://github.com/StardustXR/website/edit/main/docs/01-overview.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Tutorial",permalink:"/docs/getting-started/tutorial"}},l={},p=[{value:"Priorities",id:"priorities",level:2},{value:"Architecture",id:"architecture",level:2},{value:"Projects &amp; Components",id:"projects--components",level:2}],c={toc:p},u="wrapper";function m(e){let{components:t,...i}=e;return(0,n.yg)(u,(0,a.A)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"overview"},"Overview"),(0,n.yg)("p",null,"Stardust XR ",(0,n.yg)("em",{parentName:"p"},"(formerly known as Stardust)")," is an XR ",(0,n.yg)("a",{parentName:"p",href:"https://itsfoss.com/display-server"},"display server")," designed for Linux-based systems",".",(0,n.yg)("br",null),"\nUnlike traditional display servers that focus on 2D screens, Stardust XR introduces new conventions to utilize unbounded 3D space in virtual or real environments."),(0,n.yg)("h2",{id:"priorities"},"Priorities"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},(0,n.yg)("strong",{parentName:"p"},"3D Environment Focus"),": While supporting 2D clients through the Wayland protocol, Stardust XR primarily aims to create and manage 3D environments.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},(0,n.yg)("strong",{parentName:"p"},"Standard Interfaces"),": Utilizes Wayland and OpenXR for 2D and XR app integration.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},(0,n.yg)("strong",{parentName:"p"},"Stardust Protocol"),": Implements a special protocol for:"),(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"Creating virtual objects"),(0,n.yg)("li",{parentName:"ul"},"Developing 3D UIs around 2D apps (Panel Shells)"),(0,n.yg)("li",{parentName:"ul"},"Handling data as Items that can represent files, Wayland surfaces, etc."))),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},(0,n.yg)("strong",{parentName:"p"},"Personal Device Interaction"),": Focuses on individual user interactions rather than collaborative 3D spaces.")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("p",{parentName:"li"},(0,n.yg)("strong",{parentName:"p"},"Flexible Object Interaction"),": Users can choose objects that best suit their current scenario, with easy setup for default configurations."))),(0,n.yg)("h2",{id:"architecture"},"Architecture"),(0,n.yg)("p",null,(0,n.yg)("img",{alt:"simplified architecture diagram",src:r(7308).A,width:"6458",height:"1512"})),(0,n.yg)("h2",{id:"projects--components"},"Projects & Components"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/telescope"},(0,n.yg)("strong",{parentName:"a"},"telescope")),": bundle most used components to have a demo environment set up"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/server"},(0,n.yg)("strong",{parentName:"a"},"server")),": Reverence implementation of the StardustXR server (similar to wayland's ",(0,n.yg)("inlineCode",{parentName:"li"},"weston"),")"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/core"},(0,n.yg)("strong",{parentName:"a"},"core lib")),": Rust crates and schemas for connecting stardust server and client"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/website"},(0,n.yg)("strong",{parentName:"a"},"website")),": The location where documentation is done and the website is generated from"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/protostar"},(0,n.yg)("strong",{parentName:"a"},"protostar")),": Demo application launcher (like ",(0,n.yg)("inlineCode",{parentName:"li"},"nwg-drawer"),", ...)"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/black-hole"},(0,n.yg)("strong",{parentName:"a"},"black hole")),": Spatial storage for stardust xr"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/gravity"},(0,n.yg)("strong",{parentName:"a"},"gravity")),': "Utility to launch apps and stardust clients spatially" ?!? is it an ap lancher like protostar? I could not got it to work ...'),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/magnetar"},(0,n.yg)("strong",{parentName:"a"},"magnetar")),": Workspaces client"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/atmosphere"},(0,n.yg)("strong",{parentName:"a"},"atmosphere")),": Environment, homespace, and setup client"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/orbit"},(0,n.yg)("strong",{parentName:"a"},"orbit")),": Simple Panel Item UI ?!?"),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/StardustXR/comet"},(0,n.yg)("strong",{parentName:"a"},"comet")),": Annotate things?!?")))}m.isMDXComponent=!0},7308:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/simplified-architecture-5e703d980563124e244f2ea57c30c715.png"}}]);