diff --git a/404.html b/404.html index bdfafb5c..881c21d5 100644 --- a/404.html +++ b/404.html @@ -10,13 +10,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/8c065866.8b418540.js b/assets/js/8c065866.d93f4501.js similarity index 99% rename from assets/js/8c065866.8b418540.js rename to assets/js/8c065866.d93f4501.js index ff78e5c7..90512fd3 100644 --- a/assets/js/8c065866.8b418540.js +++ b/assets/js/8c065866.d93f4501.js @@ -1 +1 @@ -"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[545],{5680:(e,t,n)=>{n.d(t,{xA:()=>h,yg:()=>y});var i=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,y=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?i.createElement(y,r(r({ref:t},h),{},{components:n})):i.createElement(y,r({ref:t},h))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(8168),a=(n(6540),n(5680));const o={title:"Stardust XR Philosophy",author:"Cyberneticmelon"},r=void 0,s={permalink:"/blog/2025/04/04/Stardust-XR-Philosophy",source:"@site/blog/2025-04-04-Stardust-XR-Philosophy.md",title:"Stardust XR Philosophy",description:"-----",date:"2025-04-04T00:00:00.000Z",formattedDate:"April 4, 2025",tags:[],readingTime:3.785,hasTruncateMarker:!1,authors:[{name:"Cyberneticmelon"}],frontMatter:{title:"Stardust XR Philosophy",author:"Cyberneticmelon"}},l={authorsImageUrls:[void 0]},c=[],h={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,i.A)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("hr",null),(0,a.yg)("h1",{id:"complexity--difficulty"},"Complexity \u2260 Difficulty"),(0,a.yg)("p",null,"In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\nin a way that is more understandable.\nThe average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers\nor more technically inclined people."),(0,a.yg)("p",null,"High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\nyou're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments."),(0,a.yg)("p",null,"You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability\nthat we aim to harness with Stardust XR's design philosophy, by focusing in on direct interactions that map to underlying functionality. "),(0,a.yg)("h1",{id:"direct-interaction-vs-indirect-action"},"Direct Interaction Vs Indirect Action"),(0,a.yg)("p",null,"With something like indirect action such as a touch screen on a phone or tablet, you're limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you're opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR's design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"git-bonsai",src:n(8648).A,width:"837",height:"635"}),"\n",(0,a.yg)("em",{parentName:"p"},"git-bonsai, a prototype design for an intuitive spatial github client")),(0,a.yg)("p",null,"A virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do."),(0,a.yg)("p",null,"Part of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\ncan utilize."),(0,a.yg)("h1",{id:"form-flexibility-principle"},"Form Flexibility Principle"),(0,a.yg)("p",null,"With a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you're limited to touch and multi-touch; in XR,\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction."),(0,a.yg)("p",null,"The more interaction bandwidth you have to offer, the more customizability is not just something that ",(0,a.yg)("em",{parentName:"p"},"can")," be done, it's something that\n",(0,a.yg)("em",{parentName:"p"},"must")," be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility."),(0,a.yg)("p",null,"When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential."),(0,a.yg)("p",null,"Stardust XR is that system \ud83c\udf49 "),(0,a.yg)("div",{style:{textAlign:"center"}},(0,a.yg)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/v2WblwbaLaA",frameBorder:0,allow:"autoplay; encrypted-media",allowFullScreen:!0,style:{maxWidth:"100%",aspectRatio:"16/9"}})),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/sponsors/technobaboo"},"Become a sponsor")," and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/StardustXR"},"github")," page for more information."))}d.isMDXComponent=!0},8648:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/gitbonsai-abb8d25419838d06eff39b8c06928707.bin"}}]); \ No newline at end of file +"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[545],{5680:(e,t,n)=>{n.d(t,{xA:()=>h,yg:()=>y});var i=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,y=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?i.createElement(y,r(r({ref:t},h),{},{components:n})):i.createElement(y,r({ref:t},h))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(8168),a=(n(6540),n(5680));const o={title:"Stardust XR Philosophy",author:"Cyberneticmelon"},r=void 0,s={permalink:"/blog/2025/04/04/Stardust-XR-Philosophy",source:"@site/blog/2025-04-04-Stardust-XR-Philosophy.md",title:"Stardust XR Philosophy",description:"-----",date:"2025-04-04T00:00:00.000Z",formattedDate:"April 4, 2025",tags:[],readingTime:3.785,hasTruncateMarker:!1,authors:[{name:"Cyberneticmelon"}],frontMatter:{title:"Stardust XR Philosophy",author:"Cyberneticmelon"}},l={authorsImageUrls:[void 0]},c=[],h={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,i.A)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("hr",null),(0,a.yg)("h1",{id:"complexity--difficulty"},"Complexity \u2260 Difficulty"),(0,a.yg)("p",null,"In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\nin a way that is more understandable.\nThe average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers\nor more technically inclined people."),(0,a.yg)("p",null,"High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\nyou're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments."),(0,a.yg)("p",null,"You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability\nthat we aim to harness with Stardust XR's design philosophy, by focusing in on direct interactions that map to underlying functionality. "),(0,a.yg)("h1",{id:"direct-interaction-vs-indirect-action"},"Direct Interaction Vs Indirect Action"),(0,a.yg)("p",null,"With something like indirect action such as a touch screen on a phone or tablet, you're limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you're opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR's design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"git-bonsai",src:n(8648).A,width:"837",height:"635"}),"\n",(0,a.yg)("em",{parentName:"p"},"git-bonsai, a prototype design for an intuitive spatial github client")),(0,a.yg)("p",null,"A virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do."),(0,a.yg)("p",null,"Part of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\ncan utilize."),(0,a.yg)("h1",{id:"form-flexibility-principle"},"Form Flexibility Principle"),(0,a.yg)("p",null,"With a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you're limited to touch and multi-touch; in XR,\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction."),(0,a.yg)("p",null,"The more interaction bandwidth you have to offer, the more customizability is not just something that ",(0,a.yg)("em",{parentName:"p"},"can")," be done, it's something that\n",(0,a.yg)("em",{parentName:"p"},"must")," be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility."),(0,a.yg)("p",null,"When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential."),(0,a.yg)("p",null,"Stardust XR is that system \ud83c\udf49 "),(0,a.yg)("div",{style:{textAlign:"center"}},(0,a.yg)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/v2WblwbaLaA",frameBorder:0,allow:"autoplay; encrypted-media",allowFullScreen:!0,style:{maxWidth:"100%",aspectRatio:"16/9"}})),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/sponsors/technobaboo"},"Become a sponsor")," and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/StardustXR"},"github")," page for more information."))}d.isMDXComponent=!0},8648:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/gitbonsai-abb8d25419838d06eff39b8c06928707.bin"}}]); \ No newline at end of file diff --git a/assets/js/99ca928b.0a432fe5.js b/assets/js/99ca928b.bdfe8af2.js similarity index 99% rename from assets/js/99ca928b.0a432fe5.js rename to assets/js/99ca928b.bdfe8af2.js index 742e3bd5..de8f9f25 100644 --- a/assets/js/99ca928b.0a432fe5.js +++ b/assets/js/99ca928b.bdfe8af2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[58],{5680:(e,t,n)=>{n.d(t,{xA:()=>h,yg:()=>y});var i=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,y=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?i.createElement(y,r(r({ref:t},h),{},{components:n})):i.createElement(y,r({ref:t},h))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(8168),a=(n(6540),n(5680));const o={title:"Stardust XR Philosophy",author:"Cyberneticmelon"},r=void 0,s={permalink:"/blog/2025/04/04/Stardust-XR-Philosophy",source:"@site/blog/2025-04-04-Stardust-XR-Philosophy.md",title:"Stardust XR Philosophy",description:"-----",date:"2025-04-04T00:00:00.000Z",formattedDate:"April 4, 2025",tags:[],readingTime:3.785,hasTruncateMarker:!1,authors:[{name:"Cyberneticmelon"}],frontMatter:{title:"Stardust XR Philosophy",author:"Cyberneticmelon"}},l={authorsImageUrls:[void 0]},c=[],h={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,i.A)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("hr",null),(0,a.yg)("h1",{id:"complexity--difficulty"},"Complexity \u2260 Difficulty"),(0,a.yg)("p",null,"In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\nin a way that is more understandable.\nThe average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers\nor more technically inclined people."),(0,a.yg)("p",null,"High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\nyou're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments."),(0,a.yg)("p",null,"You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability\nthat we aim to harness with Stardust XR's design philosophy, by focusing in on direct interactions that map to underlying functionality. "),(0,a.yg)("h1",{id:"direct-interaction-vs-indirect-action"},"Direct Interaction Vs Indirect Action"),(0,a.yg)("p",null,"With something like indirect action such as a touch screen on a phone or tablet, you're limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you're opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR's design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"git-bonsai",src:n(8648).A,width:"837",height:"635"}),"\n",(0,a.yg)("em",{parentName:"p"},"git-bonsai, a prototype design for an intuitive spatial github client")),(0,a.yg)("p",null,"A virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do."),(0,a.yg)("p",null,"Part of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\ncan utilize."),(0,a.yg)("h1",{id:"form-flexibility-principle"},"Form Flexibility Principle"),(0,a.yg)("p",null,"With a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you're limited to touch and multi-touch; in XR,\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction."),(0,a.yg)("p",null,"The more interaction bandwidth you have to offer, the more customizability is not just something that ",(0,a.yg)("em",{parentName:"p"},"can")," be done, it's something that\n",(0,a.yg)("em",{parentName:"p"},"must")," be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility."),(0,a.yg)("p",null,"When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential."),(0,a.yg)("p",null,"Stardust XR is that system \ud83c\udf49 "),(0,a.yg)("div",{style:{textAlign:"center"}},(0,a.yg)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/v2WblwbaLaA",frameBorder:0,allow:"autoplay; encrypted-media",allowFullScreen:!0,style:{maxWidth:"100%",aspectRatio:"16/9"}})),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/sponsors/technobaboo"},"Become a sponsor")," and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/StardustXR"},"github")," page for more information."))}d.isMDXComponent=!0},8648:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/gitbonsai-abb8d25419838d06eff39b8c06928707.bin"}}]); \ No newline at end of file +"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[58],{5680:(e,t,n)=>{n.d(t,{xA:()=>h,yg:()=>y});var i=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},h=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},p=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(n),p=a,y=u["".concat(l,".").concat(p)]||u[p]||d[p]||o;return n?i.createElement(y,r(r({ref:t},h),{},{components:n})):i.createElement(y,r({ref:t},h))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,r=new Array(o);r[0]=p;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,r[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=n(8168),a=(n(6540),n(5680));const o={title:"Stardust XR Philosophy",author:"Cyberneticmelon"},r=void 0,s={permalink:"/blog/2025/04/04/Stardust-XR-Philosophy",source:"@site/blog/2025-04-04-Stardust-XR-Philosophy.md",title:"Stardust XR Philosophy",description:"-----",date:"2025-04-04T00:00:00.000Z",formattedDate:"April 4, 2025",tags:[],readingTime:3.785,hasTruncateMarker:!1,authors:[{name:"Cyberneticmelon"}],frontMatter:{title:"Stardust XR Philosophy",author:"Cyberneticmelon"}},l={authorsImageUrls:[void 0]},c=[],h={toc:c},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,i.A)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("hr",null),(0,a.yg)("h1",{id:"complexity--difficulty"},"Complexity \u2260 Difficulty"),(0,a.yg)("p",null,"In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\nin a way that is more understandable.\nThe average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers\nor more technically inclined people."),(0,a.yg)("p",null,"High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\nyou're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments."),(0,a.yg)("p",null,"You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability\nthat we aim to harness with Stardust XR's design philosophy, by focusing in on direct interactions that map to underlying functionality. "),(0,a.yg)("h1",{id:"direct-interaction-vs-indirect-action"},"Direct Interaction Vs Indirect Action"),(0,a.yg)("p",null,"With something like indirect action such as a touch screen on a phone or tablet, you're limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you're opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR's design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"git-bonsai",src:n(8648).A,width:"837",height:"635"}),"\n",(0,a.yg)("em",{parentName:"p"},"git-bonsai, a prototype design for an intuitive spatial github client")),(0,a.yg)("p",null,"A virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do."),(0,a.yg)("p",null,"Part of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\ncan utilize."),(0,a.yg)("h1",{id:"form-flexibility-principle"},"Form Flexibility Principle"),(0,a.yg)("p",null,"With a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you're limited to touch and multi-touch; in XR,\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction."),(0,a.yg)("p",null,"The more interaction bandwidth you have to offer, the more customizability is not just something that ",(0,a.yg)("em",{parentName:"p"},"can")," be done, it's something that\n",(0,a.yg)("em",{parentName:"p"},"must")," be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility."),(0,a.yg)("p",null,"When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential."),(0,a.yg)("p",null,"Stardust XR is that system \ud83c\udf49 "),(0,a.yg)("div",{style:{textAlign:"center"}},(0,a.yg)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/v2WblwbaLaA",frameBorder:0,allow:"autoplay; encrypted-media",allowFullScreen:!0,style:{maxWidth:"100%",aspectRatio:"16/9"}})),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/sponsors/technobaboo"},"Become a sponsor")," and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/StardustXR"},"github")," page for more information."))}d.isMDXComponent=!0},8648:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/gitbonsai-abb8d25419838d06eff39b8c06928707.bin"}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.a9e844f9.js b/assets/js/b2f554cd.f35c12d1.js similarity index 98% rename from assets/js/b2f554cd.a9e844f9.js rename to assets/js/b2f554cd.f35c12d1.js index 78ef2688..ffdefa9e 100644 --- a/assets/js/b2f554cd.a9e844f9.js +++ b/assets/js/b2f554cd.f35c12d1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[894],{6042:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2025/04/04/Stardust-XR-Philosophy","metadata":{"permalink":"/blog/2025/04/04/Stardust-XR-Philosophy","source":"@site/blog/2025-04-04-Stardust-XR-Philosophy.md","title":"Stardust XR Philosophy","description":"-----","date":"2025-04-04T00:00:00.000Z","formattedDate":"April 4, 2025","tags":[],"readingTime":3.785,"hasTruncateMarker":false,"authors":[{"name":"Cyberneticmelon"}],"frontMatter":{"title":"Stardust XR Philosophy","author":"Cyberneticmelon"}},"content":"-----\\n# Complexity \u2260 Difficulty\\n\\nIn most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\\nin a way that is more understandable.\\nThe average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers\\nor more technically inclined people.\\n\\nHigh complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\\nyou\'re working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.\\n\\nYou, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability \\nthat we aim to harness with Stardust XR\'s design philosophy, by focusing in on direct interactions that map to underlying functionality. \\n\\n# Direct Interaction Vs Indirect Action\\n\\nWith something like indirect action such as a touch screen on a phone or tablet, you\'re limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you\'re opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR\'s design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data.\\n\\n![git-bonsai](/img/docs/gitbonsai)\\n*git-bonsai, a prototype design for an intuitive spatial github client*\\n\\nA virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do.\\n\\nPart of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\\ncan utilize.\\n\\n# Form Flexibility Principle\\n\\nWith a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you\'re limited to touch and multi-touch; in XR, \\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction.\\n\\nThe more interaction bandwidth you have to offer, the more customizability is not just something that *can* be done, it\'s something that\\n*must* be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR\'s open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility.\\n\\nWhen you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential.\\n\\nStardust XR is that system \ud83c\udf49 \\n\\n
\\n\\n
\\n\\n[Become a sponsor](https://github.com/sponsors/technobaboo) and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the [github](https://github.com/StardustXR) page for more information."}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[894],{6042:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2025/04/04/Stardust-XR-Philosophy","metadata":{"permalink":"/blog/2025/04/04/Stardust-XR-Philosophy","source":"@site/blog/2025-04-04-Stardust-XR-Philosophy.md","title":"Stardust XR Philosophy","description":"-----","date":"2025-04-04T00:00:00.000Z","formattedDate":"April 4, 2025","tags":[],"readingTime":3.785,"hasTruncateMarker":false,"authors":[{"name":"Cyberneticmelon"}],"frontMatter":{"title":"Stardust XR Philosophy","author":"Cyberneticmelon"}},"content":"-----\\n# Complexity \u2260 Difficulty\\n\\nIn most modern user interaction there is a massive disconnect between the interface and the underlying system that is running.\\nAlthough some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity\\nin a way that is more understandable.\\nThe average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers\\nor more technically inclined people.\\n\\nHigh complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when\\nyou\'re working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can\\nsometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.\\n\\nYou, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly\\nthink about it, which provides a unique and newly available avenue of exploration in the XR and VR space, and it is this innate ability \\nthat we aim to harness with Stardust XR\'s design philosophy, by focusing in on direct interactions that map to underlying functionality. \\n\\n# Direct Interaction Vs Indirect Action\\n\\nWith something like indirect action such as a touch screen on a phone or tablet, you\'re limited to essentially a few modes of interaction such as tapping or swiping, whereas direct interaction within XR and VR you\'re opened up to a wide possibility of methods like cutting something in half with scissor fingers, duplicating by stretching an object, plugging one thing into another, etc. Stardust XR\'s design philosophy allows for the possibility of taking the underlying mechanics and expressing them as full interfaces. With the correct signifiers and affordances that map directly to the things underneath, people can gain an intuitive understanding of how their computer works. Clients and applications can also be designed in a way that allows for a better understanding of what is going on as there is far less obfuscation as to how underlying structures are handling that data.\\n\\n![git-bonsai](/img/docs/gitbonsai)\\n*git-bonsai, a prototype design for an intuitive spatial github client*\\n\\nA virtual environment provides an infinite space in which unfolding complexity becomes much more viable to do.\\n\\nPart of the goal of Stardust XR is to allow the average user to become a power-user through intuitive interaction; because of the number of ways a user can engage with a 3D environment, this greatly increases the interactive bandwidth a developer\\ncan utilize.\\n\\n# Form Flexibility Principle\\n\\nWith a PC, you are essentially limited to a keyboard and mouse; with a touch screen, you\'re limited to touch and multi-touch; in XR, \\nyou have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction.\\n\\nThe more interaction bandwidth you have to offer, the more customizability is not just something that *can* be done, it\'s something that\\n*must* be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace,\\nthis becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR\'s open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility.\\n\\nWhen you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential.\\n\\nStardust XR is that system \ud83c\udf49 \\n\\n
\\n\\n
\\n\\n[Become a sponsor](https://github.com/sponsors/technobaboo) and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the [github](https://github.com/StardustXR) page for more information."}]}')}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.8343a2b5.js b/assets/js/runtime~main.ac321a82.js similarity index 94% rename from assets/js/runtime~main.8343a2b5.js rename to assets/js/runtime~main.ac321a82.js index cfbd559a..4aa367d5 100644 --- a/assets/js/runtime~main.8343a2b5.js +++ b/assets/js/runtime~main.ac321a82.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,a,r,o,c={},f={};function n(e){var t=f[e];if(void 0!==t)return t.exports;var a=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=c,n.c=f,e=[],n.O=(t,a,r,o)=>{if(!a){var c=1/0;for(i=0;i=o)&&Object.keys(n.O).every((e=>n.O[e](a[b])))?a.splice(b--,1):(f=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[a,r,o]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};t=t||[null,a({}),a([]),a(a)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,n.d(o,c),o},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({58:"99ca928b",61:"1f391b9e",140:"69369ae2",143:"7c2ff145",174:"ed9920e9",233:"9e9b69ea",249:"ccc49370",393:"a2f9352b",401:"17896441",450:"2185e383",472:"814f3328",488:"75e80871",545:"8c065866",581:"935f2afb",634:"c4f5d8e4",643:"a6aa9e1f",676:"6aac2fa7",702:"e9eeb13c",711:"9e4087bc",714:"1be78505",724:"eb017f7e",801:"0c83e9a7",824:"80c42d71",894:"b2f554cd",902:"997b62c1",908:"b4e94af8",987:"c4348237",991:"b2b675dd"}[e]||e)+"."+{55:"46a8d801",58:"0a432fe5",61:"41d3cbe2",113:"96a447f5",140:"20ee0827",143:"c5143d11",174:"e36fc52e",176:"f99fe79b",233:"4f675bb6",249:"27fc043f",393:"0b594dd8",401:"be223008",428:"2aadad0c",450:"a6b0eab0",472:"f8bd8534",488:"98650720",545:"8b418540",581:"af7f0b8e",631:"4feee3cd",634:"0d8c138f",643:"54602189",676:"12ee7c76",702:"0adc7ad5",711:"4188a8d1",714:"40b2c3bf",724:"ae8e317e",774:"054ba7c6",801:"16c94644",824:"547ca880",894:"a9e844f9",902:"9b886659",908:"dc0c06c1",987:"d1cf9227",991:"3d9067f7",996:"16611af5"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="stardust-website:",n.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var f,b;if(void 0!==a)for(var d=document.getElementsByTagName("script"),i=0;i{f.onerror=f.onload=null,clearTimeout(l);var o=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),b&&document.head.appendChild(f)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"401","99ca928b":"58","1f391b9e":"61","69369ae2":"140","7c2ff145":"143",ed9920e9:"174","9e9b69ea":"233",ccc49370:"249",a2f9352b:"393","2185e383":"450","814f3328":"472","75e80871":"488","8c065866":"545","935f2afb":"581",c4f5d8e4:"634",a6aa9e1f:"643","6aac2fa7":"676",e9eeb13c:"702","9e4087bc":"711","1be78505":"714",eb017f7e:"724","0c83e9a7":"801","80c42d71":"824",b2f554cd:"894","997b62c1":"902",b4e94af8:"908",c4348237:"987",b2b675dd:"991"}[e]||e,n.p+n.u(e)},(()=>{var e={354:0,869:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var c=n.p+n.u(t),f=new Error;n.l(c,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,r[1](f)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,c=a[0],f=a[1],b=a[2],d=0;if(c.some((t=>0!==e[t]))){for(r in f)n.o(f,r)&&(n.m[r]=f[r]);if(b)var i=b(n)}for(t&&t(a);d{"use strict";var e,t,a,r,o,c={},f={};function n(e){var t=f[e];if(void 0!==t)return t.exports;var a=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=c,n.c=f,e=[],n.O=(t,a,r,o)=>{if(!a){var c=1/0;for(i=0;i=o)&&Object.keys(n.O).every((e=>n.O[e](a[b])))?a.splice(b--,1):(f=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[a,r,o]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);n.r(o);var c={};t=t||[null,a({}),a([]),a(a)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,n.d(o,c),o},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({58:"99ca928b",61:"1f391b9e",140:"69369ae2",143:"7c2ff145",174:"ed9920e9",233:"9e9b69ea",249:"ccc49370",393:"a2f9352b",401:"17896441",450:"2185e383",472:"814f3328",488:"75e80871",545:"8c065866",581:"935f2afb",634:"c4f5d8e4",643:"a6aa9e1f",676:"6aac2fa7",702:"e9eeb13c",711:"9e4087bc",714:"1be78505",724:"eb017f7e",801:"0c83e9a7",824:"80c42d71",894:"b2f554cd",902:"997b62c1",908:"b4e94af8",987:"c4348237",991:"b2b675dd"}[e]||e)+"."+{55:"46a8d801",58:"bdfe8af2",61:"41d3cbe2",113:"96a447f5",140:"20ee0827",143:"c5143d11",174:"e36fc52e",176:"f99fe79b",233:"4f675bb6",249:"27fc043f",393:"0b594dd8",401:"be223008",428:"2aadad0c",450:"a6b0eab0",472:"f8bd8534",488:"98650720",545:"d93f4501",581:"af7f0b8e",631:"4feee3cd",634:"0d8c138f",643:"54602189",676:"12ee7c76",702:"0adc7ad5",711:"4188a8d1",714:"40b2c3bf",724:"ae8e317e",774:"054ba7c6",801:"16c94644",824:"547ca880",894:"f35c12d1",902:"9b886659",908:"dc0c06c1",987:"d1cf9227",991:"3d9067f7",996:"16611af5"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="stardust-website:",n.l=(e,t,a,c)=>{if(r[e])r[e].push(t);else{var f,b;if(void 0!==a)for(var d=document.getElementsByTagName("script"),i=0;i{f.onerror=f.onload=null,clearTimeout(l);var o=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),b&&document.head.appendChild(f)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"401","99ca928b":"58","1f391b9e":"61","69369ae2":"140","7c2ff145":"143",ed9920e9:"174","9e9b69ea":"233",ccc49370:"249",a2f9352b:"393","2185e383":"450","814f3328":"472","75e80871":"488","8c065866":"545","935f2afb":"581",c4f5d8e4:"634",a6aa9e1f:"643","6aac2fa7":"676",e9eeb13c:"702","9e4087bc":"711","1be78505":"714",eb017f7e:"724","0c83e9a7":"801","80c42d71":"824",b2f554cd:"894","997b62c1":"902",b4e94af8:"908",c4348237:"987",b2b675dd:"991"}[e]||e,n.p+n.u(e)},(()=>{var e={354:0,869:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var c=n.p+n.u(t),f=new Error;n.l(c,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,r[1](f)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,c=a[0],f=a[1],b=a[2],d=0;if(c.some((t=>0!==e[t]))){for(r in f)n.o(f,r)&&(n.m[r]=f[r]);if(b)var i=b(n)}for(t&&t(a);d - + @@ -18,7 +18,7 @@

· 4 min read

Complexity ≠ Difficulty

In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running. Although some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity in a way that is more understandable. -The average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers +The average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers or more technically inclined people.

High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when you're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can sometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.

You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly @@ -29,7 +29,7 @@ can utilize.

Form Flexibility Principle

With a PC, you are essenti you have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction.

The more interaction bandwidth you have to offer, the more customizability is not just something that can be done, it's something that must be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace, this becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility.

When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential.

Stardust XR is that system 🍉

Become a sponsor and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the github page for more information.

- + \ No newline at end of file diff --git a/blog/2025/04/04/Stardust-XR-Philosophy.html b/blog/2025/04/04/Stardust-XR-Philosophy.html index a6271592..7a0323c7 100644 --- a/blog/2025/04/04/Stardust-XR-Philosophy.html +++ b/blog/2025/04/04/Stardust-XR-Philosophy.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@

Stardust XR Philosophy

· 4 min read

Complexity ≠ Difficulty

In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running. Although some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity in a way that is more understandable. -The average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers +The average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers or more technically inclined people.

High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when you're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can sometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.

You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly @@ -29,7 +29,7 @@ can utilize.

Form Flexibility Principle

With a PC, you are essenti you have hands, eyes, and body, which has an exceedingly large amount of available bandwidth for interaction.

The more interaction bandwidth you have to offer, the more customizability is not just something that can be done, it's something that must be done to provide an adaptable user experience for real world scenarios. As XR expands into areas beyond just the home and workspace, this becomes increasingly important as the ways in which you can interact with the world is, by default, extremely variable, and Stardust XR's open platform and client creation philosophy allows developers to freely expand these types of interactions to meet the demands that computation brought into a 3D space will bring. From sitting at a small workbench all the way up to a full warehouse, the application space becomes much larger as you incorporate the ability to move through the world with mixed reality. Existing user interfaces of today typically provide limited and hard-coded exceptions to the rules, and only for specific situations or disabilities. By making user interaction systems more emergent, many forms of accessibility become available third party, with broader compatibility.

When you take advantage of the innate interactions and movements that come naturally to people in a 3D environment, and combine that with a library of base interactions associated with underlying computer structures, a system that is both modular and emergent in its ability to grow as XR expands more and more into the real world becomes essential.

Stardust XR is that system 🍉

Become a sponsor and help Nova expand Stardust XR! Stardust XR is also actively looking for help with development, check out the github page for more information.

- + \ No newline at end of file diff --git a/blog/archive.html b/blog/archive.html index cc9fe0df..6f7c81c3 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -10,13 +10,13 @@ - + - + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml index 835ae4a2..491d912b 100644 --- a/blog/atom.xml +++ b/blog/atom.xml @@ -16,7 +16,7 @@

Complexity ≠ Difficulty

In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running. Although some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity in a way that is more understandable. -The average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers +The average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers or more technically inclined people.

High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when you're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can sometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.

You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly diff --git a/blog/rss.xml b/blog/rss.xml index 6b7fc6f0..497859ae 100644 --- a/blog/rss.xml +++ b/blog/rss.xml @@ -17,7 +17,7 @@

Complexity ≠ Difficulty

In most modern user interaction there is a massive disconnect between the interface and the underlying system that is running. Although some user interfaces may look well designed, often times they have papered over how things work instead of unfolding the complexity in a way that is more understandable. -The average person may not easily understand why their computer is doing what it is doing, and relegate this knowledge to the realm of programmers +The average person may not easily understand why their computer is doing what it is doing, and delegate this knowledge to the realm of programmers or more technically inclined people.

High complexity, however, does not innately indicate that something is highly difficult. Take all the objects lying in front of you when you're working at a desk. To move all of those items around is a highly complex task that even modern visual tracking algorithms can sometimes struggle with, let alone the mechatronic limitations when it comes to robotics, outside of tightly controlled environments.

You, however, can easily and intuitively move things around and organize them in a spatial environment without needing to directly diff --git a/docs/User-Guide/What-is-Stardust.html b/docs/User-Guide/What-is-Stardust.html index 40fd80ce..80f9a117 100644 --- a/docs/User-Guide/What-is-Stardust.html +++ b/docs/User-Guide/What-is-Stardust.html @@ -10,7 +10,7 @@ - + @@ -19,7 +19,7 @@ wasd

To look around, hold down Shift + Right Click while moving the mouse. updated_look

To drag applications out of the app launcher, hold down Shift + ~ updated_drag

- + \ No newline at end of file diff --git a/docs/User-Guide/XR-Navigation.html b/docs/User-Guide/XR-Navigation.html index 7f782174..a22d170e 100644 --- a/docs/User-Guide/XR-Navigation.html +++ b/docs/User-Guide/XR-Navigation.html @@ -10,7 +10,7 @@ - + @@ -19,7 +19,7 @@ Pinch to drag and drop, grasp with full hand for grabbing, point and click with pointer finger to click or pinch from a distance

hand_pinching

Quest 3 Controller: Grab with the grip buttons, click by touching the tip of the cones or by using the trigger from a distance

controller_click

- + \ No newline at end of file diff --git a/docs/dive-deeper/brief-overview.html b/docs/dive-deeper/brief-overview.html index eb8d55e2..c81c29bc 100644 --- a/docs/dive-deeper/brief-overview.html +++ b/docs/dive-deeper/brief-overview.html @@ -10,14 +10,14 @@ - +

Brief Overview

Stardust XR is an XR display server designed for Linux-based systems.
Unlike traditional display servers that focus on 2D screens, Stardust XR introduces new conventions to utilize unbounded 3D space in virtual or real environments.

Priorities

  • 3D Environment Focus: While supporting 2D clients through the Wayland protocol, Stardust XR primarily aims to create and manage 3D environments.

  • Standard Interfaces: Utilizes Wayland and OpenXR for 2D and XR app integration.

  • Stardust Protocol: Implements a special protocol for:

    • Creating virtual objects
    • Developing 3D UIs around 2D apps (Panel Shells)
    • Handling data as Items that can represent files, Wayland surfaces, etc.
  • Personal Device Interaction: Focuses on individual user interactions rather than collaborative 3D spaces.

  • Flexible Object Interaction: Users can choose objects that best suit their current scenario, with easy setup for default configurations.

Architecture

Projects & Components

  • telescope: Stable stardust setup for quick and easy usage
  • server: Reference implementation of the StardustXR server (similar to Xorg)
  • core lib: Rust crates and schemas for connecting stardust server and client
  • website: The location where documentation is done and the website is generated from
  • protostar: App launcher library and examples including futuristic hexagon launcher
  • black hole: Universal minimization of Stardust objects
  • gravity: Launch programs with a certain offset in 3D space
  • magnetar: Example workspaces client
  • atmosphere: 3D environment with natural momentum-based movement
  • comet: Annotate in 3D wherever you want amongst your other apps!
- + \ No newline at end of file diff --git a/docs/dive-deeper/deep-overview.html b/docs/dive-deeper/deep-overview.html index 761fa27c..58abf57f 100644 --- a/docs/dive-deeper/deep-overview.html +++ b/docs/dive-deeper/deep-overview.html @@ -10,13 +10,13 @@ - +

Technical Overview

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 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.

The reference server uses StereoKit as its backend for many reasons:

  • Much more lightweight than any other framework/other engine
    • It was originally designed to run AR apps on HoloLens, and now it works on Quest
    • It's able to render thousands of objects on a HoloLens without breaking a sweat
  • Does not include unnecessary features that slow down performance
    • Physics and UI are not needed for Stardust, but those do not actively run and can always have an option to not be compiled at all.
  • Uses C-style C++ meaning not bytecode or interpreted (however has a C# API that is not used by Stardust)
  • Uses immediate mode rendering meaning the logic is many times easier to implement
  • Exposes its rendering insides whenever needed
    • Very needed for Wayland when it needs to display EGL Wayland surface textures on meshes
    • Overriding the depthbuffer per-pixel in fragment shader is useful for XR depth compositing
  • Is constantly getting new updates faster than most engines
    • World semantics for OpenXR was implemented ~1 week after the official OpenXR extension release
  • Is optimized to load resources JIT
    • Many game engines are best at caching their assets, but this is not practical in a display server
  • Uses OpenXR as its backend out of the box

IPC

The Stardust XR IPC uses Unix domain sockets for communication and a protocol based on flatbuffers/flexbuffers.

Protocol

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, reliable, and extensible.

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.

- + \ No newline at end of file diff --git a/docs/dive-deeper/make-clients.html b/docs/dive-deeper/make-clients.html index 9d08d883..a3c2d8ca 100644 --- a/docs/dive-deeper/make-clients.html +++ b/docs/dive-deeper/make-clients.html @@ -10,13 +10,13 @@ - +

Making Clients

A Stardust client is at its core an executable that connects to a stardust server instance at $XDG_RUNTIME_DIR/stardust-[0-32], sends and receives messages according to the Stardust protocol.

Rust

Stardust uses Rust due to its speed and reliability in build and runtime, so you will need to install cargo (preferably through rustup). If you're unsure how to use Rust then a great guide is at https://doc.rust-lang.org/book/.

stardust-xr

stardust-xr is a connecting library for servers and clients that deals with the lowest level of connecting to ensure basic compatibility is ensured. As a client developer you most likely won't need it, but it's good to know about it.

Fusion

stardust-xr-fusion is the high level library you'll probably be using to create your clients. It features structs for all Stardust objects and trait-based + async systems for handling events from the server.

To get started, create a new Rust project using

cargo new

and include the stardust-xr-fusion dependency in your cargo.toml. Documentation will be available at https://docs.rs/crate/stardust-xr-fusion/latest.

Molecules

stardust-xr-molecules is an even higher level widget library built on Fusion similar to MRTK to get your clients up and running faster. Documentation will be available at https://docs.rs/crate/stardust-xr-molecules/latest.

- + \ No newline at end of file diff --git a/docs/dive-deeper/terminology.html b/docs/dive-deeper/terminology.html index e6520507..8a466dbb 100644 --- a/docs/dive-deeper/terminology.html +++ b/docs/dive-deeper/terminology.html @@ -10,13 +10,13 @@ - + - + \ No newline at end of file diff --git a/docs/get-started/Quickstart.html b/docs/get-started/Quickstart.html index 1861423e..9c5906c7 100644 --- a/docs/get-started/Quickstart.html +++ b/docs/get-started/Quickstart.html @@ -10,7 +10,7 @@ - + @@ -20,7 +20,7 @@ To move around, hold down Shift and W A S WASD Q E Look around

To look around, hold down Shift and Right Click while moving the mouse.
Look around

If you click on the hexagon, the launcher will open. Try dragging one of the apps with Shift + ~. 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.
Flat drag

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.

- + \ No newline at end of file diff --git a/docs/get-started/What-is-Stardust.html b/docs/get-started/What-is-Stardust.html index 36c4fa2b..ae1495ae 100644 --- a/docs/get-started/What-is-Stardust.html +++ b/docs/get-started/What-is-Stardust.html @@ -10,13 +10,13 @@ - +

What is Stardust XR?

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.

If you'd like to try Stardust XR on your existing device without a headset, head to the Quick Start guide. If you'd like to use a VR headset, check out Set up OpenXR Runtime. If you already have your headset set up, head to the Full Stardust Installation 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!

Stardust XR is acitvely looking for help with development to expand the project. You can also become a sponsor.

- + \ No newline at end of file diff --git a/docs/get-started/manual.html b/docs/get-started/manual.html index a8fbf330..7891c8bc 100644 --- a/docs/get-started/manual.html +++ b/docs/get-started/manual.html @@ -10,13 +10,13 @@ - +

Full Installation

Unlike Telescope 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.

Fedora LogoUltramarine LogoFedora and derivatives (except Enterprise Linux)

info

Stardust XR is packaged in the Terra repository. If you are using Ultramarine Linux, Bazzite, or Aurora, this repository comes pre-installed, otherwise you will need to add the repository:

If you are using a Fedora Atomic Edition or derrivative you 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

Standard Fedora Editions and derivatives 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 all Stardust XR packages:

sudo dnf group install stardust-xr

LogoArch Linux

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

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, and an example of is linked here

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
    3D panel UI (like window manager) for interacting with all your 2D apps
  • 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/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 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 file that will by default install the default atmosphere background. Run the script with flag -nobg if you don't want that.

- + \ No newline at end of file diff --git a/docs/get-started/quest-3-setup.html b/docs/get-started/quest-3-setup.html index a2f22ad1..468e292b 100644 --- a/docs/get-started/quest-3-setup.html +++ b/docs/get-started/quest-3-setup.html @@ -10,13 +10,13 @@ - +

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. 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:

info

This applies to the Quest, Quest 2, Quest 3, and Quest Pro. These instructions should work on all Fedora derivatives (excluding Enterprise Linux). If you are using Ultramarine Linux, Bazzite, or Aurora, this reposoitory comes pre-installed, otherwise you will need to add the repository:

If you are using a Fedora Atomic Edition or derrivative you 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

Standard Fedora Editions and derivatives 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, a Fedora based distribution. Ultramarine comes with the Terra repository pre-installed. You can follow these instructions 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, which can be installed with:

sudo dnf install akmod-nvidia

Envision

The next step is to install Envision. Envision is a GUI that makes it easier to connect and run the Quest 3 (among other headsets) with Monado, an open source OpenXR implementation, and 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 envision

Vulkan Layers

If you have an Nvidia graphics card, it is possible that you will need to install Vulkan Layers for Monado, although this may not be necessary depending on the driver version:

sudo dnf install 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 must be enabled on your Quest 3. The most streamlined way to do this is through the Meta Horizons app on Android or iPhone

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!

- + \ No newline at end of file diff --git a/docs/get-started/setup-openxr.html b/docs/get-started/setup-openxr.html index d2552597..ef373521 100644 --- a/docs/get-started/setup-openxr.html +++ b/docs/get-started/setup-openxr.html @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@

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 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.

Envision

note

Envision

We highly recommend using Envision, an easy to use GUI for utilizing Monado which is what you likely use if you have a wired headset. Envision also comes with WiVRn support for connecting to headsets like the Meta Quest wirelessly.

Check the hardware table (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. 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.

Fedora LogoUltramarine LogoFedora and derivatives (except Enterprise Linux)

info

Envision is packaged in the Terra repository. If you are using Ultramarine Linux, Bazzite, or Aurora, this repository comes pre-installed, otherwise you will need to add the repository:

If you are using a Fedora Atomic Edition or derivative you 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

Standard Fedora Editions and derivatives 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

LogoArch Linux

For Arch Linux, Envision is available via the AUR. We suggest using an AUR helper, like Paru:

paru -S envision-xr-git

LogoNixOS

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. 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

When you launch Envision, you will have to build a profile for your headset, check the Envision website 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

Once you have one of these options installed, a quick way to test on the headset is by running xrgears. xrgears is a demo that comes with Monado.

tip

If you run into any problems during installation, the Meta Quest Walkthrough 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

SteamVR

If you'd like to use SteamVR, head over to https://lvra.gitlab.io/docs/steamvr/, although it is not the recommended way to use VR within Linux due to poor support.

- + \ No newline at end of file diff --git a/index.html b/index.html index ed59e732..b163c7c1 100644 --- a/index.html +++ b/index.html @@ -10,13 +10,13 @@ - +

Stardust XR

Stardust... We Fight For the Users!

Flexible

Flexible

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.

Streamlined

Streamlined

Stardust is made using StereoKit, an XR application/rendering toolkit allowing for a fast and lightweight display server.

- + \ No newline at end of file diff --git a/roadmap.html b/roadmap.html index 51088c1a..6355626d 100644 --- a/roadmap.html +++ b/roadmap.html @@ -10,13 +10,13 @@ - +

Roadmap

Warning. This roadmap is now outdated.

1.0 (Minimum Viable Product)

  • Core functionality
    • IPC+RPC
  • Client
    • Fusion
      • Initial connection
      • Node type creation/destruction
      • Interface interaction
      • Callbacks
      • Documentation
  • Server
    • Per-client scenegraph
    • Statically link StereoKit
    • Basic features
      • Logic step
      • Spatial transforms
        • Absolute movement
        • Relative movement
        • Spatial parenting
      • Models
        • Loading
        • Setting material parameters
      • Fields (SDFs for interaction)
        • Box field
        • Rounded box field
        • Sphere field
      • Input
        • Input methods
          • Hand input
            • Creation from OpenXR
            • Creation from StereoKit (flatscreen)
            • Interaction with clients
          • Pointer input
            • Creation from StereoKit (flatscreen, mouse cursor ray)
            • Interaction with clients
        • Input handler
          • Async input propagation through distance
      • Environment
        • Set skytex
        • Set skylight
      • Items
        • Base item class
        • Base item accepter class
        • Environment equirectangular item
        • Environment equirectangular accepter
      • 2D integration
        • Panels
          • Panel item
          • smithay (for Wayland)
            • Rendering
            • Input seats
        • Panel shells
          • Accept panel items
          • Put surface on model material's texture
          • Feed input through to panel
          • Release panel items
  • Daily Drivable System
    • GUI App Launcher (Protostar)
      • Get desktop files
      • Find and parse icons
      • Display icons and desktop files in grid
      • Launch executables spatially
    • Panel Item UI
      • Flatland

More to come!

- + \ No newline at end of file