From 7a239dfc7468f93b2c2512f2036cd603aceb92f2 Mon Sep 17 00:00:00 2001 From: technobaboo Date: Thu, 22 Jul 2021 08:57:56 -0500 Subject: [PATCH] Deploy website - based on 23574c8e185273ee56c3a5dafeb8f8baa24f2d24 --- 404.html | 4 ++-- assets/js/003df647.8de77408.js | 1 + assets/js/003df647.e507ecc8.js | 1 - assets/js/1134c138.49f5d17d.js | 1 - assets/js/1134c138.4af2cbb7.js | 1 + ...5a427.d28e8492.js => 78a5a427.0cdd6bb5.js} | 2 +- ...n.d3561d6b.js => runtime~main.d105adc3.js} | 2 +- docs/intro.html | 4 ++-- .../client/initial-connection.html | 4 ++-- docs/stardust-protocol/protocol.html | 4 ++-- .../server/objects/environment.html | 8 ++++---- .../server/objects/field.html | 4 ++-- .../stardust-protocol/server/objects/hmd.html | 8 ++++---- .../server/objects/input.html | 4 ++-- .../server/objects/lifecycle.html | 6 +++--- .../server/objects/model.html | 4 ++-- .../server/objects/spatial.html | 4 ++-- .../stardust-protocol/server/types/Model.html | 4 ++-- docs/stardust-protocol/server/types/Node.html | 4 ++-- .../server/types/Spatial.html | 4 ++-- .../server/types/field/BoxField.html | 4 ++-- .../server/types/field/Field.html | 4 ++-- .../server/types/field/SphereField.html | 4 ++-- .../server/types/input/InputHandler.html | 4 ++-- .../server/types/input/InputMethod.html | 4 ++-- .../types/input/inputtypes/HandInput.html | 4 ++-- .../types/input/inputtypes/PointerInput.html | 4 ++-- img/favicon.ico | Bin 15406 -> 15406 bytes index.html | 4 ++-- roadmap.html | 4 ++-- 30 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 assets/js/003df647.8de77408.js delete mode 100644 assets/js/003df647.e507ecc8.js delete mode 100644 assets/js/1134c138.49f5d17d.js create mode 100644 assets/js/1134c138.4af2cbb7.js rename assets/js/{78a5a427.d28e8492.js => 78a5a427.0cdd6bb5.js} (97%) rename assets/js/{runtime~main.d3561d6b.js => runtime~main.d105adc3.js} (97%) diff --git a/404.html b/404.html index d8dbb364..dfdb6a79 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page Not Found | Stardust XR - +
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/003df647.8de77408.js b/assets/js/003df647.8de77408.js new file mode 100644 index 00000000..ded7f31b --- /dev/null +++ b/assets/js/003df647.8de77408.js @@ -0,0 +1 @@ +(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[342],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=o,b=d["".concat(l,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(b,a(a({ref:t},u),{},{components:n})):r.createElement(b,a({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var c=2;cvisible(bool enable)",id:"visiblebool-enable",children:[]},{value:"setSkytex(string path)",id:"setskytexstring-path",children:[]},{value:"setLighting(string path)",id:"setlightingstring-path",children:[]}]}],p={toc:u};function d(e){var t=e.components,n=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"environment"},"/environment"),(0,i.kt)("p",null,"Interface managing the skytex and skylight (equivalent of desktop background)."),(0,i.kt)("h2",{id:"signals"},"Signals"),(0,i.kt)("h3",{id:"visiblebool-enable"},(0,i.kt)("inlineCode",{parentName:"h3"},"visible(bool enable)")),(0,i.kt)("p",null,"Enable or disables the skybox visibility (lighting remains active). This is not meant to be used for an additive AR mode as StereoKit will perform that when the OpenXR runtime indicates the layer's blend mode is additive."),(0,i.kt)("h3",{id:"setskytexstring-path"},(0,i.kt)("inlineCode",{parentName:"h3"},"setSkytex(string path)")),(0,i.kt)("p",null,"Sets the sky texture to be the image (HDR) at the absolute ",(0,i.kt)("inlineCode",{parentName:"p"},"path"),"."),(0,i.kt)("h3",{id:"setlightingstring-path"},(0,i.kt)("inlineCode",{parentName:"h3"},"setLighting(string path)")),(0,i.kt)("p",null,"Sets the ambient lighting (using spherical harmonics) to the HDR at the absolute ",(0,i.kt)("inlineCode",{parentName:"p"},"path"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/003df647.e507ecc8.js b/assets/js/003df647.e507ecc8.js deleted file mode 100644 index 4eb81ce1..00000000 --- a/assets/js/003df647.e507ecc8.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[342],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),d=c(n),m=o,b=d["".concat(l,".").concat(m)]||d[m]||p[m]||i;return n?r.createElement(b,s(s({ref:t},u),{},{components:n})):r.createElement(b,s({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,s=new Array(i);s[0]=d;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a.mdxType="string"==typeof e?e:o,s[1]=a;for(var c=2;cvisible(bool enable)",id:"visiblebool-enable",children:[]},{value:"setSkytex(string path)",id:"setskytexstring-path",children:[]},{value:"setLighting(string path)",id:"setlightingstring-path",children:[]}]}],p={toc:u};function d(e){var t=e.components,n=(0,o.Z)(e,s);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"environment"},"/environment"),(0,i.kt)("h2",{id:"signals"},"Signals"),(0,i.kt)("h3",{id:"visiblebool-enable"},(0,i.kt)("inlineCode",{parentName:"h3"},"visible(bool enable)")),(0,i.kt)("p",null,"Enable or disables the skybox visibility (lighting remains active). This is not meant to be used for an additive AR mode as StereoKit will perform that when the OpenXR runtime indicates the layer's blend mode is additive."),(0,i.kt)("h3",{id:"setskytexstring-path"},(0,i.kt)("inlineCode",{parentName:"h3"},"setSkytex(string path)")),(0,i.kt)("p",null,"Sets the sky texture to be the image (HDR) at the absolute ",(0,i.kt)("inlineCode",{parentName:"p"},"path"),"."),(0,i.kt)("h3",{id:"setlightingstring-path"},(0,i.kt)("inlineCode",{parentName:"h3"},"setLighting(string path)")),(0,i.kt)("p",null,"Sets the ambient lighting (using spherical harmonics) to the HDR at the absolute ",(0,i.kt)("inlineCode",{parentName:"p"},"path"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1134c138.49f5d17d.js b/assets/js/1134c138.49f5d17d.js deleted file mode 100644 index b4af6920..00000000 --- a/assets/js/1134c138.49f5d17d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[347],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return d},kt:function(){return f}});var o=r(7294);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 o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function s(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var a=o.createContext({}),u=function(e){var t=o.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},d=function(e){var t=u(e.components);return o.createElement(a.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,a=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=n,m=p["".concat(a,".").concat(f)]||p[f]||l[f]||i;return r?o.createElement(m,s(s({ref:t},d),{},{components:r})):o.createElement(m,s({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,s=new Array(i);s[0]=p;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c.mdxType="string"==typeof e?e:n,s[1]=c;for(var u=2;usetPosition(Vector3 position)",id:"setpositionvector3-position",children:[]},{value:"setRotation(Quaternion rotation)",id:"setrotationquaternion-rotation",children:[]},{value:"setPose(Vector3 position, Quaternion rotation)",id:"setposevector3-position-quaternion-rotation",children:[]},{value:"setIPD(double meters)",id:"setipddouble-meters",children:[]}]}],l={toc:d};function p(e){var t=e.components,r=(0,n.Z)(e,s);return(0,i.kt)("wrapper",(0,o.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"hmd"},"/hmd"),(0,i.kt)("p",null,"Reference object to the HMD being used to render content and track head position."),(0,i.kt)("h2",{id:"signals"},"Signals"),(0,i.kt)("h3",{id:"setpositionvector3-position"},(0,i.kt)("inlineCode",{parentName:"h3"},"setPosition(Vector3 position)")),(0,i.kt)("h3",{id:"setrotationquaternion-rotation"},(0,i.kt)("inlineCode",{parentName:"h3"},"setRotation(Quaternion rotation)")),(0,i.kt)("h3",{id:"setposevector3-position-quaternion-rotation"},(0,i.kt)("inlineCode",{parentName:"h3"},"setPose(Vector3 position, Quaternion rotation)")),(0,i.kt)("h3",{id:"setipddouble-meters"},(0,i.kt)("inlineCode",{parentName:"h3"},"setIPD(double meters)")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1134c138.4af2cbb7.js b/assets/js/1134c138.4af2cbb7.js new file mode 100644 index 00000000..6ee82719 --- /dev/null +++ b/assets/js/1134c138.4af2cbb7.js @@ -0,0 +1 @@ +(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[347],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return f}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,a=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(r),f=o,m=d["".concat(a,".").concat(f)]||d[f]||l[f]||c;return r?n.createElement(m,s(s({ref:t},p),{},{components:r})):n.createElement(m,s({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,s=new Array(c);s[0]=d;var i={};for(var a in t)hasOwnProperty.call(t,a)&&(i[a]=t[a]);i.originalType=e,i.mdxType="string"==typeof e?e:o,s[1]=i;for(var u=2;u=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),l=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(a.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,m=d["".concat(a,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=d;var s={};for(var a in t)hasOwnProperty.call(t,a)&&(s[a]=t[a]);s.originalType=e,s.mdxType="string"==typeof e?e:o,c[1]=s;for(var l=2;lsubscribeLogicStep(string path, string method)",id:"subscribelogicstepstring-path-string-method",children:[]}]}],p={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,c);return(0,i.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"lifecycle"},"/lifecycle"),(0,i.kt)("p",null,"Object representing the life cycle of the Stardust server, from start to each frame to end."),(0,i.kt)("h2",{id:"signals"},"Signals"),(0,i.kt)("h3",{id:"subscribelogicstepstring-path-string-method"},(0,i.kt)("inlineCode",{parentName:"h3"},"subscribeLogicStep(string path, string method)")),(0,i.kt)("p",null,"Executes ",(0,i.kt)("inlineCode",{parentName:"p"},"method")," on object at ",(0,i.kt)("inlineCode",{parentName:"p"},"path")," on the client when the main logic loop of the server starts each frame."),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"method")," must have arguments of ",(0,i.kt)("inlineCode",{parentName:"p"},"(double delta, double timeToRender)"),". "),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"delta")," gives the time in seconds between the current time and the last time the logic loop executed while ",(0,i.kt)("inlineCode",{parentName:"p"},"timeToRender")," gives the time in ms since epoch when the current frame is expected to reach the user's eyes."))}d.isMDXComponent=!0}}]); \ No newline at end of file +(self.webpackChunkstardust_website=self.webpackChunkstardust_website||[]).push([[734],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return f}});var n=r(7294);function o(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),l=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(a.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(r),f=o,m=d["".concat(a,".").concat(f)]||d[f]||p[f]||i;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=d;var s={};for(var a in t)hasOwnProperty.call(t,a)&&(s[a]=t[a]);s.originalType=e,s.mdxType="string"==typeof e?e:o,c[1]=s;for(var l=2;lsubscribeLogicStep(string path, string method)",id:"subscribelogicstepstring-path-string-method",children:[]}]}],p={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,c);return(0,i.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"lifecycle"},"/lifecycle"),(0,i.kt)("p",null,"Object representing the life cycle of the Stardust server, from start to each frame to end."),(0,i.kt)("h2",{id:"signals"},"Signals"),(0,i.kt)("h3",{id:"subscribelogicstepstring-path-string-method"},(0,i.kt)("inlineCode",{parentName:"h3"},"subscribeLogicStep(string path, string method)")),(0,i.kt)("p",null,"Executes ",(0,i.kt)("inlineCode",{parentName:"p"},"method")," on object at ",(0,i.kt)("inlineCode",{parentName:"p"},"path")," on the client when the main logic loop of the server starts each frame."),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"method")," must have arguments of ",(0,i.kt)("inlineCode",{parentName:"p"},"(double delta, double timeToRender)"),". "),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"delta")," gives the time in seconds between the current time and the last time the logic loop executed while ",(0,i.kt)("inlineCode",{parentName:"p"},"timeToRender")," gives the time in ms since epoch when the current frame is expected to reach the user's eyes (returns 0 for now)."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.d3561d6b.js b/assets/js/runtime~main.d105adc3.js similarity index 97% rename from assets/js/runtime~main.d3561d6b.js rename to assets/js/runtime~main.d105adc3.js index ec28a3ad..ec9afec8 100644 --- a/assets/js/runtime~main.d3561d6b.js +++ b/assets/js/runtime~main.d105adc3.js @@ -1 +1 @@ -!function(){"use strict";var e,t,r,n,o,f={},c={};function u(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={id:e,loaded:!1,exports:{}};return f[e].call(r.exports,r,r.exports,u),r.loaded=!0,r.exports}u.m=f,u.c=c,e=[],u.O=function(t,r,n,o){if(!r){var f=1/0;for(d=0;d=o)&&Object.keys(u.O).every((function(e){return u.O[e](r[a])}))?r.splice(a--,1):(c=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[r,n,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},r=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);u.r(o);var f={};t=t||[null,r({}),r([]),r(r)];for(var c=2&n&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},u.d(o,f),o},u.d=function(e,t){for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,r){return u.f[r](e,t),t}),[]))},u.u=function(e){return"assets/js/"+({16:"1fbe18c3",53:"935f2afb",74:"86790a84",85:"1f391b9e",121:"4cc9031b",195:"c4f5d8e4",272:"3e4d3f97",300:"b4e94af8",342:"003df647",347:"1134c138",351:"1dea05a0",487:"c9dc9d85",500:"614808c6",514:"1be78505",523:"c5e91741",587:"42ef8d41",659:"255c4b9f",671:"0e384e19",672:"5f7b5dec",734:"78a5a427",770:"493a26d0",852:"e3f705b4",855:"40d7c56e",918:"17896441",925:"57a1f8cb",993:"2bb13bfd"}[e]||e)+"."+{16:"99f31c05",53:"e88c5cdd",74:"669ae4bd",85:"2f7cafbf",111:"75041932",121:"6f727758",195:"918968b9",272:"f19a020b",300:"314c217b",342:"e507ecc8",347:"49f5d17d",351:"464fc163",486:"58eb0f8c",487:"b9bf6ecb",500:"b001d3fa",514:"41ee86ca",523:"6b9cd9b9",587:"3edccf78",608:"7f4ce0f0",615:"e1d6d5a1",659:"c65b0156",668:"6e212175",671:"54e5cc8e",672:"fc261658",734:"d28e8492",770:"a3eb14ea",852:"9fccf29c",855:"4a8b2815",918:"0ff9f9f9",925:"9da7858d",993:"e204e0d9"}[e]+".js"},u.miniCssF=function(e){return"assets/css/styles.bd63019b.css"},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},o="stardust-website:",u.l=function(e,t,r,f){if(n[e])n[e].push(t);else{var c,a;if(void 0!==r)for(var i=document.getElementsByTagName("script"),d=0;d=o)&&Object.keys(u.O).every((function(e){return u.O[e](r[a])}))?r.splice(a--,1):(c=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[r,n,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},r=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);u.r(o);var f={};t=t||[null,r({}),r([]),r(r)];for(var c=2&n&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},u.d(o,f),o},u.d=function(e,t){for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,r){return u.f[r](e,t),t}),[]))},u.u=function(e){return"assets/js/"+({16:"1fbe18c3",53:"935f2afb",74:"86790a84",85:"1f391b9e",121:"4cc9031b",195:"c4f5d8e4",272:"3e4d3f97",300:"b4e94af8",342:"003df647",347:"1134c138",351:"1dea05a0",487:"c9dc9d85",500:"614808c6",514:"1be78505",523:"c5e91741",587:"42ef8d41",659:"255c4b9f",671:"0e384e19",672:"5f7b5dec",734:"78a5a427",770:"493a26d0",852:"e3f705b4",855:"40d7c56e",918:"17896441",925:"57a1f8cb",993:"2bb13bfd"}[e]||e)+"."+{16:"99f31c05",53:"e88c5cdd",74:"669ae4bd",85:"2f7cafbf",111:"75041932",121:"6f727758",195:"918968b9",272:"f19a020b",300:"314c217b",342:"8de77408",347:"4af2cbb7",351:"464fc163",486:"58eb0f8c",487:"b9bf6ecb",500:"b001d3fa",514:"41ee86ca",523:"6b9cd9b9",587:"3edccf78",608:"7f4ce0f0",615:"e1d6d5a1",659:"c65b0156",668:"6e212175",671:"54e5cc8e",672:"fc261658",734:"0cdd6bb5",770:"a3eb14ea",852:"9fccf29c",855:"4a8b2815",918:"0ff9f9f9",925:"9da7858d",993:"e204e0d9"}[e]+".js"},u.miniCssF=function(e){return"assets/css/styles.bd63019b.css"},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},o="stardust-website:",u.l=function(e,t,r,f){if(n[e])n[e].push(t);else{var c,a;if(void 0!==r)for(var i=document.getElementsByTagName("script"),d=0;d Intro | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/client/initial-connection.html b/docs/stardust-protocol/client/initial-connection.html index 6be2d931..a0550772 100644 --- a/docs/stardust-protocol/client/initial-connection.html +++ b/docs/stardust-protocol/client/initial-connection.html @@ -5,13 +5,13 @@ Initial Client Connection | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/protocol.html b/docs/stardust-protocol/protocol.html index 41411972..16cecbad 100644 --- a/docs/stardust-protocol/protocol.html +++ b/docs/stardust-protocol/protocol.html @@ -5,7 +5,7 @@ Protocol | Stardust XR - + @@ -13,7 +13,7 @@

Protocol

Data#

Every message uses flatbuffers and flexbuffers to add variant data such as method arguments and return values. The Stardust XR Message schema is:

namespace StardustXR;
 table Message {    type: ubyte;    id: uint;    object: string;    method: string;    error: string;    data:[ubyte] (flexbuffer);}
 root_type Message;

Message Types#

All fields not accounted for are assumed to be not included or 0 or ""

Error#

Field NameValue
type0
id0 or ID of method call
objectPath to the object the error comes from
methodWhat method caused the error (if applicable, otherwise this is an empty string)
errorString containing the error message itself
dataEmpty vector

Signal#

Signals are method calls that do not expect a response of any kind.

Field NameValue
type1
objectPath to object to send signal to
methodName of the method to execute
dataFlexbuffer containing arguments to pass to remote method

Method Call#

Method calls allow for remote procedure calling.

Field NameValue
type2
idDynamically generated ID to identify method return for this method
objectPath to object to execute method on
methodName of the method to execute
dataFlexbuffer containing arguments to pass to remote method

Method Return#

Message to pass the return value back to the program.

Field NameValue
type3
idThe same as the message call's ID
dataFlexbuffer containing return value

Data Types#

Stardust does not support the Map or FixedTypedVector flexbuffers datatypes.

Color#

A Vector of 4 float is treated as a Color in the form RGBA.

Vector2#

A Vector of 2 double is treated as a Vector2.

Vector3#

A Vector of 3 double is treated as a Vector3.

Quaternion#

A Vector of 4 double is treated as a Quaternion.

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/environment.html b/docs/stardust-protocol/server/objects/environment.html index 6b52c148..6cacc372 100644 --- a/docs/stardust-protocol/server/objects/environment.html +++ b/docs/stardust-protocol/server/objects/environment.html @@ -4,14 +4,14 @@ -/environment | Stardust XR - +/environment | Stardust XR +
-

/environment

Signals#

visible(bool enable)#

Enable or disables the skybox visibility (lighting remains active). This is not meant to be used for an additive AR mode as StereoKit will perform that when the OpenXR runtime indicates the layer's blend mode is additive.

setSkytex(string path)#

Sets the sky texture to be the image (HDR) at the absolute path.

setLighting(string path)#

Sets the ambient lighting (using spherical harmonics) to the HDR at the absolute path.

- +

/environment

Interface managing the skytex and skylight (equivalent of desktop background).

Signals#

visible(bool enable)#

Enable or disables the skybox visibility (lighting remains active). This is not meant to be used for an additive AR mode as StereoKit will perform that when the OpenXR runtime indicates the layer's blend mode is additive.

setSkytex(string path)#

Sets the sky texture to be the image (HDR) at the absolute path.

setLighting(string path)#

Sets the ambient lighting (using spherical harmonics) to the HDR at the absolute path.

+ \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/field.html b/docs/stardust-protocol/server/objects/field.html index 8db0911e..e53f17c3 100644 --- a/docs/stardust-protocol/server/objects/field.html +++ b/docs/stardust-protocol/server/objects/field.html @@ -5,13 +5,13 @@ /field | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/hmd.html b/docs/stardust-protocol/server/objects/hmd.html index 9e83a77b..c6d73d0a 100644 --- a/docs/stardust-protocol/server/objects/hmd.html +++ b/docs/stardust-protocol/server/objects/hmd.html @@ -4,14 +4,14 @@ -/hmd | Stardust XR - +/hmd | Stardust XR + - + + \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/input.html b/docs/stardust-protocol/server/objects/input.html index 2f058b04..057ea961 100644 --- a/docs/stardust-protocol/server/objects/input.html +++ b/docs/stardust-protocol/server/objects/input.html @@ -5,13 +5,13 @@ /input | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/lifecycle.html b/docs/stardust-protocol/server/objects/lifecycle.html index e4527b93..8eee1b32 100644 --- a/docs/stardust-protocol/server/objects/lifecycle.html +++ b/docs/stardust-protocol/server/objects/lifecycle.html @@ -5,13 +5,13 @@ /lifecycle | Stardust XR - +
-

/lifecycle

Object representing the life cycle of the Stardust server, from start to each frame to end.

Signals#

subscribeLogicStep(string path, string method)#

Executes method on object at path on the client when the main logic loop of the server starts each frame.

method must have arguments of (double delta, double timeToRender).

delta gives the time in seconds between the current time and the last time the logic loop executed while timeToRender gives the time in ms since epoch when the current frame is expected to reach the user's eyes.

- +

/lifecycle

Object representing the life cycle of the Stardust server, from start to each frame to end.

Signals#

subscribeLogicStep(string path, string method)#

Executes method on object at path on the client when the main logic loop of the server starts each frame.

method must have arguments of (double delta, double timeToRender).

delta gives the time in seconds between the current time and the last time the logic loop executed while timeToRender gives the time in ms since epoch when the current frame is expected to reach the user's eyes (returns 0 for now).

+ \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/model.html b/docs/stardust-protocol/server/objects/model.html index 20030a42..377d3731 100644 --- a/docs/stardust-protocol/server/objects/model.html +++ b/docs/stardust-protocol/server/objects/model.html @@ -5,13 +5,13 @@ /model | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/objects/spatial.html b/docs/stardust-protocol/server/objects/spatial.html index 6526a7d2..3ae56e6c 100644 --- a/docs/stardust-protocol/server/objects/spatial.html +++ b/docs/stardust-protocol/server/objects/spatial.html @@ -5,13 +5,13 @@ /spatial | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/Model.html b/docs/stardust-protocol/server/types/Model.html index ed9cfdc5..5284ac9d 100644 --- a/docs/stardust-protocol/server/types/Model.html +++ b/docs/stardust-protocol/server/types/Model.html @@ -5,13 +5,13 @@ Model | Stardust XR - +

Model

Derived from Spatial#

A graphical model.

Properties#

setOrigin(Vector3 origin)#

Sets the origin to origin.

setOrientation(Quat orientation)#

Sets the orientation to orientation.

setPose(Vector3 origin, Quat orientation)#

Sets the pose using origin and orientation absolutely.

destroy()#

Destroys the model instance. Resources like the mesh and material and textures may be in memory still, but the resource manager will clean it up if needed.

setMaterialProperty(uint32 submeshIndex, string propertyName, float value)#

setMaterialProperty(uint32 submeshIndex, string propertyName, Color value)#

setMaterialProperty(uint32 submeshIndex, string propertyName, string value)#

Sets the material property propertyName on this model's submesh at submeshIndex to value. Valid material names are:

NameTypeDescription
colorColorTint/multiply the shader's output color by this amount. (default is opaque white)
roughnessfloatScale the metal texture's roughness by this amount
metallicfloatScale the metal texture's metalness by this amount
tex_scalefloatScale the UV coordinates of all textures by this amount
diffusestringPath to the diffuse texture of the material (if it has one).
emissionstringPath to the emission texture of the material (if it has one).
metalstringPath to the metalness texture of the material (if it has one).
normalstringPath to the normal map texture of the material (if it has one).
occlusionstringPath to the occlusion map texture of the material (if it has one).
- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/Node.html b/docs/stardust-protocol/server/types/Node.html index 38991124..69892451 100644 --- a/docs/stardust-protocol/server/types/Node.html +++ b/docs/stardust-protocol/server/types/Node.html @@ -5,13 +5,13 @@ Node | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/Spatial.html b/docs/stardust-protocol/server/types/Spatial.html index b2ac1462..65e8109c 100644 --- a/docs/stardust-protocol/server/types/Spatial.html +++ b/docs/stardust-protocol/server/types/Spatial.html @@ -5,13 +5,13 @@ Spatial | Stardust XR - +

Spatial

Derived from Node#

A base type for types that exist in 3D space, always relative to another space or the engine's world space. Spatials are always relative because in AR or XXR reference spaces change constantly in response to new environments.

Internal Properties#

Sometimes it makes sense for a Spatial to not be scalable (like in Fields where scaling dramatically increases the number of steps to raymarch for pointers) or not be rotatable (point lights) or such, so these are disabled for certain Spatial-derived objects, mentioned right after "Derived from Spatial".

translatable: bool#

If false, object's origin cannot be modified from a client.

rotatable: bool#

If false, object's rotation cannot be modified from a client (e.g. point lights, point sound sources).

scalable: bool#

If false, object's scale cannot be modified from a client (e.g. Fields, PointerInput).

Methods#

move(Vector3 position)#

Moves the Spatial relative to itself if translatable is not false.

rotate(Quat rotation)#

Rotates the Spatial relative to itself if rotatable is not false.

rotateAround(Vector3 point, Quat rotation)#

Rotates the Spatial around point (relative to itself) if rotatable is not false.

scale(float scale)#

Multiplies the Spatial's scale vector by scale if scalable is not false.

setOrigin(Vector3 origin)#

Sets the origin to origin if translatable is not false.

setOrientation(Quat orientation)#

Sets the orientation to orientation if rotatable is not false.

setScale(Vector3 scale)#

Sets the scale to scale if scalable is not false.

setPose(Vector3 origin, Quat orientation)#

Sets the pose relative to the Spatial's space if translatable and rotatable are true. This method saves on IPC calls compared to setOrigin and setOrientation in sequence.

setTransform(Vector3 origin, Quat orientation)#

Sets the transform relative to the Spatial's space if translatable, rotatable and scalable are true. This method saves on IPC calls compared to setOrigin, setOrientation, and setScale in sequence.

setSpatialParent(string parentPath)#

Sets the spatial parent of this Spatial while keeping the "absolute" position in space intact.

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/field/BoxField.html b/docs/stardust-protocol/server/types/field/BoxField.html index 7e445662..37c0d9c7 100644 --- a/docs/stardust-protocol/server/types/field/BoxField.html +++ b/docs/stardust-protocol/server/types/field/BoxField.html @@ -5,13 +5,13 @@ BoxField | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/field/Field.html b/docs/stardust-protocol/server/types/field/Field.html index 01a7a543..56080f51 100644 --- a/docs/stardust-protocol/server/types/field/Field.html +++ b/docs/stardust-protocol/server/types/field/Field.html @@ -5,13 +5,13 @@ Field | Stardust XR - +

Field

Derived from Spatial#

Type that contains methods all Fields share. All fields created are under /field. See /field for the field factory.

Methods#

double distance(string spacePath, Vector3 point)#

Returns the distance from point to the surface of the object, positive if the point is outside and negative if inside. When point is far enough away the object will give an approximate distance to the origin instead of the surface.

Vector3 normal(string spacePath, Vector3 point)#

Returns the normal of point compared to the surface of the object. Normal always points toward object.

Vector3 closestPoint(string spacePath, Vector3 point)#

Returns the closest point from point to the surface of the object. Use this instead of distance and normal when best to limit IPC calls.

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/field/SphereField.html b/docs/stardust-protocol/server/types/field/SphereField.html index bad0fc0d..76dd8a7c 100644 --- a/docs/stardust-protocol/server/types/field/SphereField.html +++ b/docs/stardust-protocol/server/types/field/SphereField.html @@ -5,13 +5,13 @@ SphereField | Stardust XR - + - + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/input/InputHandler.html b/docs/stardust-protocol/server/types/input/InputHandler.html index 1166da03..aaa60e45 100644 --- a/docs/stardust-protocol/server/types/input/InputHandler.html +++ b/docs/stardust-protocol/server/types/input/InputHandler.html @@ -5,13 +5,13 @@ InputHandler | Stardust XR - +

InputHandler

Derived from Spatial (scalable: false)#

A handler to allow clients to recieve input.

Methods#

setOrigin(Vector3 origin)#

Sets the origin to origin.

setOrientation(Quat orientation)#

Sets the orientation to orientation.

setPose(Vector3 origin, Quat orientation)#

Sets the pose using origin and orientation relative to the pose's space.

setField(string field)#

Sets the field this input handler will use.

setCallback(string callbackPath, string callbackMethod)#

Sets the callback this input handler will use.

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/input/InputMethod.html b/docs/stardust-protocol/server/types/input/InputMethod.html index 5815b6d2..2273f339 100644 --- a/docs/stardust-protocol/server/types/input/InputMethod.html +++ b/docs/stardust-protocol/server/types/input/InputMethod.html @@ -5,13 +5,13 @@ InputMethod | Stardust XR - +

InputMethod

Derived from Spatial (scalable: false)#

Represents an input device generically, with specifics being fleshed out in subclasses.

Internal Properties#

type: uint8#

NameDescription
0GlobalA non-spatial input, used for power buttons and system volume and such
1ControllerContains a pose and datamap for buttons, trackpad, joystick, grip, trigger, etc.
2PointerInputDefined by origin, direction, and tilt with datamap for buttons, trackpad, etc.
3HandInputContains a full 27-bone hand skeleton (including forearm) and datamap for abstractions like grip, pinch distance/point, etc.

datamap: Dictionary#

See Datamap:

Internal Methods#

distanceToField(string field)#

Returns the distance from this input to a field in meters. field is the name of the field, not the full path.

serialize()#

Returns a serialized version of the InputMethod, each serialized schema is shown under #Serialization in the respective Input subclasses.

Serialization#

KeyValue Type
typeint
distancefloat

Datamap#

The datamap is a dictionary containing abstracted and raw data related to the input that clients can use to analyze input in the most optimal way. It has keys of type Key(Flexbuffers-specific, in any other language use a String) and values:

TypeExample UsesUsage Notes
boolDigital buttonsIf values are analog, use a float instead with 1.0 being considered true.
floatAnalog trigger, gripFor values such as grip/trigger, make the range 0.0-1.0, for something like a scroll wheel -0.5-0.5.
Vector2Touchpad, joystickFor values such as trackpad and joystick, make each component in the range of -0.5-0.5 and calculate+apply deadzone before setting these values.
Vector3Pinch position, grip axis vectorFor points and directions, make this a value inside the InputMethod's local space. Raw hand pose data should not be put in the datamap.

Standard supported datamap keys will be put in the individual type's documentation, however you can put more data in and some input handlers may be able to use that data for better interactions.

Methods#

modifyDatamap(Dictionary data)#

Merges the datamap of this InputMethod with data. Each key here will add to the datamap if not present and set the existing value if present. Any key not present in data will be unaffected.

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/input/inputtypes/HandInput.html b/docs/stardust-protocol/server/types/input/inputtypes/HandInput.html index 410604fb..e2b612fe 100644 --- a/docs/stardust-protocol/server/types/input/inputtypes/HandInput.html +++ b/docs/stardust-protocol/server/types/input/inputtypes/HandInput.html @@ -5,13 +5,13 @@ HandInput | Stardust XR - +

HandInput

Derived from InputMethod#

A full 27-bone hand+forearm input with useful abstractions provided through the datamap.

The local space of a hand is where +Z is away from the palm, +Y is from the palm to the fingers, and +X is orthogonal and to the right.

Serialization#

KeyValue Type
originVector3
directionVector3
tiltfloat
datamapDictionary
[    thumb metacarpal,    thumb proximal,    thumb distal,    thumb tip,    index metacarpal,    index proximal,    index intermediate,    index distal,    index tip,    middle metacarpal,    middle proximal,    middle intermediate,    middle distal,    middle tip,    ring metacarpal,    ring proximal,    ring intermediate,    ring distal,    ring tip,    little metacarpal,    little proximal,    little intermediate,    little distal,    little tip]

(This section is WIP)

Datamap#

Required#

KeyValue TypeDescription
confidencefloat (range 0.0-1.0)How confident the hand tracker is of the pose of the hand
isLeftbooltrue if this hand is the left hand, false if not
pinchStrengthfloat (range 0.0-1.0)How much the hand is pinching
pinchDistancefloat (>0.0)The distance in meters between the thumb and index finger
grabStrengthfloat (range 0.0-1.0)How much the hand is making a fist

Methods#

TODO: Properly secured field distance calculation accessible to clients

- + \ No newline at end of file diff --git a/docs/stardust-protocol/server/types/input/inputtypes/PointerInput.html b/docs/stardust-protocol/server/types/input/inputtypes/PointerInput.html index 70768309..c828ee07 100644 --- a/docs/stardust-protocol/server/types/input/inputtypes/PointerInput.html +++ b/docs/stardust-protocol/server/types/input/inputtypes/PointerInput.html @@ -5,13 +5,13 @@ PointerInput | Stardust XR - +

PointerInput

Derived from InputMethod#

An input method for pointers, such as the Daydream's remote, a pointer put on an Index controller, Oculus style laser mouse, and your desktop's mouse in flatscreen.

The local space for a pointer is where +Z is along the pointer's direction, +X is to the right of the pointer when laying face up, and +Y is upward when laying face up.

Serialization#

KeyValue Type
originVector3
directionVector3
tiltfloat
datamapDictionary

Datamap#

Required#

KeyValue TypeDescription
selectfloat (range 0.0-1.0)Whether the pointer is attempting to select an object, usually through trigger. 1.0 is selected, 0.0 is not selected, and inbetween is to add smoothness to the interaction.
grabfloat (range 0.0-1.0)How much the pointer is attempting to grab an object. 0.0 is not grabbing at all, 1.0 is grabbing the strongest, and inbetween is to add smoothness.
scrollVector2 (component range -0.5-0.5)The amount to scroll on this input tick (sensitivity determined on the receiving client). Can be used for 2D scrolling as well as adjusting depth/size when grabbing an object.

Built in#

KeyValue TypeDescription
deepestPointDistancefloat (>=0.0)The distance along the ray where the deepest surface point resides.

Methods#

setDirection(Vector3 direction)#

Sets the direction the pointer is pointing in stage space.

setTilt(float angle)#

Sets the tilt of the pointer (rotation about the pointer direction) clockwise in radians.

setOrientation(Vector3 direction, float angle)#

Sets the direction and tilt of the pointer to save on IPC calls.

setPose(Vector3 origin, Vector3 direction, float angle)#

Sets the origin, direction, and tilt of the pointer to save on IPC calls.

- + \ No newline at end of file diff --git a/img/favicon.ico b/img/favicon.ico index 4d1504d8e69a5ed100c8c28c576bd091e22d5525..2b792e099c24045779afc6290f0bb7dcdfd7e84a 100644 GIT binary patch literal 15406 zcmeI3e~eUD702JQ%L)h!#zG4PTw^JPXr;ERP)#7EO&V>Arm;q8y96{stZcDGL>keU zh&3_dkJz+?B5Ar2D`?V$KiX(F28;bcjR{(T+7%jpEbPyjcW2mAX8e5Ln>YJ*=DnFa zv$ImCa`BCnpk1omA@6L2K0+V>Tp{$&Utg zB}>=c{q9Z*>;t$w>N$o zbH-pdIMCVIIiav^_!-)%&~+?KrQW6=VgH$oj(L9$w<)}r4|u*C^4~(5vd@xbDKC6WkB)ia=IA9`tI)TCdOcn)89{|9otK?dwYAQ;)5$Zlo8MSalib$ z3|Zwr8?y`fyW$%1?oQ!-Sr0CNou19&h%2pEJn>`NAuqN>w5QLC>klLQB52dNMUYij zl}JoS{-6ilM_kBUM_lNZe8%AMn#w2ch2mgqgm}f>_aS>HID{Rpj-sim&X47LL-O~= zjRA34@!KjkTI-Tde+0W<$jjF_#EgM8&q@fB$qjkgno9)L5*(N{|NdXl=#}&Wb$78Ee$f@nOf;Ue?Gq5 zn71Y%s~-Fq6zQORg7+NSHOPJe*|mvz;^Vqo<#SEQ-2w){CNL2U8w+SiD1Lavb;-O( zc=>W$k$VJqdDAN79R~(<0_AhVY{fynQRODLy<22nrJoc>Uakq2(hc^R_%#l-)GKh8`evW$FgBm#Ms%!oGa2H7k@R^f!Ao8 z!3HnVhaJP(TRtFn6+BiHlJ}Eub{g}aB|)EqGBp1rmRI$r zZQ$2(1|Q3>AAO%Intzeq3T+qAJn#lK`A{i&HowuYrSLkY*ta_9w@TNI%s-&L89fdj z#V2g|+t6VD7WgI~NTq&}_W{M(n2U9*w?`23b5+&!=@VYQQzrkcin(ng`BRzv+m=<; zbY<2bRr9rNXu1BfWmhpB`w_(XsTH@o(%_P@fc8n0D6RsR+dc_h8k;Md9XB?DYA1!g zk%{NepI_*4Oe8)}EN!VB_tEFXJa}DCPmjM}Prk(*{GCdro;-PS5_9^BYI3wnWyR97 zM}qGAu>bSKQtLbcog0*2G8g}s{OU{ZSs&y##vBJ{ZGA|4<>X^q$YZoOrTpwHSa;&Y ziHWgx8m%A5P06FqpnE@iD0kS1k?pbjUEnSB*529y`m|*0)~#b32mBmJYoZj;USJzO zR8j|YXZe_#gU@^m-Fv`!?pIP@`8wUkSfyxm-eJrRa50A+PFL6DQcbY+P3Zh*kOJ}@ z;dpMXRkH7;_*V6s_WV+*SMzzee?PYrFYG){dvoag6wn&)2w41{*gu*47P*j=-+F!%ti|Lc@|^qkp4?*qV@N&+e4#{+tPCU`EcyI=fg8Zpl4I`jWWc5UIcF$uSv+H7{}=LLZ*f zd0>Z9<2qK_AFWLMQr?JqTRD`<&edW`Rgw^2eZ$4ej4OR^l5ITXn4H{C)1( z=(`TQDZK-`uSCz+0gm9E0jUqCKs(U4K_$i^!#JGqcoM^c*kq-TEz!AiQ;@$DJdCWr zB1<{(usKTa?lSN!NPxrOK`;jto##yPZ^uEkE*M(So$>AEw~{eF1thTkd5 zbfMj^L$`;3&P{Iu>ciJKBU@1J91XgBpZqhm;9O0yK(gAAy$Z~X{dc2_G&zTwXt=WM)Q~2l8=%%%pA?R zS2+%A)49kfUPo)a<+_hlGzN;l>`h_!26#3w|Ly{dM`Fsjw(zfGFK;0>dRF^Ok#yQ$ zV%^O+q%HhMG3;q{AFnkcIp}@po`(M)I8$qmv{9tc@|C&o)K!+j>7KVy@t;P*IuyWyFoydeIR4=OJ#uU&ZxY|#kM&%smsNg3q4g1vO+ zTb$!EP796sdJAWmv10%ee0~kKA15B<`?pi|hIoTcWNij7=sdQ(cJ>tLd?S22;JYBM zmBzh?Z;TFNPo075TcDzTxbCaO-(h>1=uN7fIs^Yl!S{H6mvXzt2c9)qE5m03wpxbY z6n{sZ>ku^Kk^9rPk*{w_8VmK;_Zt!Gcl8^cchHA@;57Fd3yt?4{OFcAd)2yL@d^2_ z@eP3YEqIabwJwgy@#*(9w0#7f2Xgwml)D)BQQvRDe)Ytq)yV6RY~{`RmPl*Jd>{OM z(00YkIJ@P>Z!O%+le3Seo=mVA9m)$>9A0XX^ zJ?2%T%ShTFyOHt!iTd#5z`$bGRWIlDS6*+-Y#aXAVw!AXLtASa{CJV#D}JK0qbJbW z-#^#=>C>_Aey#PWmS5g(vY%p21?Lyl${e+J`kx=2AEi=#9olu^E9`@eIQ@V!EN#R69>a9LR3e`yQMMgRZ+ literal 15406 zcmeI2e~1-T6vxLOyZ+Wy^9PIRs#F#vTWMODCW%E5NtRiX3Z(>6RQ^$xwi1=4VH6@5 zWg-!@R8oJGP;RDS6e|6&Ox@aA-9%mA?!I@=teWohIWuqG?)$a-+xWp5gN5yTM%eazOJq)axE;sodzWn=w2awQUS8fKQyK8l8a$!UAavJ3p(7$| zZQGvSmW-;Zs@~Mw_Io5U0=})5Z97VHMgIQEaeBAKZ-H}mW8)Hdcl*4tRLhLHL+d2U z*}HddK{y<~+WkhIAtHNjNADnL6f_z_=B{-7iSk5b)CbhB5OGFA-9+A{9lIsgOMHi~ zI97)L#^5{kpXG&D2}jpMZKY0Q5YTIj#9PGlXr z9q1#l42rAYffwY>hu%^9TrtEQy7$L)M}06GJQ3Tj(KSW~)WxyV&LznE4PqG-p37KM zK)ipNsM~)ZD)PBoCr(PoUahoWGU1?LV&a{qcjdE)|Yix^r4K=0J>Bpg; zYF*_~-iz!Lw6ktcyeEbJ@xG4M(st^njW09CZ1B~`rTG6=k*c53I{}&uv9NUe-xH)O zqIvB8(QT_Z=Ip#gB9SLgi=2A}UEe`;IHxZ(fwgoYgulzP9e;_)_eCPNEvNq-L+?&> zma1Oz*u6hzb1`l45dFPa^?JH>EXq#IM-8UWFC`WW677$@i&VI}J^dB2@+@S|oH=t9 z{r(v3y&$bP?OVS6(fKEB-FAFX3_hFYTfV#Hx_=Ql>r#O8FM6-R7yF>^HSc3`Q(b!m zy#62t*rv+MN}5m5pOf_$`__KwPG0AB_WILtdeP^5#rY)vlJ`K~0~vcj&q+$5#Zdm7 z1SjO5ya)0g_>-A{ zGorwh1t7SwaV+=`vzM!}IByC-Ltr9xf4ofO)q$KzfIosA_XMUa%Yqeqt;iJ4ZH^Xt zd-(Ij&?;icyQ9mpzHE!*oND$7k)P)I=W?1Fv(3`G@k`)gPdng4V;<%nxaB!=$cjWJ z`ta-P>&N-|E}0thJTc#VF6y%hJl(&r#H+^PK~*Rb*7__TK_+&9Gez8Qbh2$A=VZGXa(7S~@ zgjwir9#ixTDIC_b{OTm%M{O8RpZEb1+Ya&M{C-hm7VKN0v(Q0kS?mr-|Hbg`1DgA- z@B3(4K)Mk8JB(R@?K!=h(-^I*t1H5W*TH>(^e}NW*^OVtV$2Tkr^W8KNe}um2YYi!*fGY3oHFI?etaY{Z-Z^0 z41wumhzlNPIJ6jY*Po|W)&-bVB{k0kKX1NkR?*;y) z+}S@xzR(v>zQ68u{r9+3|7Ftui8SVwI(h#N)}H!rT}zC_(?Z(hk(On#yzXUednMTa zf%N?3IjgL!d9M?znEQvZLhA~&!fnbMUZwu((-DAPHwRYCcWc@N}0koQ2|19=bpw> Stardust XR - +

Stardust XR

We Fight for the Users!

Flexible

Flexible

Stardust allows you 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. The compiled server binary when statically linking StereoKit is less than 10MB and uses ~50MB of RAM (varies depending on clients).

- + \ No newline at end of file diff --git a/roadmap.html b/roadmap.html index eecb3707..6c1e1cea 100644 --- a/roadmap.html +++ b/roadmap.html @@ -5,13 +5,13 @@ Roadmap | Stardust XR - +

Roadmap

MVP#

  • Core functionality
    • IPC+RPC
    • Protocol documentation
  • Client
    • Fusion
      • Initial connection
      • Node type creation/destruction
      • Interface interaction
      • Callbacks
  • 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
          • sk-wlroots (for Wayland)
            • Statically link wlroots
            • Rendering
            • Input seats
        • Panel shells
          • Accept panel items
          • Put surface on model material's texture
          • Feed input through to panel
          • Release panel items
- + \ No newline at end of file