build: Update build_release_vitepress.yml

Pin Convetional Commits changelog to v6
This commit is contained in:
ZanzyTHEbar 2024-06-18 10:33:30 +00:00
parent ffe4a1a263
commit b5ccd07d6f
116 changed files with 389 additions and 359 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{V as i,a as s,b as l,c as r}from"./chunks/theme.ac837e30.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.0394bef4.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
import{V as i,a as s,b as l,c as r}from"./chunks/theme.1c401737.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.3235ab14.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};

View File

@ -1 +1 @@
import{V as i,a as s,b as l,c as r}from"./chunks/theme.ac837e30.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.0394bef4.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};
import{V as i,a as s,b as l,c as r}from"./chunks/theme.1c401737.js";import{o as u,c,H as n,w as a,l as o,a as e,k as t}from"./chunks/framework.3235ab14.js";const h=[{name:"Prohurtz",avatar:"https://avatars.githubusercontent.com/u/48768484?v=4",title:"Creator / Lead Software Developer / Documentor / Hardware Developer",links:[{icon:"github",link:"https://github.com/RedHawk989"}]},{name:"Summer",avatar:"https://avatars.githubusercontent.com/u/115666235?v=4",title:"Machine Learning Engineer / Data Scientist / App Developer",links:[{icon:"github",link:"https://github.com/Summer404NotFound"}]},{name:"lorow",avatar:"https://avatars.githubusercontent.com/u/14099558?v=4",title:"Lead Firmware Developer / App Developer",links:[{icon:"github",link:"https://github.com/lorow"}]},{name:"DaOfficialWizard",avatar:"https://avatars.githubusercontent.com/u/45744329?v=4",title:"Firmware Developer / Documentation Manager / App Developer",links:[{icon:"github",link:"https://github.com/ZanzyTHEbar"}]}],m=[{name:"qdot",avatar:"https://avatars.githubusercontent.com/u/34539?v=4",links:[{icon:"github",link:"https://github.com/qdot"}]},{name:"dfgHiatus",avatar:"https://avatars.githubusercontent.com/u/51272212?v=4",links:[{icon:"github",link:"https://github.com/dfgHiatus"}]},{name:"PallasNeko",avatar:"https://avatars.githubusercontent.com/u/124042774?v=4",links:[{icon:"github",link:"https://github.com/PallasNeko"}]}],d=t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1),p=t("br",null,null,-1),b=t("br",null,null,-1),_=t("br",null,null,-1),g=t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),v=t("br",null,null,-1),k=t("br",null,null,-1),f=t("br",null,null,-1),w=t("br",null,null,-1),T=t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),y=t("br",null,null,-1),P=t("br",null,null,-1),x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),D={name:"about.md"},z=Object.assign(D,{setup(V){return(S,H)=>(u(),c("div",null,[n(o(r),null,{default:a(()=>[n(o(i),null,{title:a(()=>[d]),lead:a(()=>[e(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),p,b,e(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")]),_:1}),n(o(s),{size:"medium",members:o(h)},null,8,["members"]),n(o(l),null,{title:a(()=>[e("Contributors")]),lead:a(()=>[e("Those who have actively contributed to development."),_,e(" Community Support")]),members:a(()=>[n(o(s),{size:"small",members:o(m)},null,8,["members"])]),_:1}),n(o(l),null,{title:a(()=>[e("Philosophy")]),lead:a(()=>[e(" The "),g,e(" on this website include some of our team's own notes (not all of them are polished) that we disclose for other people to use."),v,k,e(" Here, we hope you may find something useful to you."),f,w,e(" We advocate the "),T,e("."),y,P,e(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")]),_:1})]),_:1})]))}});export{x as __pageData,z as default};

View File

@ -1 +1 @@
import{u as p,y as i,s,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,ac as v,ad as C,V as P,d as y,j as _,ae as w,af as T,ag as b,ah as E}from"./chunks/framework.0394bef4.js";import{t as R}from"./chunks/theme.ac837e30.js";const D={};const S={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...D};function u(e){if(e.extends){const t=u(e.extends);return{...t,...e,async enhanceApp(a){t.enhanceApp&&await t.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const o=u(S),j=y({name:"VitePressApp",setup(){const{site:e}=p();return _(()=>{i(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),T(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function x(){const e=V(),t=O();t.provide(l,e);const a=f(e.route);return t.provide(d,a),t.component("Content",m),t.component("ClientOnly",h),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:t,router:e,siteData:g}),{app:t,router:e,data:a}}function O(){return A(j)}function V(){let e=s,t;return v(a=>{let n=C(a),r=null;return n&&(e&&(t=n),(e||t===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&x().then(({app:e,router:t,data:a})=>{t.go().then(()=>{c(t.route,a.site),e.mount("#app")})});export{x as createApp};
import{u as p,y as i,s,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,ac as v,ad as C,V as P,d as y,j as _,ae as w,af as T,ag as b,ah as E}from"./chunks/framework.3235ab14.js";import{t as R}from"./chunks/theme.1c401737.js";const D={};const S={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...D};function u(e){if(e.extends){const t=u(e.extends);return{...t,...e,async enhanceApp(a){t.enhanceApp&&await t.enhanceApp(a),e.enhanceApp&&await e.enhanceApp(a)}}}return e}const o=u(S),j=y({name:"VitePressApp",setup(){const{site:e}=p();return _(()=>{i(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),T(),b(),o.setup&&o.setup(),()=>E(o.Layout)}});async function x(){const e=V(),t=O();t.provide(l,e);const a=f(e.route);return t.provide(d,a),t.component("Content",m),t.component("ClientOnly",h),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:t,router:e,siteData:g}),{app:t,router:e,data:a}}function O(){return A(j)}function V(){let e=s,t;return v(a=>{let n=C(a),r=null;return n&&(e&&(t=n),(e||t===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&x().then(({app:e,router:t,data:a})=>{t.go().then(()=>{c(t.route,a.site),e.mount("#app")})});export{x as createApp};

View File

@ -1 +1 @@
import{_ as o,i as t}from"./chunks/index.37fa0c7a.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.0394bef4.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a('<p>If you have different LEDs, please consult their datasheet.</p><p>Some terminology related to them:</p><p><code>5V</code>: 5-volt power in.</p><p><code>GND</code>: Ground or power out.</p><p><code>AR</code>: After-Resistor this is to be used as the power in on the 2nd PCB in series as resistors are not needed on the 2nd PCB since they are on the 1st one.</p><p><code>SNG</code>: Single resistor, use this as 5V in if you are using <em><strong>only 1</strong></em> <code>~700ohm</code> resistor on V3 boards <em><strong>(not recommended)</strong></em>.</p><p><code>Negative</code>: This marks the negative side of the LED.</p><p><code>Positive</code>: This marks the positive side of the LED.</p><h2 id="step-17-solder-resistors-on-pcb-v2" tabindex="-1">Step 17: Solder resistors on PCB V2 <a class="header-anchor" href="#step-17-solder-resistors-on-pcb-v2" aria-label="Permalink to &quot;Step 17: Solder resistors on PCB V2&quot;"></a></h2><p>You only need 1 PCB to have a resistor per eye.</p>',10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
import{_ as o,i as t}from"./chunks/index.15ec5911.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.3235ab14.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a('<p>If you have different LEDs, please consult their datasheet.</p><p>Some terminology related to them:</p><p><code>5V</code>: 5-volt power in.</p><p><code>GND</code>: Ground or power out.</p><p><code>AR</code>: After-Resistor this is to be used as the power in on the 2nd PCB in series as resistors are not needed on the 2nd PCB since they are on the 1st one.</p><p><code>SNG</code>: Single resistor, use this as 5V in if you are using <em><strong>only 1</strong></em> <code>~700ohm</code> resistor on V3 boards <em><strong>(not recommended)</strong></em>.</p><p><code>Negative</code>: This marks the negative side of the LED.</p><p><code>Positive</code>: This marks the positive side of the LED.</p><h2 id="step-17-solder-resistors-on-pcb-v2" tabindex="-1">Step 17: Solder resistors on PCB V2 <a class="header-anchor" href="#step-17-solder-resistors-on-pcb-v2" aria-label="Permalink to &quot;Step 17: Solder resistors on PCB V2&quot;"></a></h2><p>You only need 1 PCB to have a resistor per eye.</p>',10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};

View File

@ -1 +1 @@
import{_ as o,i as t}from"./chunks/index.37fa0c7a.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.0394bef4.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a("",10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};
import{_ as o,i as t}from"./chunks/index.15ec5911.js";import{o as r,c as l,H as s,l as i,k as e,a as n,Q as a}from"./chunks/framework.3235ab14.js";const d=e("h1",{class:"text-[var(--font-accent)]",id:"fox-ir-v2-buil-dinstructions",tabindex:"-1"},[n("Fox IR V2 Buil dInstructions "),e("a",{class:"header-anchor",href:"#fox-ir-v2-buil-dinstructions","aria-label":'Permalink to "Fox IR V2 Buil dInstructions {.text-[var(--font-accent)]}"'},"")],-1),_=e("h2",{id:"step-15-prepare-to-solder-ir-led-pcb-v2s",tabindex:"-1"},[n("Step 15: Prepare to solder IR LED PCB V2s "),e("a",{class:"header-anchor",href:"#step-15-prepare-to-solder-ir-led-pcb-v2s","aria-label":'Permalink to "Step 15: Prepare to solder IR LED PCB V2s"'},"")],-1),p=e("p",null,"Get your magnifying glass out, it's time to solder very smol things.",-1),c=e("p",null,"Gather 4 PCBs, 4 IR LEDs, and 2 ~700ohm resistors.",-1),h=e("p",null,"Here are the PCB pin-out labels:",-1),u=e("p",null,"LED labels:",-1),f=a("",10),m=e("p",null,"Tin the resistor pads.",-1),b=e("p",null,"Hold the resistor in place.",-1),v=e("p",null,"Solder one end.",-1),x=e("p",null,"Flip to the other side of the resistor and solder it.",-1),P=e("h2",{id:"solder-leds-on-pcb-v2",tabindex:"-1"},[n("Solder LEDs on PCB V2 "),e("a",{class:"header-anchor",href:"#solder-leds-on-pcb-v2","aria-label":'Permalink to "Solder LEDs on PCB V2"'},"")],-1),g=e("p",null,"Tin the pads",-1),B=e("p",null,"Place the resistor on the pads in the correct orientation.",-1),V=e("p",null,[n("Solder each side of the resistor. Be careful not to solder at too high of a temp, recommended soldering temp is "),e("code",null,"230C with a max of 245C"),n(".")],-1),C=e("h2",{id:"wire-up-the-pcbs-v2",tabindex:"-1"},[n("Wire up the PCBs V2 "),e("a",{class:"header-anchor",href:"#wire-up-the-pcbs-v2","aria-label":'Permalink to "Wire up the PCBs V2"'},"")],-1),S=e("p",null,"Basic full wiring diagram of IR PCBs V2.",-1),w=e("p",null,"The PCB that receives the 5V power is the one with the resistor. The second one, which gets its power from the ground pin of the first, does not have a resistor on it and its power input pin is the AR pin (After-Resistor). The 2nd PCBs ground pin goes to the ground of the system, in the diagram it is the ESPs ground pin.",-1),k=JSON.parse('{"title":"Fox IR V2 Buil dInstructions","description":"","frontmatter":{},"headers":[],"relativePath":"archive/fox_ir_v2_build_instructions.md","filePath":"archive/fox_ir_v2_build_instructions.md","lastUpdated":1676223729000}'),T={name:"archive/fox_ir_v2_build_instructions.md"},L=Object.assign(T,{setup(I){return(D,E)=>(r(),l("div",null,[d,_,p,c,s(o,{options:i(t).fox_ir_build_instructions_one},null,8,["options"]),h,s(o,{options:i(t).fox_ir_build_instructions_two},null,8,["options"]),u,s(o,{options:i(t).fox_ir_build_instructions_three},null,8,["options"]),f,s(o,{options:i(t).fox_ir_build_instructions_four},null,8,["options"]),m,s(o,{options:i(t).fox_ir_build_instructions_five},null,8,["options"]),b,s(o,{options:i(t).fox_ir_build_instructions_six},null,8,["options"]),v,s(o,{options:i(t).fox_ir_build_instructions_seven},null,8,["options"]),x,s(o,{options:i(t).fox_ir_build_instructions_eight},null,8,["options"]),P,s(o,{options:i(t).fox_ir_build_instructions_nine},null,8,["options"]),g,s(o,{options:i(t).fox_ir_build_instructions_ten},null,8,["options"]),B,s(o,{options:i(t).fox_ir_build_instructions_eleven},null,8,["options"]),V,s(o,{options:i(t).fox_ir_build_instructions_twelve},null,8,["options"]),C,S,s(o,{options:i(t).fox_ir_build_instructions_thirteen},null,8,["options"]),w]))}});export{k as __pageData,L as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as l,o as t,c as r,k as o,r as i,n as c,a1 as d,a3 as p}from"./framework.0394bef4.js";const u={data(){return{isOpen:!1}},methods:{toggleAccordion(){this.isOpen=!this.isOpen}}},_=["aria-expanded","aria-controls"],h=o("path",{d:"M15 1.2l-7 7-7-7","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),f=[h],m=["id"];function w(e,n,k,v,s,a){return t(),r("div",null,[o("button",{onClick:n[0]||(n[0]=g=>a.toggleAccordion()),class:"flex items-center space-x-3","aria-expanded":s.isOpen,"aria-controls":`collapse${e._uid}`},[i(e.$slots,"title"),(t(),r("svg",{class:c(["w-3 transition-all duration-200 transform",{"rotate-180":s.isOpen,"rotate-0":!s.isOpen}]),fill:"none",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 10","aria-hidden":"true"},f,2))],8,_),d(o("div",{id:`collapse${e._uid}`},[i(e.$slots,"content")],8,m),[[p,s.isOpen]])])}const x=l(u,[["render",w]]);export{x as A};
import{_ as l,o as t,c as r,k as o,r as i,n as c,a1 as d,a3 as p}from"./framework.3235ab14.js";const u={data(){return{isOpen:!1}},methods:{toggleAccordion(){this.isOpen=!this.isOpen}}},_=["aria-expanded","aria-controls"],h=o("path",{d:"M15 1.2l-7 7-7-7","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),f=[h],m=["id"];function w(e,n,k,v,s,a){return t(),r("div",null,[o("button",{onClick:n[0]||(n[0]=g=>a.toggleAccordion()),class:"flex items-center space-x-3","aria-expanded":s.isOpen,"aria-controls":`collapse${e._uid}`},[i(e.$slots,"title"),(t(),r("svg",{class:c(["w-3 transition-all duration-200 transform",{"rotate-180":s.isOpen,"rotate-0":!s.isOpen}]),fill:"none",stroke:"currentColor",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 10","aria-hidden":"true"},f,2))],8,_),d(o("div",{id:`collapse${e._uid}`},[i(e.$slots,"content")],8,m),[[p,s.isOpen]])])}const x=l(u,[["render",w]]);export{x as A};

View File

@ -1 +1 @@
import{o as e,c as t,k as o,F as _,D as a,t as n}from"./framework.0394bef4.js";const i={class:"checkboxes"},r={style:{"list-style":"none"}},h={key:0},k=o("input",{type:"checkbox",checked:""},null,-1),d={key:0},p=["href"],u={key:1},b={key:1},y=o("input",{type:"checkbox",unchecked:""},null,-1),f={key:0},x=["href"],g={key:1},F={__name:"CheckBoxList",props:["options"],setup(c){const l=c;return(B,v)=>(e(),t("div",i,[o("ul",r,[(e(!0),t(_,null,a(l.options.object,s=>(e(),t("li",null,[l.options.state?(e(),t("div",h,[k,s.link!==null||l.link!==""?(e(),t("label",d,[o("a",{href:s.link,target:"_blank"},n(s.label),9,p)])):(e(),t("label",u,n(s.label),1))])):(e(),t("div",b,[y,s.link!==null||l.link!==""?(e(),t("label",f,[o("a",{href:s.link,target:"_blank"},n(s.label),9,x)])):(e(),t("label",g,n(s.label),1))]))]))),256))])]))}};export{F as _};
import{o as e,c as t,k as o,F as _,D as a,t as n}from"./framework.3235ab14.js";const i={class:"checkboxes"},r={style:{"list-style":"none"}},h={key:0},k=o("input",{type:"checkbox",checked:""},null,-1),d={key:0},p=["href"],u={key:1},b={key:1},y=o("input",{type:"checkbox",unchecked:""},null,-1),f={key:0},x=["href"],g={key:1},F={__name:"CheckBoxList",props:["options"],setup(c){const l=c;return(B,v)=>(e(),t("div",i,[o("ul",r,[(e(!0),t(_,null,a(l.options.object,s=>(e(),t("li",null,[l.options.state?(e(),t("div",h,[k,s.link!==null||l.link!==""?(e(),t("label",d,[o("a",{href:s.link,target:"_blank"},n(s.label),9,p)])):(e(),t("label",u,n(s.label),1))])):(e(),t("div",b,[y,s.link!==null||l.link!==""?(e(),t("label",f,[o("a",{href:s.link,target:"_blank"},n(s.label),9,x)])):(e(),t("label",g,n(s.label),1))]))]))),256))])]))}};export{F as _};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{o as n,c as r,k as e,H as s,t as i,n as o,r as _,C as x}from"./framework.0394bef4.js";const c={class:"my-2 max-w-xs rounded-lg bg-white px-4 py-4 shadow-xl ring-1 ring-slate-900/5 dark:bg-slate-800"},d={class:"drop-shadow-lg"},b={__name:"Alerts",props:["options"],setup(t){return(l,p)=>{const a=x("Badge");return n(),r("div",c,[e("div",null,[e("span",d,[s(a,{type:t.options.type,text:t.options.badge_content},null,8,["type","text"])])]),e("div",{class:o(["mt-2 pl-1 text-2xl font-bold tracking-tight text-slate-900",t.options.title_color])},i(t.options.title),3),e("p",{class:o(["mt-2 pl-1 text-sm",t.options.text_color])},[_(l.$slots,"content")],2)])}}},u={user_warning:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},led_power_warning:{type:"danger",title:"Please pay attention",title_color:"text-[#b63a61] dark:text-[#ea4b7d]",text_color:"text-orange-400 dark:text-orange-500",badge_content:"WARNING"},parts_list_one:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},parts_list_two:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_three:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_four:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_five:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},parts_list_six:{type:"tip",title:"",title_color:"text-[green]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"TIP"},upload_firmware_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},configure_firmware_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},build_software_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},eyetrack_vr_guide_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},eyetrack_vr_guide_two:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},vrc_avatar_setup:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},end_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"}};export{b as _,u as a};
import{o as n,c as r,k as e,H as s,t as i,n as o,r as _,C as x}from"./framework.3235ab14.js";const c={class:"my-2 max-w-xs rounded-lg bg-white px-4 py-4 shadow-xl ring-1 ring-slate-900/5 dark:bg-slate-800"},d={class:"drop-shadow-lg"},b={__name:"Alerts",props:["options"],setup(t){return(l,p)=>{const a=x("Badge");return n(),r("div",c,[e("div",null,[e("span",d,[s(a,{type:t.options.type,text:t.options.badge_content},null,8,["type","text"])])]),e("div",{class:o(["mt-2 pl-1 text-2xl font-bold tracking-tight text-slate-900",t.options.title_color])},i(t.options.title),3),e("p",{class:o(["mt-2 pl-1 text-sm",t.options.text_color])},[_(l.$slots,"content")],2)])}}},u={user_warning:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},led_power_warning:{type:"danger",title:"Please pay attention",title_color:"text-[#b63a61] dark:text-[#ea4b7d]",text_color:"text-orange-400 dark:text-orange-500",badge_content:"WARNING"},parts_list_one:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},parts_list_two:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_three:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_four:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},parts_list_five:{type:"warning",title:"",title_color:"text-[orange]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"CAUTION"},parts_list_six:{type:"tip",title:"",title_color:"text-[green]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"TIP"},upload_firmware_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},configure_firmware_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},build_software_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},eyetrack_vr_guide_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},eyetrack_vr_guide_two:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},vrc_avatar_setup:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"},end_one:{type:"info",title:"",title_color:"text-[blue]",text_color:"text-slate-500 dark:text-slate-400",badge_content:"NOTE"}};export{b as _,u as a};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as e,o as a,c as o,k as t,a as s}from"./chunks/framework.0394bef4.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contact.md","filePath":"contact.md","lastUpdated":1673564209000}'),r={name:"contact.md"},c=t("div",{align:"center",class:"rounded-md"},[t("h1",{class:"text-[#ab5ac7]"},"Contact Us"),t("br"),s(" Please join our Discord for updates and any questions. "),t("br"),t("br"),t("iframe",{class:"rounded-md",id:"discord-widget",src:"https://discord.com/widget?id=946212245187199026&theme=dark",width:"350",height:"500",allowtransparency:"true",frameborder:"0",sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts",target:"_blank"})],-1),d=[c];function n(i,l,p,m,_,u){return a(),o("div",null,d)}const b=e(r,[["render",n]]);export{f as __pageData,b as default};
import{_ as e,o as a,c as o,k as t,a as s}from"./chunks/framework.3235ab14.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contact.md","filePath":"contact.md","lastUpdated":1673564209000}'),r={name:"contact.md"},c=t("div",{align:"center",class:"rounded-md"},[t("h1",{class:"text-[#ab5ac7]"},"Contact Us"),t("br"),s(" Please join our Discord for updates and any questions. "),t("br"),t("br"),t("iframe",{class:"rounded-md",id:"discord-widget",src:"https://discord.com/widget?id=946212245187199026&theme=dark",width:"350",height:"500",allowtransparency:"true",frameborder:"0",sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts",target:"_blank"})],-1),d=[c];function n(i,l,p,m,_,u){return a(),o("div",null,d)}const b=e(r,[["render",n]]);export{f as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as o,k as t,a as s}from"./chunks/framework.0394bef4.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contact.md","filePath":"contact.md","lastUpdated":1673564209000}'),r={name:"contact.md"},c=t("div",{align:"center",class:"rounded-md"},[t("h1",{class:"text-[#ab5ac7]"},"Contact Us"),t("br"),s(" Please join our Discord for updates and any questions. "),t("br"),t("br"),t("iframe",{class:"rounded-md",id:"discord-widget",src:"https://discord.com/widget?id=946212245187199026&theme=dark",width:"350",height:"500",allowtransparency:"true",frameborder:"0",sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts",target:"_blank"})],-1),d=[c];function n(i,l,p,m,_,u){return a(),o("div",null,d)}const b=e(r,[["render",n]]);export{f as __pageData,b as default};
import{_ as e,o as a,c as o,k as t,a as s}from"./chunks/framework.3235ab14.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contact.md","filePath":"contact.md","lastUpdated":1673564209000}'),r={name:"contact.md"},c=t("div",{align:"center",class:"rounded-md"},[t("h1",{class:"text-[#ab5ac7]"},"Contact Us"),t("br"),s(" Please join our Discord for updates and any questions. "),t("br"),t("br"),t("iframe",{class:"rounded-md",id:"discord-widget",src:"https://discord.com/widget?id=946212245187199026&theme=dark",width:"350",height:"500",allowtransparency:"true",frameborder:"0",sandbox:"allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts",target:"_blank"})],-1),d=[c];function n(i,l,p,m,_,u){return a(),o("div",null,d)}const b=e(r,[["render",n]]);export{f as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as t}from"./chunks/CheckBoxList.5103ebfb.js";import{o as r,c as n,H as o,l,k as e,a}from"./chunks/framework.0394bef4.js";const s={state:!0,object:[{label:"Tracking algorithm"},{label:"Calibration"},{label:"GUI"},{label:"PCB Design for IR emitters"},{label:"Dual Eye support"},{label:"Firmware"},{label:"Better documentation over things (setup, wiring etc.)"},{label:"Setup dynamic WiFi credentials at runtime"},{label:"OTA using Platformio"},{label:"Auto threshold's"},{label:"New LED Power regulator board (V4)"},{label:"New IR LED PCB (only for the power reg board) (V4)"},{label:"Setup flashing of ESPs through anything other than VSC"}]},i={state:!1,object:[{label:"Variable eye openness tracking (being improved)"},{label:"Auto ROI cropping/better cropping"},{label:"New GUI"},{label:"New backend for new GUI"},{label:"V5 hardware (focus on wired usage)"},{label:"Dynamic foveated rendering via OpenXR"},{label:"3D, 9-point calibration via OpenXR/SteamVR overlay"}]},d={state:!1,object:[{label:"Custom cam boards/cameras?"},{label:"Game interaction SDK"},{label:"Game developer integration program"}]},c=e("h1",{class:"text-[var(--font-accent)]",id:"eyetrackvr-development-roadmap",tabindex:"-1"},[a("EyeTrackVR Development Roadmap "),e("a",{class:"header-anchor",href:"#eyetrackvr-development-roadmap","aria-label":'Permalink to "EyeTrackVR Development Roadmap {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"This will contain a list of features that are in progress, completed, and planned.",-1),m=e("h2",{id:"completed",tabindex:"-1"},[a("Completed "),e("a",{class:"header-anchor",href:"#completed","aria-label":'Permalink to "Completed"'},"")],-1),b=e("h2",{id:"in-progress",tabindex:"-1"},[a("In Progress "),e("a",{class:"header-anchor",href:"#in-progress","aria-label":'Permalink to "In Progress"'},"")],-1),h=e("h2",{id:"planned",tabindex:"-1"},[a("Planned "),e("a",{class:"header-anchor",href:"#planned","aria-label":'Permalink to "Planned"'},"")],-1),k=JSON.parse('{"title":"EyeTrackVR Development Roadmap","description":"","frontmatter":{},"headers":[],"relativePath":"dev_roadmap.md","filePath":"dev_roadmap.md","lastUpdated":1676223729000}'),u={name:"dev_roadmap.md"},w=Object.assign(u,{setup(_){return(f,g)=>(r(),n("div",null,[c,p,m,o(t,{options:{...l(s)}},null,8,["options"]),b,o(t,{options:{...l(i)}},null,8,["options"]),h,o(t,{options:{...l(d)}},null,8,["options"])]))}});export{k as __pageData,w as default};
import{_ as t}from"./chunks/CheckBoxList.8c0d14eb.js";import{o as r,c as n,H as o,l,k as e,a}from"./chunks/framework.3235ab14.js";const s={state:!0,object:[{label:"Tracking algorithm"},{label:"Calibration"},{label:"GUI"},{label:"PCB Design for IR emitters"},{label:"Dual Eye support"},{label:"Firmware"},{label:"Better documentation over things (setup, wiring etc.)"},{label:"Setup dynamic WiFi credentials at runtime"},{label:"OTA using Platformio"},{label:"Auto threshold's"},{label:"New LED Power regulator board (V4)"},{label:"New IR LED PCB (only for the power reg board) (V4)"},{label:"Setup flashing of ESPs through anything other than VSC"}]},i={state:!1,object:[{label:"Variable eye openness tracking (being improved)"},{label:"Auto ROI cropping/better cropping"},{label:"New GUI"},{label:"New backend for new GUI"},{label:"V5 hardware (focus on wired usage)"},{label:"Dynamic foveated rendering via OpenXR"},{label:"3D, 9-point calibration via OpenXR/SteamVR overlay"}]},d={state:!1,object:[{label:"Custom cam boards/cameras?"},{label:"Game interaction SDK"},{label:"Game developer integration program"}]},c=e("h1",{class:"text-[var(--font-accent)]",id:"eyetrackvr-development-roadmap",tabindex:"-1"},[a("EyeTrackVR Development Roadmap "),e("a",{class:"header-anchor",href:"#eyetrackvr-development-roadmap","aria-label":'Permalink to "EyeTrackVR Development Roadmap {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"This will contain a list of features that are in progress, completed, and planned.",-1),m=e("h2",{id:"completed",tabindex:"-1"},[a("Completed "),e("a",{class:"header-anchor",href:"#completed","aria-label":'Permalink to "Completed"'},"")],-1),b=e("h2",{id:"in-progress",tabindex:"-1"},[a("In Progress "),e("a",{class:"header-anchor",href:"#in-progress","aria-label":'Permalink to "In Progress"'},"")],-1),h=e("h2",{id:"planned",tabindex:"-1"},[a("Planned "),e("a",{class:"header-anchor",href:"#planned","aria-label":'Permalink to "Planned"'},"")],-1),k=JSON.parse('{"title":"EyeTrackVR Development Roadmap","description":"","frontmatter":{},"headers":[],"relativePath":"dev_roadmap.md","filePath":"dev_roadmap.md","lastUpdated":1676223729000}'),u={name:"dev_roadmap.md"},w=Object.assign(u,{setup(_){return(f,g)=>(r(),n("div",null,[c,p,m,o(t,{options:{...l(s)}},null,8,["options"]),b,o(t,{options:{...l(i)}},null,8,["options"]),h,o(t,{options:{...l(d)}},null,8,["options"])]))}});export{k as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as t}from"./chunks/CheckBoxList.5103ebfb.js";import{o as r,c as n,H as o,l,k as e,a}from"./chunks/framework.0394bef4.js";const s={state:!0,object:[{label:"Tracking algorithm"},{label:"Calibration"},{label:"GUI"},{label:"PCB Design for IR emitters"},{label:"Dual Eye support"},{label:"Firmware"},{label:"Better documentation over things (setup, wiring etc.)"},{label:"Setup dynamic WiFi credentials at runtime"},{label:"OTA using Platformio"},{label:"Auto threshold's"},{label:"New LED Power regulator board (V4)"},{label:"New IR LED PCB (only for the power reg board) (V4)"},{label:"Setup flashing of ESPs through anything other than VSC"}]},i={state:!1,object:[{label:"Variable eye openness tracking (being improved)"},{label:"Auto ROI cropping/better cropping"},{label:"New GUI"},{label:"New backend for new GUI"},{label:"V5 hardware (focus on wired usage)"},{label:"Dynamic foveated rendering via OpenXR"},{label:"3D, 9-point calibration via OpenXR/SteamVR overlay"}]},d={state:!1,object:[{label:"Custom cam boards/cameras?"},{label:"Game interaction SDK"},{label:"Game developer integration program"}]},c=e("h1",{class:"text-[var(--font-accent)]",id:"eyetrackvr-development-roadmap",tabindex:"-1"},[a("EyeTrackVR Development Roadmap "),e("a",{class:"header-anchor",href:"#eyetrackvr-development-roadmap","aria-label":'Permalink to "EyeTrackVR Development Roadmap {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"This will contain a list of features that are in progress, completed, and planned.",-1),m=e("h2",{id:"completed",tabindex:"-1"},[a("Completed "),e("a",{class:"header-anchor",href:"#completed","aria-label":'Permalink to "Completed"'},"")],-1),b=e("h2",{id:"in-progress",tabindex:"-1"},[a("In Progress "),e("a",{class:"header-anchor",href:"#in-progress","aria-label":'Permalink to "In Progress"'},"")],-1),h=e("h2",{id:"planned",tabindex:"-1"},[a("Planned "),e("a",{class:"header-anchor",href:"#planned","aria-label":'Permalink to "Planned"'},"")],-1),k=JSON.parse('{"title":"EyeTrackVR Development Roadmap","description":"","frontmatter":{},"headers":[],"relativePath":"dev_roadmap.md","filePath":"dev_roadmap.md","lastUpdated":1676223729000}'),u={name:"dev_roadmap.md"},w=Object.assign(u,{setup(_){return(f,g)=>(r(),n("div",null,[c,p,m,o(t,{options:{...l(s)}},null,8,["options"]),b,o(t,{options:{...l(i)}},null,8,["options"]),h,o(t,{options:{...l(d)}},null,8,["options"])]))}});export{k as __pageData,w as default};
import{_ as t}from"./chunks/CheckBoxList.8c0d14eb.js";import{o as r,c as n,H as o,l,k as e,a}from"./chunks/framework.3235ab14.js";const s={state:!0,object:[{label:"Tracking algorithm"},{label:"Calibration"},{label:"GUI"},{label:"PCB Design for IR emitters"},{label:"Dual Eye support"},{label:"Firmware"},{label:"Better documentation over things (setup, wiring etc.)"},{label:"Setup dynamic WiFi credentials at runtime"},{label:"OTA using Platformio"},{label:"Auto threshold's"},{label:"New LED Power regulator board (V4)"},{label:"New IR LED PCB (only for the power reg board) (V4)"},{label:"Setup flashing of ESPs through anything other than VSC"}]},i={state:!1,object:[{label:"Variable eye openness tracking (being improved)"},{label:"Auto ROI cropping/better cropping"},{label:"New GUI"},{label:"New backend for new GUI"},{label:"V5 hardware (focus on wired usage)"},{label:"Dynamic foveated rendering via OpenXR"},{label:"3D, 9-point calibration via OpenXR/SteamVR overlay"}]},d={state:!1,object:[{label:"Custom cam boards/cameras?"},{label:"Game interaction SDK"},{label:"Game developer integration program"}]},c=e("h1",{class:"text-[var(--font-accent)]",id:"eyetrackvr-development-roadmap",tabindex:"-1"},[a("EyeTrackVR Development Roadmap "),e("a",{class:"header-anchor",href:"#eyetrackvr-development-roadmap","aria-label":'Permalink to "EyeTrackVR Development Roadmap {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"This will contain a list of features that are in progress, completed, and planned.",-1),m=e("h2",{id:"completed",tabindex:"-1"},[a("Completed "),e("a",{class:"header-anchor",href:"#completed","aria-label":'Permalink to "Completed"'},"")],-1),b=e("h2",{id:"in-progress",tabindex:"-1"},[a("In Progress "),e("a",{class:"header-anchor",href:"#in-progress","aria-label":'Permalink to "In Progress"'},"")],-1),h=e("h2",{id:"planned",tabindex:"-1"},[a("Planned "),e("a",{class:"header-anchor",href:"#planned","aria-label":'Permalink to "Planned"'},"")],-1),k=JSON.parse('{"title":"EyeTrackVR Development Roadmap","description":"","frontmatter":{},"headers":[],"relativePath":"dev_roadmap.md","filePath":"dev_roadmap.md","lastUpdated":1676223729000}'),u={name:"dev_roadmap.md"},w=Object.assign(u,{setup(_){return(f,g)=>(r(),n("div",null,[c,p,m,o(t,{options:{...l(s)}},null,8,["options"]),b,o(t,{options:{...l(i)}},null,8,["options"]),h,o(t,{options:{...l(d)}},null,8,["options"])]))}});export{k as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as s}from"./chunks/framework.0394bef4.js";const b=JSON.parse('{"title":"Development Documentation for the EyeTrackVR Docs Site","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/dev_docs.md","filePath":"development/docs/dev_docs.md","lastUpdated":1689147044000}'),r={name:"development/docs/dev_docs.md"},o=s("",12),n=[o];function l(i,c,p,d,h,u){return a(),t("div",null,n)}const g=e(r,[["render",l]]);export{b as __pageData,g as default};
import{_ as e,o as a,c as t,Q as s}from"./chunks/framework.3235ab14.js";const b=JSON.parse('{"title":"Development Documentation for the EyeTrackVR Docs Site","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/dev_docs.md","filePath":"development/docs/dev_docs.md","lastUpdated":1689147044000}'),r={name:"development/docs/dev_docs.md"},o=s("",12),n=[o];function l(i,c,p,d,h,u){return a(),t("div",null,n)}const g=e(r,[["render",l]]);export{b as __pageData,g as default};

View File

@ -1,4 +1,4 @@
import{_ as e,o as s,c as a,Q as o}from"./chunks/framework.0394bef4.js";const u=JSON.parse('{"title":"Pages","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/pages.md","filePath":"development/docs/pages.md","lastUpdated":1700510338000}'),n={name:"development/docs/pages.md"},t=o(`<h1 class="text-[var(--font-accent)]" id="pages" tabindex="-1">Pages <a class="header-anchor" href="#pages" aria-label="Permalink to &quot;Pages {.text-[var(--font-accent)]}&quot;"></a></h1><p>This section will cover how to add or edit pages on the docs website.</p><p>Please use the <code>Github Markdown</code> flavour for your Markdown files.</p><p>Please look at other pages to see how they are formatted, and for examples of how to use Markdown.</p><h2 id="adding-a-page" tabindex="-1">Adding a Page <a class="header-anchor" href="#adding-a-page" aria-label="Permalink to &quot;Adding a Page&quot;"></a></h2><p>To add a page, you will need to create a new Markdown file in the <code>vitepress/docs/src/pages</code> folder. The file name will be the URL of the page. For example, if you create a file called <code>my_page.md</code>, the URL will be <code>https://docs.eyetrackvr.dev/my_page</code>.</p><h3 id="sub-directories" tabindex="-1">Sub-directories <a class="header-anchor" href="#sub-directories" aria-label="Permalink to &quot;Sub-directories&quot;"></a></h3><p>You can also create sub-directories in the <code>vitepress/docs/src/pages</code> folder. For example, if you create a file called <code>my_page.md</code> in a folder called <code>my_folder</code>, the URL will be <code>https://docs.eyetrackvr.dev/my_folder/my_page</code>.</p><p>This is useful for organizing pages into categories.</p><h3 id="adding-a-page-to-the-sidebar" tabindex="-1">Adding a Page to the Sidebar <a class="header-anchor" href="#adding-a-page-to-the-sidebar" aria-label="Permalink to &quot;Adding a Page to the Sidebar&quot;"></a></h3><p>To add a page to the sidebar, you will need to add the page to the <code>vitepress/docs/src/custom/theme/index.js</code> file.</p><p>To do this, you will need to add the page to the <code>sidebar</code> object.</p><p>For example, if you want to add a page called <code>my_page.md</code> to the sidebar, you will need to add the following to the <code>sidebar</code> object:</p><div class="language-js line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
import{_ as e,o as s,c as a,Q as o}from"./chunks/framework.3235ab14.js";const u=JSON.parse('{"title":"Pages","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/pages.md","filePath":"development/docs/pages.md","lastUpdated":1700510338000}'),n={name:"development/docs/pages.md"},t=o(`<h1 class="text-[var(--font-accent)]" id="pages" tabindex="-1">Pages <a class="header-anchor" href="#pages" aria-label="Permalink to &quot;Pages {.text-[var(--font-accent)]}&quot;"></a></h1><p>This section will cover how to add or edit pages on the docs website.</p><p>Please use the <code>Github Markdown</code> flavour for your Markdown files.</p><p>Please look at other pages to see how they are formatted, and for examples of how to use Markdown.</p><h2 id="adding-a-page" tabindex="-1">Adding a Page <a class="header-anchor" href="#adding-a-page" aria-label="Permalink to &quot;Adding a Page&quot;"></a></h2><p>To add a page, you will need to create a new Markdown file in the <code>vitepress/docs/src/pages</code> folder. The file name will be the URL of the page. For example, if you create a file called <code>my_page.md</code>, the URL will be <code>https://docs.eyetrackvr.dev/my_page</code>.</p><h3 id="sub-directories" tabindex="-1">Sub-directories <a class="header-anchor" href="#sub-directories" aria-label="Permalink to &quot;Sub-directories&quot;"></a></h3><p>You can also create sub-directories in the <code>vitepress/docs/src/pages</code> folder. For example, if you create a file called <code>my_page.md</code> in a folder called <code>my_folder</code>, the URL will be <code>https://docs.eyetrackvr.dev/my_folder/my_page</code>.</p><p>This is useful for organizing pages into categories.</p><h3 id="adding-a-page-to-the-sidebar" tabindex="-1">Adding a Page to the Sidebar <a class="header-anchor" href="#adding-a-page-to-the-sidebar" aria-label="Permalink to &quot;Adding a Page to the Sidebar&quot;"></a></h3><p>To add a page to the sidebar, you will need to add the page to the <code>vitepress/docs/src/custom/theme/index.js</code> file.</p><p>To do this, you will need to add the page to the <code>sidebar</code> object.</p><p>For example, if you want to add a page called <code>my_page.md</code> to the sidebar, you will need to add the following to the <code>sidebar</code> object:</p><div class="language-js line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">text</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">Getting Started</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">collapsible</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#FF9CAC;">true</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">items</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> [</span></span>

View File

@ -1 +1 @@
import{_ as e,o as s,c as a,Q as o}from"./chunks/framework.0394bef4.js";const u=JSON.parse('{"title":"Pages","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/pages.md","filePath":"development/docs/pages.md","lastUpdated":1700510338000}'),n={name:"development/docs/pages.md"},t=o("",24),l=[t];function p(c,r,i,d,F,y){return s(),a("div",null,l)}const D=e(n,[["render",p]]);export{u as __pageData,D as default};
import{_ as e,o as s,c as a,Q as o}from"./chunks/framework.3235ab14.js";const u=JSON.parse('{"title":"Pages","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/pages.md","filePath":"development/docs/pages.md","lastUpdated":1700510338000}'),n={name:"development/docs/pages.md"},t=o("",24),l=[t];function p(c,r,i,d,F,y){return s(),a("div",null,l)}const D=e(n,[["render",p]]);export{u as __pageData,D as default};

View File

@ -1,4 +1,4 @@
import{_ as e,o as s,c as a,Q as n}from"./chunks/framework.0394bef4.js";const y=JSON.parse('{"title":"Standards Guide","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/standards.md","filePath":"development/docs/standards.md","lastUpdated":1677868200000}'),t={name:"development/docs/standards.md"},o=n(`<h1 id="standards-guide" tabindex="-1">Standards Guide <a class="header-anchor" href="#standards-guide" aria-label="Permalink to &quot;Standards Guide&quot;"></a></h1><p>Listed here are the standards that are used for the EyeTrackVR project. These standards are used to ensure that the project is consistent and easy to understand.</p><h2 id="code-standards" tabindex="-1">Code Standards <a class="header-anchor" href="#code-standards" aria-label="Permalink to &quot;Code Standards&quot;"></a></h2><h3 id="general" tabindex="-1">General <a class="header-anchor" href="#general" aria-label="Permalink to &quot;General&quot;"></a></h3><p>It is by design that we use a static-site framework for the documentation site. This is to ensure that the documentation is easy to maintain and extend. This is also to ensure that the documentation is easy to understand.</p><p>We have only a few rules for the documentation site:</p><ul><li>All code should be written in English.</li><li>All code should be written in a way that is easy to understand.</li><li>All code should be written in a way that is easy to maintain.</li><li>All code should be written in a way that is easy to extend.</li><li>Our git commit style is to be followed, in english only.</li></ul><h3 id="git-commit-style" tabindex="-1">Git Commit Style <a class="header-anchor" href="#git-commit-style" aria-label="Permalink to &quot;Git Commit Style&quot;"></a></h3><p>We use the <a href="https://www.conventionalcommits.org/en/v1.0.0/" target="_blank" rel="noreferrer">Conventional Commits</a> standard for our git commit style. This is to ensure that our git commits are easy to understand and easy to maintain. This is also to ensure that our git commits are easy to extend.</p><p>Git commits are used to with the <a href="https://semantic-release.gitbook.io/semantic-release/" target="_blank" rel="noreferrer">Semantic Release</a> tool to automatically generate the changelog and versioning for the project. As such, it is important that we follow the Conventional Commits standard, with our own rule customizations.</p><p>The following is a list of the customizations that we have made to the Conventional Commits standard:</p><ul><li>We use the <code>BREAKING CHANGE(S)</code> or <code>BREAKING</code> text to indicate a breaking change.</li></ul><p>Our git commit style is as follows:</p><div class="language-bash line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&lt;</span><span style="color:#BABED8;">type</span><span style="color:#89DDFF;">&gt;[</span><span style="color:#BABED8;">optional scope</span><span style="color:#89DDFF;">]</span><span style="color:#BABED8;">: </span><span style="color:#89DDFF;">&lt;</span><span style="color:#BABED8;">description</span><span style="color:#89DDFF;">&gt;</span></span>
import{_ as e,o as s,c as a,Q as n}from"./chunks/framework.3235ab14.js";const y=JSON.parse('{"title":"Standards Guide","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/standards.md","filePath":"development/docs/standards.md","lastUpdated":1677868200000}'),t={name:"development/docs/standards.md"},o=n(`<h1 id="standards-guide" tabindex="-1">Standards Guide <a class="header-anchor" href="#standards-guide" aria-label="Permalink to &quot;Standards Guide&quot;"></a></h1><p>Listed here are the standards that are used for the EyeTrackVR project. These standards are used to ensure that the project is consistent and easy to understand.</p><h2 id="code-standards" tabindex="-1">Code Standards <a class="header-anchor" href="#code-standards" aria-label="Permalink to &quot;Code Standards&quot;"></a></h2><h3 id="general" tabindex="-1">General <a class="header-anchor" href="#general" aria-label="Permalink to &quot;General&quot;"></a></h3><p>It is by design that we use a static-site framework for the documentation site. This is to ensure that the documentation is easy to maintain and extend. This is also to ensure that the documentation is easy to understand.</p><p>We have only a few rules for the documentation site:</p><ul><li>All code should be written in English.</li><li>All code should be written in a way that is easy to understand.</li><li>All code should be written in a way that is easy to maintain.</li><li>All code should be written in a way that is easy to extend.</li><li>Our git commit style is to be followed, in english only.</li></ul><h3 id="git-commit-style" tabindex="-1">Git Commit Style <a class="header-anchor" href="#git-commit-style" aria-label="Permalink to &quot;Git Commit Style&quot;"></a></h3><p>We use the <a href="https://www.conventionalcommits.org/en/v1.0.0/" target="_blank" rel="noreferrer">Conventional Commits</a> standard for our git commit style. This is to ensure that our git commits are easy to understand and easy to maintain. This is also to ensure that our git commits are easy to extend.</p><p>Git commits are used to with the <a href="https://semantic-release.gitbook.io/semantic-release/" target="_blank" rel="noreferrer">Semantic Release</a> tool to automatically generate the changelog and versioning for the project. As such, it is important that we follow the Conventional Commits standard, with our own rule customizations.</p><p>The following is a list of the customizations that we have made to the Conventional Commits standard:</p><ul><li>We use the <code>BREAKING CHANGE(S)</code> or <code>BREAKING</code> text to indicate a breaking change.</li></ul><p>Our git commit style is as follows:</p><div class="language-bash line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&lt;</span><span style="color:#BABED8;">type</span><span style="color:#89DDFF;">&gt;[</span><span style="color:#BABED8;">optional scope</span><span style="color:#89DDFF;">]</span><span style="color:#BABED8;">: </span><span style="color:#89DDFF;">&lt;</span><span style="color:#BABED8;">description</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#BABED8;">optional body</span><span style="color:#89DDFF;">]</span></span>
<span class="line"></span>

View File

@ -1 +1 @@
import{_ as e,o as s,c as a,Q as n}from"./chunks/framework.0394bef4.js";const y=JSON.parse('{"title":"Standards Guide","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/standards.md","filePath":"development/docs/standards.md","lastUpdated":1677868200000}'),t={name:"development/docs/standards.md"},o=n("",18),l=[o];function i(r,c,p,d,h,m){return s(),a("div",null,l)}const g=e(t,[["render",i]]);export{y as __pageData,g as default};
import{_ as e,o as s,c as a,Q as n}from"./chunks/framework.3235ab14.js";const y=JSON.parse('{"title":"Standards Guide","description":"","frontmatter":{},"headers":[],"relativePath":"development/docs/standards.md","filePath":"development/docs/standards.md","lastUpdated":1677868200000}'),t={name:"development/docs/standards.md"},o=n("",18),l=[o];function i(r,c,p,d,h,m){return s(),a("div",null,l)}const g=e(t,[["render",i]]);export{y as __pageData,g as default};

View File

@ -1 +1 @@
import{_ as s,a as d}from"./chunks/index.14686ebb.js";import{_ as n,i}from"./chunks/index.37fa0c7a.js";import{o as h,c,H as t,l as a,w as l,k as e,a as o,Q as r}from"./chunks/framework.0394bef4.js";const u=e("h1",{class:"text-[var(--font-accent)]",id:"configuring-the-firmware",tabindex:"-1"},[o("Configuring the firmware "),e("a",{class:"header-anchor",href:"#configuring-the-firmware","aria-label":'Permalink to "Configuring the firmware {.text-[var(--font-accent)]}"'},"")],-1),p=e("h2",{id:"once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this",tabindex:"-1"},[o("Once you have opened the project, you should see something on the left side like this "),e("a",{class:"header-anchor",href:"#once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this","aria-label":'Permalink to "Once you have opened the project, you should see something on the left side like this"'},"")],-1),f=e("h2",{id:"open-the-ini-user-config-ini-file",tabindex:"-1"},[o("Open the "),e("code",null,"ini/user_config.ini"),o(" file "),e("a",{class:"header-anchor",href:"#open-the-ini-user-config-ini-file","aria-label":'Permalink to "Open the `ini/user_config.ini` file"'},"")],-1),m=r("",3),w=e("p",null," Make sure your WiFi router has a 2.4 GHz band. While most do, this is not always the case. Setting each band (5GHz, and 2.4GHz) to different SSIDs is recommended, though not required. ",-1),_=r("",16),E=JSON.parse('{"title":"Configuring the firmware","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/configure_firmware.md","filePath":"firmware_guide/configure_firmware.md","lastUpdated":1700510338000}'),y={name:"firmware_guide/configure_firmware.md"},k=Object.assign(y,{setup(g){return(P,b)=>(h(),c("div",null,[u,p,t(n,{options:a(i).configure_firmware_one},null,8,["options"]),f,t(n,{options:a(i).configure_firmware_two},null,8,["options"]),m,t(s,{options:a(d).parts_list_one},{content:l(()=>[w]),_:1},8,["options"]),_]))}});export{E as __pageData,k as default};
import{_ as s,a as d}from"./chunks/index.24cac4a2.js";import{_ as n,i}from"./chunks/index.15ec5911.js";import{o as h,c,H as t,l as a,w as l,k as e,a as o,Q as r}from"./chunks/framework.3235ab14.js";const u=e("h1",{class:"text-[var(--font-accent)]",id:"configuring-the-firmware",tabindex:"-1"},[o("Configuring the firmware "),e("a",{class:"header-anchor",href:"#configuring-the-firmware","aria-label":'Permalink to "Configuring the firmware {.text-[var(--font-accent)]}"'},"")],-1),p=e("h2",{id:"once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this",tabindex:"-1"},[o("Once you have opened the project, you should see something on the left side like this "),e("a",{class:"header-anchor",href:"#once-you-have-opened-the-project-you-should-see-something-on-the-left-side-like-this","aria-label":'Permalink to "Once you have opened the project, you should see something on the left side like this"'},"")],-1),f=e("h2",{id:"open-the-ini-user-config-ini-file",tabindex:"-1"},[o("Open the "),e("code",null,"ini/user_config.ini"),o(" file "),e("a",{class:"header-anchor",href:"#open-the-ini-user-config-ini-file","aria-label":'Permalink to "Open the `ini/user_config.ini` file"'},"")],-1),m=r("",3),w=e("p",null," Make sure your WiFi router has a 2.4 GHz band. While most do, this is not always the case. Setting each band (5GHz, and 2.4GHz) to different SSIDs is recommended, though not required. ",-1),_=r("",16),E=JSON.parse('{"title":"Configuring the firmware","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/configure_firmware.md","filePath":"firmware_guide/configure_firmware.md","lastUpdated":1700510338000}'),y={name:"firmware_guide/configure_firmware.md"},k=Object.assign(y,{setup(g){return(P,b)=>(h(),c("div",null,[u,p,t(n,{options:a(i).configure_firmware_one},null,8,["options"]),f,t(n,{options:a(i).configure_firmware_two},null,8,["options"]),m,t(s,{options:a(d).parts_list_one},{content:l(()=>[w]),_:1},8,["options"]),_]))}});export{E as __pageData,k as default};

View File

@ -1 +1 @@
import{_ as e,i as o}from"./chunks/index.37fa0c7a.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.0394bef4.js";const r=a('<h1 class="text-[var(--font-accent)]" id="firmware-environments" tabindex="-1">Firmware Environments <a class="header-anchor" href="#firmware-environments" aria-label="Permalink to &quot;Firmware Environments {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="what-is-it" tabindex="-1">What is it? <a class="header-anchor" href="#what-is-it" aria-label="Permalink to &quot;What is it?&quot;"></a></h2><p>A firmware environment is a way to store the custom firmware config for a specific device. This is useful if you want to have multiple devices with different firmware configs.</p><p>We use environments to store the firmware config for each device, so that you can easily switch between them.</p><p>Environments are broken up into two distinct parts:</p><ul><li>The <code>build type</code> (e.g. <code>debug</code>, <code>release</code>)</li><li>The <code>board type</code> (e.g. <code>espaithinker</code>, <code>esp32cam</code>)</li></ul><h2 id="build-types" tabindex="-1">Build Types <a class="header-anchor" href="#build-types" aria-label="Permalink to &quot;Build Types&quot;"></a></h2><p>We now have a couple of options letting us decide how we want to build the firmware.</p><ul><li><p><code>Debug</code> - The debug environment is the default environment and does not need to be specified. It has a lot of logging so it is useful for getting everything setup for the first time and to see what is going on.</p></li><li><p><code>_release</code> - Has a lot less debugging, may also be missing some things available only in debug for debug purposes, this should be flashed when everything is working.</p></li></ul><p>Examples:<br><code>xiaosenses3</code> - This is the debug environment.<br><code>xiaosenses3_release</code> - This is the release environment for daily use.</p><div class="tip custom-block"><p class="custom-block-title">Tip</p><p>We recommend starting with a debug environment, and then switching to release once everything is working. A debug environnement should not be used permanently.</p></div><h2 id="board-types" tabindex="-1">Board Types <a class="header-anchor" href="#board-types" aria-label="Permalink to &quot;Board Types&quot;"></a></h2><p>We currently support for several different boards, and we are working on adding more.</p><div class="warning custom-block"><p class="custom-block-title">Warning</p><p>It is important to note that the <code>esp32AIThinker</code> environment is the default environment. Only switch your environment if you have another board or an environment is not working.</p><p>Most esp32Cams from Aliexpress will work with the <code>esp32AIThinker</code> environment, but some may require the <code>esp32cam</code> environment. Test the default environment first, and if it does not work, try the <code>esp32cam</code> environment.</p></div><p>Currently supported boards:</p><ul><li><code>esp32AIThinker</code> - This is the default environment. This is for the ESP32-AI-THINKER and generic alibaba/aliexpress/amazon esp cam boards.</li><li><code>esp32Cam</code> - This is for the special ESP32-CAM, it is unlikely that you will need to use this environment.</li><li><code>esp32M5Stack</code> - This is for ESP32M5Stack.</li><li><code>esp32WRover</code> - This is for the ESP32WRover.</li><li><code>esp-eye</code> - This is for the ESP-EYE (not the S3 variant).</li><li><code>wrooms3</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>)</li><li><code>wrooms3QIO</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>, for boards with octal flash)</li><li><code>wrooms3USB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>)</li><li><code>wrooms3QIOUSB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>, for boards with octal flash)</li><li><code>xiaosenses3</code> - For SeedStudio&#39;s XAIO ESP32-S3 Sense (<em>wireless mode</em>)</li><li><code>xiaosenses3_USB</code> - For SeedStudio&#39;s XAIO ESP32-S3 Sense (<em>wired mode</em>)</li></ul><p>You can change the board enviroment by changing the <code>default_envs</code> argument in <code>platformio.ini</code> to a supported board like shown:</p>',17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
import{_ as e,i as o}from"./chunks/index.15ec5911.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.3235ab14.js";const r=a('<h1 class="text-[var(--font-accent)]" id="firmware-environments" tabindex="-1">Firmware Environments <a class="header-anchor" href="#firmware-environments" aria-label="Permalink to &quot;Firmware Environments {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="what-is-it" tabindex="-1">What is it? <a class="header-anchor" href="#what-is-it" aria-label="Permalink to &quot;What is it?&quot;"></a></h2><p>A firmware environment is a way to store the custom firmware config for a specific device. This is useful if you want to have multiple devices with different firmware configs.</p><p>We use environments to store the firmware config for each device, so that you can easily switch between them.</p><p>Environments are broken up into two distinct parts:</p><ul><li>The <code>build type</code> (e.g. <code>debug</code>, <code>release</code>)</li><li>The <code>board type</code> (e.g. <code>espaithinker</code>, <code>esp32cam</code>)</li></ul><h2 id="build-types" tabindex="-1">Build Types <a class="header-anchor" href="#build-types" aria-label="Permalink to &quot;Build Types&quot;"></a></h2><p>We now have a couple of options letting us decide how we want to build the firmware.</p><ul><li><p><code>Debug</code> - The debug environment is the default environment and does not need to be specified. It has a lot of logging so it is useful for getting everything setup for the first time and to see what is going on.</p></li><li><p><code>_release</code> - Has a lot less debugging, may also be missing some things available only in debug for debug purposes, this should be flashed when everything is working.</p></li></ul><p>Examples:<br><code>xiaosenses3</code> - This is the debug environment.<br><code>xiaosenses3_release</code> - This is the release environment for daily use.</p><div class="tip custom-block"><p class="custom-block-title">Tip</p><p>We recommend starting with a debug environment, and then switching to release once everything is working. A debug environnement should not be used permanently.</p></div><h2 id="board-types" tabindex="-1">Board Types <a class="header-anchor" href="#board-types" aria-label="Permalink to &quot;Board Types&quot;"></a></h2><p>We currently support for several different boards, and we are working on adding more.</p><div class="warning custom-block"><p class="custom-block-title">Warning</p><p>It is important to note that the <code>esp32AIThinker</code> environment is the default environment. Only switch your environment if you have another board or an environment is not working.</p><p>Most esp32Cams from Aliexpress will work with the <code>esp32AIThinker</code> environment, but some may require the <code>esp32cam</code> environment. Test the default environment first, and if it does not work, try the <code>esp32cam</code> environment.</p></div><p>Currently supported boards:</p><ul><li><code>esp32AIThinker</code> - This is the default environment. This is for the ESP32-AI-THINKER and generic alibaba/aliexpress/amazon esp cam boards.</li><li><code>esp32Cam</code> - This is for the special ESP32-CAM, it is unlikely that you will need to use this environment.</li><li><code>esp32M5Stack</code> - This is for ESP32M5Stack.</li><li><code>esp32WRover</code> - This is for the ESP32WRover.</li><li><code>esp-eye</code> - This is for the ESP-EYE (not the S3 variant).</li><li><code>wrooms3</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>)</li><li><code>wrooms3QIO</code> - For FREENOVE-ESP32-S3 (<em>wireless mode</em>, for boards with octal flash)</li><li><code>wrooms3USB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>)</li><li><code>wrooms3QIOUSB</code> - For FREENOVE-ESP32-S3 (<em>wired mode</em>, for boards with octal flash)</li><li><code>xiaosenses3</code> - For SeedStudio&#39;s XAIO ESP32-S3 Sense (<em>wireless mode</em>)</li><li><code>xiaosenses3_USB</code> - For SeedStudio&#39;s XAIO ESP32-S3 Sense (<em>wired mode</em>)</li></ul><p>You can change the board enviroment by changing the <code>default_envs</code> argument in <code>platformio.ini</code> to a supported board like shown:</p>',17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};

View File

@ -1 +1 @@
import{_ as e,i as o}from"./chunks/index.37fa0c7a.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.0394bef4.js";const r=a("",17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};
import{_ as e,i as o}from"./chunks/index.15ec5911.js";import{o as i,c as t,H as s,l as n,Q as a}from"./chunks/framework.3235ab14.js";const r=a("",17),u=JSON.parse('{"title":"Firmware Environments","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/environments.md","filePath":"firmware_guide/environments.md","lastUpdated":1698315393000}'),d={name:"firmware_guide/environments.md"},f=Object.assign(d,{setup(l){return(c,m)=>(i(),t("div",null,[r,s(e,{options:n(o).esp_board_env},null,8,["options"])]))}});export{u as __pageData,f as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.0394bef4.js";const m=JSON.parse('{"title":"What is this?","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/firmware.md","filePath":"firmware_guide/firmware.md","lastUpdated":1700510338000}'),r={name:"firmware_guide/firmware.md"},s=o('<h1 class="text-[var(--font-accent)]" id="what-is-this" tabindex="-1">What is this? <a class="header-anchor" href="#what-is-this" aria-label="Permalink to &quot;What is this? {.text-[var(--font-accent)]}&quot;"></a></h1><p>Firmware is the second part of the equation to get your trackers going. It lives on the ESP32 chip, and is responsible for streaming video data from the tracker. We currently fully support wireless streaming over 2.4GHz, and are working on adding support for wired streaming to the main desktop App.</p><h2 id="what-should-i-download-and-where" tabindex="-1">What should I download and where? <a class="header-anchor" href="#what-should-i-download-and-where" aria-label="Permalink to &quot;What should I download and where?&quot;"></a></h2><p>You can access the firmware, as well as flash your boards, using our new <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool" target="_blank" rel="noreferrer">Firmware Flashing Tool</a>.</p><div class="warning custom-block"><p class="custom-block-title">Caution</p><p>This tool is currently in beta.</p></div><p>We are working on adding support for Over-The-Air (OTA) and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p><p>This tool relies on our own solution called <code>OpenIris</code>, <a href="https://github.com/EyeTrackVR/OpenIris" target="_blank" rel="noreferrer">found here</a>.</p><div class="info custom-block"><p class="custom-block-title">Note</p><p>You <strong>do not</strong> need to download OpenIris separately. The flashing tool will download it for you.</p></div><p>To check the status of the project, please visit the <a href="/dev_roadmap">Development Road Map</a></p><details class="details custom-block"><summary>I want to use VSCode - How would I do this?</summary><p><a href="./setup_vscode">Follow the steps described here</a></p></details>',10),i=[s];function n(l,d,h,c,p,u){return a(),t("div",null,i)}const w=e(r,[["render",n]]);export{m as __pageData,w as default};
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.3235ab14.js";const m=JSON.parse('{"title":"What is this?","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/firmware.md","filePath":"firmware_guide/firmware.md","lastUpdated":1700510338000}'),r={name:"firmware_guide/firmware.md"},s=o('<h1 class="text-[var(--font-accent)]" id="what-is-this" tabindex="-1">What is this? <a class="header-anchor" href="#what-is-this" aria-label="Permalink to &quot;What is this? {.text-[var(--font-accent)]}&quot;"></a></h1><p>Firmware is the second part of the equation to get your trackers going. It lives on the ESP32 chip, and is responsible for streaming video data from the tracker. We currently fully support wireless streaming over 2.4GHz, and are working on adding support for wired streaming to the main desktop App.</p><h2 id="what-should-i-download-and-where" tabindex="-1">What should I download and where? <a class="header-anchor" href="#what-should-i-download-and-where" aria-label="Permalink to &quot;What should I download and where?&quot;"></a></h2><p>You can access the firmware, as well as flash your boards, using our new <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool" target="_blank" rel="noreferrer">Firmware Flashing Tool</a>.</p><div class="warning custom-block"><p class="custom-block-title">Caution</p><p>This tool is currently in beta.</p></div><p>We are working on adding support for Over-The-Air (OTA) and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p><p>This tool relies on our own solution called <code>OpenIris</code>, <a href="https://github.com/EyeTrackVR/OpenIris" target="_blank" rel="noreferrer">found here</a>.</p><div class="info custom-block"><p class="custom-block-title">Note</p><p>You <strong>do not</strong> need to download OpenIris separately. The flashing tool will download it for you.</p></div><p>To check the status of the project, please visit the <a href="/dev_roadmap">Development Road Map</a></p><details class="details custom-block"><summary>I want to use VSCode - How would I do this?</summary><p><a href="./setup_vscode">Follow the steps described here</a></p></details>',10),i=[s];function n(l,d,h,c,p,u){return a(),t("div",null,i)}const w=e(r,[["render",n]]);export{m as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.0394bef4.js";const m=JSON.parse('{"title":"What is this?","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/firmware.md","filePath":"firmware_guide/firmware.md","lastUpdated":1700510338000}'),r={name:"firmware_guide/firmware.md"},s=o("",10),i=[s];function n(l,d,h,c,p,u){return a(),t("div",null,i)}const w=e(r,[["render",n]]);export{m as __pageData,w as default};
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.3235ab14.js";const m=JSON.parse('{"title":"What is this?","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/firmware.md","filePath":"firmware_guide/firmware.md","lastUpdated":1700510338000}'),r={name:"firmware_guide/firmware.md"},s=o("",10),i=[s];function n(l,d,h,c,p,u){return a(),t("div",null,i)}const w=e(r,[["render",n]]);export{m as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as o,i as t}from"./chunks/index.37fa0c7a.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.0394bef4.js";const h=r('<h1 class="text-[var(--font-accent)]" id="firmware-flashing-tool" tabindex="-1">Firmware Flashing Tool <a class="header-anchor" href="#firmware-flashing-tool" aria-label="Permalink to &quot;Firmware Flashing Tool {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="what-is-this" tabindex="-1"><code>What is this?</code> <a class="header-anchor" href="#what-is-this" aria-label="Permalink to &quot;`What is this?`&quot;"></a></h2><p>The Firmware Flashing Tool allows you to flash the firmware to your ESPs without requiring VScode. It is a GUI tool that is built using <a href="https://tauri.app/" target="_blank" rel="noreferrer">Tauri</a> and <a href="https://www.solidjs.com/" target="_blank" rel="noreferrer">SolidJS</a>.</p><p>Features include:</p><ul><li>download pre-built firmware binaries</li><li>configure firmware settings</li><li>flash firmware to ESPs</li><li>open a serial monitor to view the ESPs output for debugging</li></ul><div class="info custom-block"><p class="custom-block-title">Note</p><p>This tool is currently in beta, and we are working on adding support for OTA and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p></div><h2 id="how-to-use" tabindex="-1"><code>How To Use</code> <a class="header-anchor" href="#how-to-use" aria-label="Permalink to &quot;`How To Use`&quot;"></a></h2><h3 id="download-the-tool" tabindex="-1"><code>Download the tool</code> <a class="header-anchor" href="#download-the-tool" aria-label="Permalink to &quot;`Download the tool`&quot;"></a></h3><p>You can download the tool from the <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool/releases" target="_blank" rel="noreferrer">releases page</a>.</p><h3 id="flash-the-firmware" tabindex="-1"><code>Flash the firmware</code> <a class="header-anchor" href="#flash-the-firmware" aria-label="Permalink to &quot;`Flash the firmware`&quot;"></a></h3><ol><li>Connect your ESP to your computer</li><li>Open the tool</li><li>Select the correct firmware for your board and setup.</li><li>Download the firmware</li><li>Connect to the Esp</li><li>Flash the firmware</li></ol><p>For the USB version, this is all you need to do! Well done.</p>',12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r('<p>If you are using the WiFi version, you will need to configure the WiFi settings. After you have flashed the firmware you will need to connect to the ESPs WiFi network. The network name will be <code>EyeTrackVR</code>. The password will be <code>12345678</code>. Once you have connected to the network, you can open the Firmware Flashing tool and configure the WiFi settings. You will need to enter the SSID and password for your WiFi network. Once you have done this, you can click the <code>Save</code> button to save the settings to the ESP. The ESP will then restart and connect to your WiFi network. You can then connect to the ESPs IP address to view the web interface.</p><p>To find the ESP&#39;s IP address you can either use the serial monitor or look at your routers list of connected devices.</p><p>To open the serial monitor, you will need to connect to the esp, just as you did for flashing. Once you have connected, you can click the <code>Monitor</code> button to open the serial monitor. You should then see the ESPs output in the serial monitor.</p><h2 id="environments" tabindex="-1"><code>Environments</code> <a class="header-anchor" href="#environments" aria-label="Permalink to &quot;`Environments`&quot;"></a></h2><p>The firmware supports multiple environments. This means that we have full support for multiple types of ESPs. Each ESP is configured to be in a different environment. If you are using a different ESP, you will need to change the environment to the correct one.</p><p>Please reference the <a href="./../firmware_guide/environments">Firmware Environments Page</a> for more information.</p>',6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
import{_ as o,i as t}from"./chunks/index.15ec5911.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.3235ab14.js";const h=r('<h1 class="text-[var(--font-accent)]" id="firmware-flashing-tool" tabindex="-1">Firmware Flashing Tool <a class="header-anchor" href="#firmware-flashing-tool" aria-label="Permalink to &quot;Firmware Flashing Tool {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="what-is-this" tabindex="-1"><code>What is this?</code> <a class="header-anchor" href="#what-is-this" aria-label="Permalink to &quot;`What is this?`&quot;"></a></h2><p>The Firmware Flashing Tool allows you to flash the firmware to your ESPs without requiring VScode. It is a GUI tool that is built using <a href="https://tauri.app/" target="_blank" rel="noreferrer">Tauri</a> and <a href="https://www.solidjs.com/" target="_blank" rel="noreferrer">SolidJS</a>.</p><p>Features include:</p><ul><li>download pre-built firmware binaries</li><li>configure firmware settings</li><li>flash firmware to ESPs</li><li>open a serial monitor to view the ESPs output for debugging</li></ul><div class="info custom-block"><p class="custom-block-title">Note</p><p>This tool is currently in beta, and we are working on adding support for OTA and configuring network settings. If you have any issues, please let us know by opening an issue on the repository.</p></div><h2 id="how-to-use" tabindex="-1"><code>How To Use</code> <a class="header-anchor" href="#how-to-use" aria-label="Permalink to &quot;`How To Use`&quot;"></a></h2><h3 id="download-the-tool" tabindex="-1"><code>Download the tool</code> <a class="header-anchor" href="#download-the-tool" aria-label="Permalink to &quot;`Download the tool`&quot;"></a></h3><p>You can download the tool from the <a href="https://github.com/EyeTrackVR/FirmwareFlashingTool/releases" target="_blank" rel="noreferrer">releases page</a>.</p><h3 id="flash-the-firmware" tabindex="-1"><code>Flash the firmware</code> <a class="header-anchor" href="#flash-the-firmware" aria-label="Permalink to &quot;`Flash the firmware`&quot;"></a></h3><ol><li>Connect your ESP to your computer</li><li>Open the tool</li><li>Select the correct firmware for your board and setup.</li><li>Download the firmware</li><li>Connect to the Esp</li><li>Flash the firmware</li></ol><p>For the USB version, this is all you need to do! Well done.</p>',12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r('<p>If you are using the WiFi version, you will need to configure the WiFi settings. After you have flashed the firmware you will need to connect to the ESPs WiFi network. The network name will be <code>EyeTrackVR</code>. The password will be <code>12345678</code>. Once you have connected to the network, you can open the Firmware Flashing tool and configure the WiFi settings. You will need to enter the SSID and password for your WiFi network. Once you have done this, you can click the <code>Save</code> button to save the settings to the ESP. The ESP will then restart and connect to your WiFi network. You can then connect to the ESPs IP address to view the web interface.</p><p>To find the ESP&#39;s IP address you can either use the serial monitor or look at your routers list of connected devices.</p><p>To open the serial monitor, you will need to connect to the esp, just as you did for flashing. Once you have connected, you can click the <code>Monitor</code> button to open the serial monitor. You should then see the ESPs output in the serial monitor.</p><h2 id="environments" tabindex="-1"><code>Environments</code> <a class="header-anchor" href="#environments" aria-label="Permalink to &quot;`Environments`&quot;"></a></h2><p>The firmware supports multiple environments. This means that we have full support for multiple types of ESPs. Each ESP is configured to be in a different environment. If you are using a different ESP, you will need to change the environment to the correct one.</p><p>Please reference the <a href="./../firmware_guide/environments">Firmware Environments Page</a> for more information.</p>',6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as o,i as t}from"./chunks/index.37fa0c7a.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.0394bef4.js";const h=r("",12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r("",6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};
import{_ as o,i as t}from"./chunks/index.15ec5911.js";import{o as n,c as s,H as a,l as i,Q as r,k as e,a as l}from"./chunks/framework.3235ab14.js";const h=r("",12),c=e("h3",{id:"wifi-setup",tabindex:"-1"},[e("code",null,"WiFi Setup"),l(),e("a",{class:"header-anchor",href:"#wifi-setup","aria-label":'Permalink to "`WiFi Setup`"'},"")],-1),d=r("",6),g=JSON.parse('{"title":"Firmware Flashing Tool","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/flashing_tool.md","filePath":"firmware_guide/flashing_tool.md","lastUpdated":1703359454000}'),u={name:"firmware_guide/flashing_tool.md"},b=Object.assign(u,{setup(f){return(p,m)=>(n(),s("div",null,[h,a(o,{options:i(t).flashing_tool},null,8,["options"]),c,a(o,{options:i(t).flashing_tool_1},null,8,["options"]),d]))}});export{g as __pageData,b as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as e,o as t,c as o,Q as a}from"./chunks/framework.0394bef4.js";const m=JSON.parse('{"title":"MDNS","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/mdns.md","filePath":"firmware_guide/mdns.md","lastUpdated":1689147044000}'),n={name:"firmware_guide/mdns.md"},s=a("",21),i=[s];function c(r,d,h,l,u,p){return t(),o("div",null,i)}const v=e(n,[["render",c]]);export{m as __pageData,v as default};
import{_ as e,o as t,c as o,Q as a}from"./chunks/framework.3235ab14.js";const m=JSON.parse('{"title":"MDNS","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/mdns.md","filePath":"firmware_guide/mdns.md","lastUpdated":1689147044000}'),n={name:"firmware_guide/mdns.md"},s=a("",21),i=[s];function c(r,d,h,l,u,p){return t(),o("div",null,i)}const v=e(n,[["render",c]]);export{m as __pageData,v as default};

View File

@ -0,0 +1 @@
import{_ as e,o as t,c as s,Q as a}from"./chunks/framework.3235ab14.js";const F=JSON.parse('{"title":"REST API","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/rest_api.md","filePath":"firmware_guide/rest_api.md","lastUpdated":1718649805000}'),n={name:"firmware_guide/rest_api.md"},l=a("",33),o=[l];function r(p,c,i,d,y,h){return t(),s("div",null,o)}const u=e(n,[["render",r]]);export{F as __pageData,u as default};

View File

@ -1 +0,0 @@
import{_ as s,o as e,c as t,Q as a}from"./chunks/framework.0394bef4.js";const h=JSON.parse('{"title":"REST API","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/rest_api.md","filePath":"firmware_guide/rest_api.md","lastUpdated":1676223729000}'),n={name:"firmware_guide/rest_api.md"},l=a("",33),o=[l];function p(r,c,i,d,y,F){return e(),t("div",null,o)}const u=s(n,[["render",p]]);export{h as __pageData,u as default};

View File

@ -1 +1 @@
import{_ as o,i as a}from"./chunks/index.37fa0c7a.js";import{o as i,c as s,H as l,l as n,Q as r,k as e,a as t}from"./chunks/framework.0394bef4.js";const d=r("",6),h=e("h3",{id:"install",tabindex:"-1"},[t("Install "),e("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "Install"'},"")],-1),c=e("br",null,null,-1),_=r("",5),p=r("",3),u=e("ol",null,[e("li",null,[t("Change the directory to the directory that you want the firmware to be cloned. Ex: "),e("code",null,"cd C:/")])],-1),m=e("ol",null,[e("li",null,[t("Clone the repository by entering the command: "),e("code",null,"git clone https://github.com/EyeTrackVR/OpenIris.git")])],-1),f=e("p",null,[t("For more info about cloning please refer to "),e("a",{href:"https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository",target:"_blank",rel:"noreferrer"},"this documentation")],-1),g=e("p",null,[e("em",null,[e("strong",null,"Do not download as a zip")]),t(" - please only properly clone the project, take note of the path you run the clone command in, this is where the files will be downloaded. When we open it in PlatformIO later, this path will be needed.")],-1),w=e("ol",null,[e("li",null,[t("Open the firmware in VSCode by going to PlatformIO, selecting open, then navigating to "),e("code",null,"OpenIris/ESP"),t(" folder and opening it.")])],-1),v=e("p",null,[e("em",null,[t("This is an adaptation from SlimeVR. Some Credit goes to the SlimeVR team "),e("a",{href:"https://docs.slimevr.dev/firmware/setup-and-install.html",target:"_blank",rel:"noreferrer"},"adapted from here")])],-1),P=JSON.parse('{"title":"Setting up the environment","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/setup_vscode.md","filePath":"firmware_guide/setup_vscode.md","lastUpdated":1689532703000}'),b={name:"firmware_guide/setup_vscode.md"},V=Object.assign(b,{setup(I){return(k,S)=>(i(),s("div",null,[d,l(o,{options:n(a).setup_vscode_image_one},null,8,["options"]),h,c,l(o,{options:n(a).setup_vscode_image_two},null,8,["options"]),_,l(o,{options:n(a).setup_vscode_image_three},null,8,["options"]),p,l(o,{options:n(a).setup_vscode_image_four},null,8,["options"]),u,l(o,{options:n(a).setup_vscode_image_five},null,8,["options"]),m,l(o,{options:n(a).setup_vscode_image_six},null,8,["options"]),f,g,w,l(o,{options:n(a).setup_vscode_image_seven},null,8,["options"]),v]))}});export{P as __pageData,V as default};
import{_ as o,i as a}from"./chunks/index.15ec5911.js";import{o as i,c as s,H as l,l as n,Q as r,k as e,a as t}from"./chunks/framework.3235ab14.js";const d=r("",6),h=e("h3",{id:"install",tabindex:"-1"},[t("Install "),e("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "Install"'},"")],-1),c=e("br",null,null,-1),_=r("",5),p=r("",3),u=e("ol",null,[e("li",null,[t("Change the directory to the directory that you want the firmware to be cloned. Ex: "),e("code",null,"cd C:/")])],-1),m=e("ol",null,[e("li",null,[t("Clone the repository by entering the command: "),e("code",null,"git clone https://github.com/EyeTrackVR/OpenIris.git")])],-1),f=e("p",null,[t("For more info about cloning please refer to "),e("a",{href:"https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository",target:"_blank",rel:"noreferrer"},"this documentation")],-1),g=e("p",null,[e("em",null,[e("strong",null,"Do not download as a zip")]),t(" - please only properly clone the project, take note of the path you run the clone command in, this is where the files will be downloaded. When we open it in PlatformIO later, this path will be needed.")],-1),w=e("ol",null,[e("li",null,[t("Open the firmware in VSCode by going to PlatformIO, selecting open, then navigating to "),e("code",null,"OpenIris/ESP"),t(" folder and opening it.")])],-1),v=e("p",null,[e("em",null,[t("This is an adaptation from SlimeVR. Some Credit goes to the SlimeVR team "),e("a",{href:"https://docs.slimevr.dev/firmware/setup-and-install.html",target:"_blank",rel:"noreferrer"},"adapted from here")])],-1),P=JSON.parse('{"title":"Setting up the environment","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/setup_vscode.md","filePath":"firmware_guide/setup_vscode.md","lastUpdated":1689532703000}'),b={name:"firmware_guide/setup_vscode.md"},V=Object.assign(b,{setup(I){return(k,S)=>(i(),s("div",null,[d,l(o,{options:n(a).setup_vscode_image_one},null,8,["options"]),h,c,l(o,{options:n(a).setup_vscode_image_two},null,8,["options"]),_,l(o,{options:n(a).setup_vscode_image_three},null,8,["options"]),p,l(o,{options:n(a).setup_vscode_image_four},null,8,["options"]),u,l(o,{options:n(a).setup_vscode_image_five},null,8,["options"]),m,l(o,{options:n(a).setup_vscode_image_six},null,8,["options"]),f,g,w,l(o,{options:n(a).setup_vscode_image_seven},null,8,["options"]),v]))}});export{P as __pageData,V as default};

View File

@ -1 +1 @@
import{_ as a,i as e}from"./chunks/index.37fa0c7a.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.0394bef4.js";const d=n('<h1 class="text-[var(--font-accent)]" id="updating-platformio" tabindex="-1">Updating Platformio <a class="header-anchor" href="#updating-platformio" aria-label="Permalink to &quot;Updating Platformio {.text-[var(--font-accent)]}&quot;"></a></h1><p>Sometimes, when building and uploading the firmware, you may run into bizarre, even-though the code is correct - platformio will refuse to build and instead will complain with some weird error.</p><p>It usually means that either PlatformIO, or ArduinoSDK got and update and that&#39;s the moment when this guide may come in handy.</p><h2 id="updating-platformio-itself" tabindex="-1">Updating PlatformIO itself <a class="header-anchor" href="#updating-platformio-itself" aria-label="Permalink to &quot;Updating PlatformIO itself&quot;"></a></h2><p>There are two ways to update your platformio installation</p><h3 id="via-cli" tabindex="-1">Via CLI <a class="header-anchor" href="#via-cli" aria-label="Permalink to &quot;Via CLI&quot;"></a></h3><p>You can update it easily by simply typing in one command into your terminal.</p>',7),c=n('<ol><li>Open a terminal / command prompt</li><li>Type <code>pio upgrade</code> and press enter</li><li>Wait for it to finish</li><li>Done</li></ol><h3 id="via-platformio-in-visual-studio-code" tabindex="-1">Via PlatformIO in Visual Studio Code <a class="header-anchor" href="#via-platformio-in-visual-studio-code" aria-label="Permalink to &quot;Via PlatformIO in Visual Studio Code&quot;"></a></h3><p>You can also update it using the platformio tab in your Visual Studio Code.</p><ol><li>Open VSC</li><li>Click on that little and icon on the sidebar</li></ol>',4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n('<ol start="6"><li>Wait for it to finnish and done!</li></ol><h2 id="upgrading-the-sdk" tabindex="-1">Upgrading the SDK <a class="header-anchor" href="#upgrading-the-sdk" aria-label="Permalink to &quot;Upgrading the SDK&quot;"></a></h2><p>You&#39;ll also need to upgrade the SDK from timem to do this</p><h3 id="upgrading-the-sdk-via-vsc" tabindex="-1">Upgrading the SDK via VSC <a class="header-anchor" href="#upgrading-the-sdk-via-vsc" aria-label="Permalink to &quot;Upgrading the SDK via VSC&quot;"></a></h3><ol><li>Follow the guide above up until clicking on the <code>Quick Access</code> section.</li><li>Instead, open the <code>PIO Home</code> and select <code>Open</code></li></ol>',5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
import{_ as a,i as e}from"./chunks/index.15ec5911.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.3235ab14.js";const d=n('<h1 class="text-[var(--font-accent)]" id="updating-platformio" tabindex="-1">Updating Platformio <a class="header-anchor" href="#updating-platformio" aria-label="Permalink to &quot;Updating Platformio {.text-[var(--font-accent)]}&quot;"></a></h1><p>Sometimes, when building and uploading the firmware, you may run into bizarre, even-though the code is correct - platformio will refuse to build and instead will complain with some weird error.</p><p>It usually means that either PlatformIO, or ArduinoSDK got and update and that&#39;s the moment when this guide may come in handy.</p><h2 id="updating-platformio-itself" tabindex="-1">Updating PlatformIO itself <a class="header-anchor" href="#updating-platformio-itself" aria-label="Permalink to &quot;Updating PlatformIO itself&quot;"></a></h2><p>There are two ways to update your platformio installation</p><h3 id="via-cli" tabindex="-1">Via CLI <a class="header-anchor" href="#via-cli" aria-label="Permalink to &quot;Via CLI&quot;"></a></h3><p>You can update it easily by simply typing in one command into your terminal.</p>',7),c=n('<ol><li>Open a terminal / command prompt</li><li>Type <code>pio upgrade</code> and press enter</li><li>Wait for it to finish</li><li>Done</li></ol><h3 id="via-platformio-in-visual-studio-code" tabindex="-1">Via PlatformIO in Visual Studio Code <a class="header-anchor" href="#via-platformio-in-visual-studio-code" aria-label="Permalink to &quot;Via PlatformIO in Visual Studio Code&quot;"></a></h3><p>You can also update it using the platformio tab in your Visual Studio Code.</p><ol><li>Open VSC</li><li>Click on that little and icon on the sidebar</li></ol>',4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n('<ol start="6"><li>Wait for it to finnish and done!</li></ol><h2 id="upgrading-the-sdk" tabindex="-1">Upgrading the SDK <a class="header-anchor" href="#upgrading-the-sdk" aria-label="Permalink to &quot;Upgrading the SDK&quot;"></a></h2><p>You&#39;ll also need to upgrade the SDK from timem to do this</p><h3 id="upgrading-the-sdk-via-vsc" tabindex="-1">Upgrading the SDK via VSC <a class="header-anchor" href="#upgrading-the-sdk-via-vsc" aria-label="Permalink to &quot;Upgrading the SDK via VSC&quot;"></a></h3><ol><li>Follow the guide above up until clicking on the <code>Quick Access</code> section.</li><li>Instead, open the <code>PIO Home</code> and select <code>Open</code></li></ol>',5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as a,i as e}from"./chunks/index.37fa0c7a.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.0394bef4.js";const d=n("",7),c=n("",4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n("",5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};
import{_ as a,i as e}from"./chunks/index.15ec5911.js";import{o as s,c as r,H as i,l,Q as n,k as o,a as t}from"./chunks/framework.3235ab14.js";const d=n("",7),c=n("",4),p=o("ol",{start:"3"},[o("li",null,[t("A side panel will open, there will be a couple of sections, one of them called "),o("code",null,"Quick Access"),t(", open it.")])],-1),u=o("ol",{start:"4"},[o("li",null,[t("In "),o("code",null,"Quick Access"),t(" section, click on the "),o("code",null,"Miscelleneous"),t(" tab")])],-1),_=o("ol",{start:"5"},[o("li",null,[t("Then, click on the "),o("code",null,"Upgrade PlatformIO Core")])],-1),h=n("",5),m=o("ol",{start:"3"},[o("li",null,[t("This will open a window for PlatformIO dashboard, in there, click on a "),o("code",null,"Platforms"),t(" button on the sidebar")])],-1),f=o("ol",{start:"4"},[o("li",null,[t("Once there, you should see a couple of tabs next to the side bard, things like "),o("code",null,"Installed"),t(" or "),o("code",null,"Embedded"),t(". Click on "),o("code",null,"Updates")])],-1),g=o("ol",{start:"5"},[o("li",null,[t("Locate a platform called "),o("code",null,"Espressif 32"),t(" and click on "),o("code",null,"Update to <version>")])],-1),b=o("ol",{start:"6"},[o("li",null,"Wait until it is done and that's it!")],-1),v=JSON.parse('{"title":"Updating Platformio","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/update_platformio.md","filePath":"firmware_guide/update_platformio.md","lastUpdated":1678402493000}'),k={name:"firmware_guide/update_platformio.md"},w=Object.assign(k,{setup(P){return(S,T)=>(s(),r("div",null,[d,i(a,{options:l(e).pio_upgrade_command},null,8,["options"]),c,i(a,{options:l(e).ant_logo_platformio},null,8,["options"]),p,i(a,{options:l(e).platformio_quick_access},null,8,["options"]),u,i(a,{options:l(e).platformio_quick_access_miscellaneous},null,8,["options"]),_,i(a,{options:l(e).platformio_quick_access_upgrade_core},null,8,["options"]),h,i(a,{options:l(e).platformio_pio_home},null,8,["options"]),m,i(a,{options:l(e).platformio_pio_sidebar_platforms},null,8,["options"]),f,i(a,{options:l(e).platformio_pio_sidebar_platforms_updates},null,8,["options"]),g,i(a,{options:l(e).platformio_pio_espressif32},null,8,["options"]),b]))}});export{v as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as s,a as l}from"./chunks/index.14686ebb.js";import{_ as a,i as r}from"./chunks/index.37fa0c7a.js";import{o as u,c as d,H as o,w as p,l as t,Q as i,k as e,a as n}from"./chunks/framework.0394bef4.js";const h=i("",17),c=e("p",null," The MB board does the resetting for you. If you're using the FTDI programmer, follow the guide linked above (the one from randomnerdtutorials) ",-1),m=i("",14),f=e("p",null," You don't have to have the trackers connected to your pc for any of these steps, just powered on and connected to the Wi-Fi. ",-1),_=e("ol",null,[e("li",null,[n("Build the firmware using your current environment, if you've switched to an OTA env in the past - repeat those steps but select the environment without the "),e("code",null,"_OTA"),n(" suffix. Next, press the checkmark button to build it without uploading.")])],-1),g=i("",3),y=e("p",null,[n("Click on the select file button, and navigate to where you cloned the project and then to the "),e("code",null,"ESP/"),n(" directory.")],-1),w=e("p",null,[n("Once there, open "),e("code",null,".pio\\build\\your-environment"),n(" like so:")],-1),b=e("blockquote",null,[e("p",null,[n("By default, windows treats files and directories with a dot in front of their name as hidden. To change that - "),e("a",{href:"https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5",target:"_blank",rel:"noreferrer"},"see here")])],-1),v=e("p",null,[n("You'll find a couple files in there, select the one named "),e("code",null,"your-environment-vVersion-feature"),n(".")],-1),k=e("p",null,"like this one:",-1),T=e("ol",{start:"5"},[e("li",null,"Press upload and wait for it to finish. Done!")],-1),S=i("",8),P=e("p",null,"This will open a list of all available environments, select the one that matches your board and has a _OTA suffix",-1),A=i("",3),C=e("p",null,"Now, press the restart button on the esp itself. watch the monitor for output like this:",-1),D=i("",5),I=e("p",null," Skip this step if the update message denotes that the config had changed. If it does so, retype your credentials in the updated files. ",-1),F=i("",6),U=JSON.parse('{"title":"Building and uploading the firmware manually","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/upload_and_update_firmware.md","filePath":"firmware_guide/upload_and_update_firmware.md","lastUpdated":1682366995000}'),B={name:"firmware_guide/upload_and_update_firmware.md"},R=Object.assign(B,{setup(O){return(E,q)=>(u(),d("div",null,[h,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[c]),_:1},8,["options"]),m,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[f]),_:1},8,["options"]),_,o(a,{options:t(r).upload_firmware_build_button},null,8,["options"]),g,o(a,{options:t(r).upload_firmware_webpage},null,8,["options"]),y,w,b,o(a,{options:t(r).upload_firmware_webpage_directory},null,8,["options"]),v,k,o(a,{options:t(r).upload_firmware_webpage_directory_file},null,8,["options"]),T,o(a,{options:t(r).upload_firmware_webpage_upload_finished},null,8,["options"]),S,o(a,{options:t(r).upload_firmware_select_env},null,8,["options"]),P,o(a,{options:t(r).upload_firmware_select_env_dropdown},null,8,["options"]),A,o(a,{options:t(r).upload_firmware_image_one},null,8,["options"]),C,o(a,{options:t(r).upload_firmware_image_two},null,8,["options"]),D,o(s,{options:t(l).user_warning},{content:p(()=>[I]),_:1},8,["options"]),F]))}});export{U as __pageData,R as default};
import{_ as s,a as l}from"./chunks/index.24cac4a2.js";import{_ as a,i as r}from"./chunks/index.15ec5911.js";import{o as u,c as d,H as o,w as p,l as t,Q as i,k as e,a as n}from"./chunks/framework.3235ab14.js";const h=i("",17),c=e("p",null," The MB board does the resetting for you. If you're using the FTDI programmer, follow the guide linked above (the one from randomnerdtutorials) ",-1),m=i("",14),f=e("p",null," You don't have to have the trackers connected to your pc for any of these steps, just powered on and connected to the Wi-Fi. ",-1),_=e("ol",null,[e("li",null,[n("Build the firmware using your current environment, if you've switched to an OTA env in the past - repeat those steps but select the environment without the "),e("code",null,"_OTA"),n(" suffix. Next, press the checkmark button to build it without uploading.")])],-1),g=i("",3),y=e("p",null,[n("Click on the select file button, and navigate to where you cloned the project and then to the "),e("code",null,"ESP/"),n(" directory.")],-1),w=e("p",null,[n("Once there, open "),e("code",null,".pio\\build\\your-environment"),n(" like so:")],-1),b=e("blockquote",null,[e("p",null,[n("By default, windows treats files and directories with a dot in front of their name as hidden. To change that - "),e("a",{href:"https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5",target:"_blank",rel:"noreferrer"},"see here")])],-1),v=e("p",null,[n("You'll find a couple files in there, select the one named "),e("code",null,"your-environment-vVersion-feature"),n(".")],-1),k=e("p",null,"like this one:",-1),T=e("ol",{start:"5"},[e("li",null,"Press upload and wait for it to finish. Done!")],-1),S=i("",8),P=e("p",null,"This will open a list of all available environments, select the one that matches your board and has a _OTA suffix",-1),A=i("",3),C=e("p",null,"Now, press the restart button on the esp itself. watch the monitor for output like this:",-1),D=i("",5),I=e("p",null," Skip this step if the update message denotes that the config had changed. If it does so, retype your credentials in the updated files. ",-1),F=i("",6),U=JSON.parse('{"title":"Building and uploading the firmware manually","description":"","frontmatter":{},"headers":[],"relativePath":"firmware_guide/upload_and_update_firmware.md","filePath":"firmware_guide/upload_and_update_firmware.md","lastUpdated":1682366995000}'),B={name:"firmware_guide/upload_and_update_firmware.md"},R=Object.assign(B,{setup(O){return(E,q)=>(u(),d("div",null,[h,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[c]),_:1},8,["options"]),m,o(s,{options:t(l).upload_firmware_one},{content:p(()=>[f]),_:1},8,["options"]),_,o(a,{options:t(r).upload_firmware_build_button},null,8,["options"]),g,o(a,{options:t(r).upload_firmware_webpage},null,8,["options"]),y,w,b,o(a,{options:t(r).upload_firmware_webpage_directory},null,8,["options"]),v,k,o(a,{options:t(r).upload_firmware_webpage_directory_file},null,8,["options"]),T,o(a,{options:t(r).upload_firmware_webpage_upload_finished},null,8,["options"]),S,o(a,{options:t(r).upload_firmware_select_env},null,8,["options"]),P,o(a,{options:t(r).upload_firmware_select_env_dropdown},null,8,["options"]),A,o(a,{options:t(r).upload_firmware_image_one},null,8,["options"]),C,o(a,{options:t(r).upload_firmware_image_two},null,8,["options"]),D,o(s,{options:t(l).user_warning},{content:p(()=>[I]),_:1},8,["options"]),F]))}});export{U as __pageData,R as default};

View File

@ -1 +1 @@
import{_ as i,a as s}from"./chunks/index.14686ebb.js";import{_ as l,i as d}from"./chunks/index.37fa0c7a.js";import{o as c,c as h,H as a,w as n,l as r,Q as t,k as e,a as o}from"./chunks/framework.0394bef4.js";const u=t("",4),_=e("p",null," This project is in active development. However, it is working for most users. ",-1),p=t("",5),m=e("p",null,[o(" Make sure you are using "),e("ins",{class:"text-red-400 dark:text-red-500"},"non-focused"),o(" emitters and no more than "),e("ins",{class:"font-bold"},"5 mW/sr"),o(" total power. ")],-1),f=t("",9),b=t("",3),R=JSON.parse('{"title":"EyeTrackVR","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/intro.md","filePath":"getting_started/intro.md","lastUpdated":1700510338000}'),y={name:"getting_started/intro.md"},I=Object.assign(y,{setup(g){return(k,w)=>(c(),h("div",null,[u,a(i,{options:r(s).user_warning},{content:n(()=>[_]),_:1},8,["options"]),p,a(i,{options:r(s).led_power_warning},{content:n(()=>[m]),_:1},8,["options"]),f,a(l,{options:r(d).discord_content},null,8,["options"]),b]))}});export{R as __pageData,I as default};
import{_ as i,a as s}from"./chunks/index.24cac4a2.js";import{_ as l,i as d}from"./chunks/index.15ec5911.js";import{o as c,c as h,H as a,w as n,l as r,Q as t,k as e,a as o}from"./chunks/framework.3235ab14.js";const u=t("",4),_=e("p",null," This project is in active development. However, it is working for most users. ",-1),p=t("",5),m=e("p",null,[o(" Make sure you are using "),e("ins",{class:"text-red-400 dark:text-red-500"},"non-focused"),o(" emitters and no more than "),e("ins",{class:"font-bold"},"5 mW/sr"),o(" total power. ")],-1),f=t("",9),b=t("",3),R=JSON.parse('{"title":"EyeTrackVR","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/intro.md","filePath":"getting_started/intro.md","lastUpdated":1700510338000}'),y={name:"getting_started/intro.md"},I=Object.assign(y,{setup(g){return(k,w)=>(c(),h("div",null,[u,a(i,{options:r(s).user_warning},{content:n(()=>[_]),_:1},8,["options"]),p,a(i,{options:r(s).led_power_warning},{content:n(()=>[m]),_:1},8,["options"]),f,a(l,{options:r(d).discord_content},null,8,["options"]),b]))}});export{R as __pageData,I as default};

View File

@ -1 +1 @@
import{_ as t,a}from"./chunks/index.14686ebb.js";import{o,c as s,H as r,w as i,l as n,Q as e,k as l}from"./chunks/framework.0394bef4.js";const h=e("",12),u=l("p",null,' This math is assuming the LED is directly in front of your pupil, and your pupil is not moving. In real world this is not the case. We have multiple LEDs around your eye, and your eye moves. When you look to the side, your pupil is not receiving all of the light from all LEDs and the distance grows as well. Properly calculating for this is hard and not worth the time. I chose to show that the "worst case scenario" is still well withing safety margins. ',-1),c=e("",21),b=JSON.parse('{"title":"V3 Hardware Safety Outline and Exposure Numbers:","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1700510338000}'),d={name:"getting_started/led_safety.md"},g=Object.assign(d,{setup(m){return(p,f)=>(o(),s("div",null,[h,r(t,{options:n(a).build_software_one},{content:i(()=>[u]),_:1},8,["options"]),c]))}});export{b as __pageData,g as default};
import{_ as t,a}from"./chunks/index.24cac4a2.js";import{o,c as s,H as r,w as i,l as n,Q as e,k as l}from"./chunks/framework.3235ab14.js";const h=e("",12),u=l("p",null,' This math is assuming the LED is directly in front of your pupil, and your pupil is not moving. In real world this is not the case. We have multiple LEDs around your eye, and your eye moves. When you look to the side, your pupil is not receiving all of the light from all LEDs and the distance grows as well. Properly calculating for this is hard and not worth the time. I chose to show that the "worst case scenario" is still well withing safety margins. ',-1),c=e("",21),b=JSON.parse('{"title":"V3 Hardware Safety Outline and Exposure Numbers:","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1700510338000}'),d={name:"getting_started/led_safety.md"},g=Object.assign(d,{setup(m){return(p,f)=>(o(),s("div",null,[h,r(t,{options:n(a).build_software_one},{content:i(()=>[u]),_:1},8,["options"]),c]))}});export{b as __pageData,g as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.0394bef4.js";const p=JSON.parse('{"title":"Things To Know Before You Start","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/things_to_know.md","filePath":"getting_started/things_to_know.md","lastUpdated":1700510338000}'),i={name:"getting_started/things_to_know.md"},r=o('<h1 class="text-[var(--font-accent)]" id="things-to-know-before-you-start" tabindex="-1">Things To Know Before You Start <a class="header-anchor" href="#things-to-know-before-you-start" aria-label="Permalink to &quot;Things To Know Before You Start {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="this-page-is-an-overview-of-things-to-know-and-understand-before-you-start-this-project" tabindex="-1">This page is an overview of things to know and understand before you start this project <a class="header-anchor" href="#this-page-is-an-overview-of-things-to-know-and-understand-before-you-start-this-project" aria-label="Permalink to &quot;This page is an overview of things to know and understand before you start this project&quot;"></a></h2><h3 id="software-is-not-final" tabindex="-1">Software is not final <a class="header-anchor" href="#software-is-not-final" aria-label="Permalink to &quot;Software is not final&quot;"></a></h3><p>Bugs can and will occur which may hinder the experience or usability at times. Do not expect 100% reliable and perfect function. Not all features are fully developed yet.</p><h3 id="firmware-may-have-user-difficulties" tabindex="-1">Firmware may have user difficulties <a class="header-anchor" href="#firmware-may-have-user-difficulties" aria-label="Permalink to &quot;Firmware may have user difficulties&quot;"></a></h3><p>Our firmware has not been tested widely so issues may creep up.</p><h3 id="ir-emitters-are-dangerous" tabindex="-1">IR emitters are dangerous <a class="header-anchor" href="#ir-emitters-are-dangerous" aria-label="Permalink to &quot;IR emitters are dangerous&quot;"></a></h3><p>If handled wrong or precautions are ignored you can and will cause damage to your eyes. Please make sure to only buy linked ones or ones with specs that match exactly. We will not be responsible for damage caused if you go your own route.</p><h3 id="documentation-may-be-incomplete" tabindex="-1">Documentation may be incomplete <a class="header-anchor" href="#documentation-may-be-incomplete" aria-label="Permalink to &quot;Documentation may be incomplete&quot;"></a></h3><p>Important steps may be missing.</p><h3 id="you-will-need-to-set-up-your-avatar-to-use-this" tabindex="-1">You will need to set up your avatar to use this <a class="header-anchor" href="#you-will-need-to-set-up-your-avatar-to-use-this" aria-label="Permalink to &quot;You will need to set up your avatar to use this&quot;"></a></h3><p>This will require basic knowledge of Unity and ownership of your own avatar. Note: The 2.0 beta version of our app uses VRC&#39;s Native eye tracking, which does <strong>NOT</strong> require a special avatar.</p><h3 id="once-you-have-acknowledged-the-items-above-move-on-to-the-full-build-guide" tabindex="-1">Once you have acknowledged the items above, move on to the <a href="./../how_to_build/full_build">Full Build Guide</a> <a class="header-anchor" href="#once-you-have-acknowledged-the-items-above-move-on-to-the-full-build-guide" aria-label="Permalink to &quot;Once you have acknowledged the items above, move on to the [Full Build Guide](../how_to_build/full_build)&quot;"></a></h3>',13),n=[r];function s(l,u,d,h,c,f){return a(),t("div",null,n)}const w=e(i,[["render",s]]);export{p as __pageData,w as default};
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.3235ab14.js";const p=JSON.parse('{"title":"Things To Know Before You Start","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/things_to_know.md","filePath":"getting_started/things_to_know.md","lastUpdated":1700510338000}'),i={name:"getting_started/things_to_know.md"},r=o('<h1 class="text-[var(--font-accent)]" id="things-to-know-before-you-start" tabindex="-1">Things To Know Before You Start <a class="header-anchor" href="#things-to-know-before-you-start" aria-label="Permalink to &quot;Things To Know Before You Start {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="this-page-is-an-overview-of-things-to-know-and-understand-before-you-start-this-project" tabindex="-1">This page is an overview of things to know and understand before you start this project <a class="header-anchor" href="#this-page-is-an-overview-of-things-to-know-and-understand-before-you-start-this-project" aria-label="Permalink to &quot;This page is an overview of things to know and understand before you start this project&quot;"></a></h2><h3 id="software-is-not-final" tabindex="-1">Software is not final <a class="header-anchor" href="#software-is-not-final" aria-label="Permalink to &quot;Software is not final&quot;"></a></h3><p>Bugs can and will occur which may hinder the experience or usability at times. Do not expect 100% reliable and perfect function. Not all features are fully developed yet.</p><h3 id="firmware-may-have-user-difficulties" tabindex="-1">Firmware may have user difficulties <a class="header-anchor" href="#firmware-may-have-user-difficulties" aria-label="Permalink to &quot;Firmware may have user difficulties&quot;"></a></h3><p>Our firmware has not been tested widely so issues may creep up.</p><h3 id="ir-emitters-are-dangerous" tabindex="-1">IR emitters are dangerous <a class="header-anchor" href="#ir-emitters-are-dangerous" aria-label="Permalink to &quot;IR emitters are dangerous&quot;"></a></h3><p>If handled wrong or precautions are ignored you can and will cause damage to your eyes. Please make sure to only buy linked ones or ones with specs that match exactly. We will not be responsible for damage caused if you go your own route.</p><h3 id="documentation-may-be-incomplete" tabindex="-1">Documentation may be incomplete <a class="header-anchor" href="#documentation-may-be-incomplete" aria-label="Permalink to &quot;Documentation may be incomplete&quot;"></a></h3><p>Important steps may be missing.</p><h3 id="you-will-need-to-set-up-your-avatar-to-use-this" tabindex="-1">You will need to set up your avatar to use this <a class="header-anchor" href="#you-will-need-to-set-up-your-avatar-to-use-this" aria-label="Permalink to &quot;You will need to set up your avatar to use this&quot;"></a></h3><p>This will require basic knowledge of Unity and ownership of your own avatar. Note: The 2.0 beta version of our app uses VRC&#39;s Native eye tracking, which does <strong>NOT</strong> require a special avatar.</p><h3 id="once-you-have-acknowledged-the-items-above-move-on-to-the-full-build-guide" tabindex="-1">Once you have acknowledged the items above, move on to the <a href="./../how_to_build/full_build">Full Build Guide</a> <a class="header-anchor" href="#once-you-have-acknowledged-the-items-above-move-on-to-the-full-build-guide" aria-label="Permalink to &quot;Once you have acknowledged the items above, move on to the [Full Build Guide](../how_to_build/full_build)&quot;"></a></h3>',13),n=[r];function s(l,u,d,h,c,f){return a(),t("div",null,n)}const w=e(i,[["render",s]]);export{p as __pageData,w as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.0394bef4.js";const p=JSON.parse('{"title":"Things To Know Before You Start","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/things_to_know.md","filePath":"getting_started/things_to_know.md","lastUpdated":1700510338000}'),i={name:"getting_started/things_to_know.md"},r=o("",13),n=[r];function s(l,u,d,h,c,f){return a(),t("div",null,n)}const w=e(i,[["render",s]]);export{p as __pageData,w as default};
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.3235ab14.js";const p=JSON.parse('{"title":"Things To Know Before You Start","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/things_to_know.md","filePath":"getting_started/things_to_know.md","lastUpdated":1700510338000}'),i={name:"getting_started/things_to_know.md"},r=o("",13),n=[r];function s(l,u,d,h,c,f){return a(),t("div",null,n)}const w=e(i,[["render",s]]);export{p as __pageData,w as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as e,o as t,c as r,Q as a}from"./chunks/framework.3235ab14.js";const g=JSON.parse('{"title":"Valve Index","description":"","frontmatter":{},"headers":[],"relativePath":"headset_guides/Valve_Index.md","filePath":"headset_guides/Valve_Index.md","lastUpdated":1716906983000}'),i={name:"headset_guides/Valve_Index.md"},o=a("",65),n=[o];function s(l,h,d,u,c,p){return t(),r("div",null,n)}const b=e(i,[["render",s]]);export{g as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.0394bef4.js";const f=JSON.parse('{"title":"What are \\"Headset Specific Guides\\"?","description":"","frontmatter":{},"headers":[],"relativePath":"headset_guides/what_is_this.md","filePath":"headset_guides/what_is_this.md","lastUpdated":1711999868000}'),i={name:"headset_guides/what_is_this.md"},s=o("",52),r=[s];function n(d,l,p,c,h,u){return a(),t("div",null,r)}const b=e(i,[["render",n]]);export{f as __pageData,b as default};
import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.3235ab14.js";const f=JSON.parse('{"title":"What are \\"Headset Specific Guides\\"?","description":"","frontmatter":{},"headers":[],"relativePath":"headset_guides/what_is_this.md","filePath":"headset_guides/what_is_this.md","lastUpdated":1711999868000}'),i={name:"headset_guides/what_is_this.md"},s=o("",52),r=[s];function n(d,l,p,c,h,u){return a(),t("div",null,r)}const b=e(i,[["render",n]]);export{f as __pageData,b as default};

View File

@ -1 +1 @@
import{_ as e,o as t,c as a,Q as o}from"./chunks/framework.0394bef4.js";const w=JSON.parse('{"title":"Creating Your Own Mount","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/creating_your_own_mount.md","filePath":"how_to_build/creating_your_own_mount.md","lastUpdated":1700510338000}'),r={name:"how_to_build/creating_your_own_mount.md"},n=o('<h1 class="text-[var(--font-accent)]" id="creating-your-own-mount" tabindex="-1">Creating Your Own Mount <a class="header-anchor" href="#creating-your-own-mount" aria-label="Permalink to &quot;Creating Your Own Mount {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="this-page-will-include-a-basic-rundown-on-how-to-create-your-own-camera-mount-for-a-headset-that-may-not-have-any-existing-community-mounts" tabindex="-1">This page will include a basic rundown on how to create your own camera mount for a headset that may not have any existing community mounts <a class="header-anchor" href="#this-page-will-include-a-basic-rundown-on-how-to-create-your-own-camera-mount-for-a-headset-that-may-not-have-any-existing-community-mounts" aria-label="Permalink to &quot;This page will include a basic rundown on how to create your own camera mount for a headset that may not have any existing community mounts&quot;"></a></h2><p>So, you have a headset that does not have any mounts or none that work well for you. Here I will show some simple steps to get some form of a mount working.</p><h2 id="step-1-find-a-way-to-mount-to-your-headset-s-lens" tabindex="-1">Step 1: Find a way to mount to your headset&#39;s lens <a class="header-anchor" href="#step-1-find-a-way-to-mount-to-your-headset-s-lens" aria-label="Permalink to &quot;Step 1: Find a way to mount to your headset&#39;s lens&quot;"></a></h2><p>The easiest way to get started is to find a lens protector for your headset. You can visit a website like <a href="https://www.thingiverse.com/" target="_blank" rel="noreferrer">Thingiverse</a> or do a search for &quot;3d printed lens protector for {your headset here}&quot;</p><p>Example: Here is a lens protector for the Quest 1/2 and Rift S <a href="https://www.thingiverse.com/thing:3653631" target="_blank" rel="noreferrer">https://www.thingiverse.com/thing:3653631</a></p><h2 id="step-2-find-a-camera-mount" tabindex="-1">Step 2: Find a camera mount <a class="header-anchor" href="#step-2-find-a-camera-mount" aria-label="Permalink to &quot;Step 2: Find a camera mount&quot;"></a></h2><p>Now, you need a way to attach the camera. We have a basic design created by qdot, based on his mount on the hardware GitHub <a href="https://github.com/EyeTrackVR/EyeTrackVR-Hardware/blob/main/3d_Printed_Mounts/Basic_Mount_Components/basic_ETVR_camera_mount.stl" target="_blank" rel="noreferrer">here</a></p><p>Alternatively, you can create your own mount if you have the skills.</p><h2 id="step-3-place-the-camera-mount-where-it-will-give-a-good-camera-angle" tabindex="-1">Step 3: Place the camera mount where it will give a good camera angle <a class="header-anchor" href="#step-3-place-the-camera-mount-where-it-will-give-a-good-camera-angle" aria-label="Permalink to &quot;Step 3: Place the camera mount where it will give a good camera angle&quot;"></a></h2><p>The &quot;Ideal&quot; location is a place that gives a good view of the pupil when looking to all extremes, the lower corners do a good job at getting there, or nearly there.</p><p>It is recommended to place the camera as close as possible to the headset&#39;s lens to maximize the view of the eye. I recommend looking at other headset mounts for <a href="https://github.com/EyeTrackVR/EyeTrackVR-Hardware/tree/main/3d_Printed_Mounts" target="_blank" rel="noreferrer">inspiration.</a></p><h2 id="step-4-mount-your-leds" tabindex="-1">Step 4: Mount your LEDs <a class="header-anchor" href="#step-4-mount-your-leds" aria-label="Permalink to &quot;Step 4: Mount your LEDs&quot;"></a></h2><p>You can either add parts to your mount for holding the LED boards or just glue them on. It&#39;s up to you and what works best for you, experiment!</p><h2 id="step-5-test-everything" tabindex="-1">Step 5: Test everything <a class="header-anchor" href="#step-5-test-everything" aria-label="Permalink to &quot;Step 5: Test everything&quot;"></a></h2><p>It is unlikely you will get a perfect mount on the first try. Print, test, adjust, and repeat until you have a satisfactory mount. Good luck!</p><h2 id="step-6-get-your-mounts-listed" tabindex="-1">Step 6: Get your mounts listed <a class="header-anchor" href="#step-6-get-your-mounts-listed" aria-label="Permalink to &quot;Step 6: Get your mounts listed&quot;"></a></h2><p>Send me the mount to be added to the docs here! You can upload it to Thingiverse or similar services, or just send me the .STLs via discord <code>(Prohurtz#0001)</code></p>',18),i=[n];function s(h,u,l,d,c,m){return t(),a("div",null,i)}const y=e(r,[["render",s]]);export{w as __pageData,y as default};
import{_ as e,o as t,c as a,Q as o}from"./chunks/framework.3235ab14.js";const w=JSON.parse('{"title":"Creating Your Own Mount","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/creating_your_own_mount.md","filePath":"how_to_build/creating_your_own_mount.md","lastUpdated":1700510338000}'),r={name:"how_to_build/creating_your_own_mount.md"},n=o('<h1 class="text-[var(--font-accent)]" id="creating-your-own-mount" tabindex="-1">Creating Your Own Mount <a class="header-anchor" href="#creating-your-own-mount" aria-label="Permalink to &quot;Creating Your Own Mount {.text-[var(--font-accent)]}&quot;"></a></h1><h2 id="this-page-will-include-a-basic-rundown-on-how-to-create-your-own-camera-mount-for-a-headset-that-may-not-have-any-existing-community-mounts" tabindex="-1">This page will include a basic rundown on how to create your own camera mount for a headset that may not have any existing community mounts <a class="header-anchor" href="#this-page-will-include-a-basic-rundown-on-how-to-create-your-own-camera-mount-for-a-headset-that-may-not-have-any-existing-community-mounts" aria-label="Permalink to &quot;This page will include a basic rundown on how to create your own camera mount for a headset that may not have any existing community mounts&quot;"></a></h2><p>So, you have a headset that does not have any mounts or none that work well for you. Here I will show some simple steps to get some form of a mount working.</p><h2 id="step-1-find-a-way-to-mount-to-your-headset-s-lens" tabindex="-1">Step 1: Find a way to mount to your headset&#39;s lens <a class="header-anchor" href="#step-1-find-a-way-to-mount-to-your-headset-s-lens" aria-label="Permalink to &quot;Step 1: Find a way to mount to your headset&#39;s lens&quot;"></a></h2><p>The easiest way to get started is to find a lens protector for your headset. You can visit a website like <a href="https://www.thingiverse.com/" target="_blank" rel="noreferrer">Thingiverse</a> or do a search for &quot;3d printed lens protector for {your headset here}&quot;</p><p>Example: Here is a lens protector for the Quest 1/2 and Rift S <a href="https://www.thingiverse.com/thing:3653631" target="_blank" rel="noreferrer">https://www.thingiverse.com/thing:3653631</a></p><h2 id="step-2-find-a-camera-mount" tabindex="-1">Step 2: Find a camera mount <a class="header-anchor" href="#step-2-find-a-camera-mount" aria-label="Permalink to &quot;Step 2: Find a camera mount&quot;"></a></h2><p>Now, you need a way to attach the camera. We have a basic design created by qdot, based on his mount on the hardware GitHub <a href="https://github.com/EyeTrackVR/EyeTrackVR-Hardware/blob/main/3d_Printed_Mounts/Basic_Mount_Components/basic_ETVR_camera_mount.stl" target="_blank" rel="noreferrer">here</a></p><p>Alternatively, you can create your own mount if you have the skills.</p><h2 id="step-3-place-the-camera-mount-where-it-will-give-a-good-camera-angle" tabindex="-1">Step 3: Place the camera mount where it will give a good camera angle <a class="header-anchor" href="#step-3-place-the-camera-mount-where-it-will-give-a-good-camera-angle" aria-label="Permalink to &quot;Step 3: Place the camera mount where it will give a good camera angle&quot;"></a></h2><p>The &quot;Ideal&quot; location is a place that gives a good view of the pupil when looking to all extremes, the lower corners do a good job at getting there, or nearly there.</p><p>It is recommended to place the camera as close as possible to the headset&#39;s lens to maximize the view of the eye. I recommend looking at other headset mounts for <a href="https://github.com/EyeTrackVR/EyeTrackVR-Hardware/tree/main/3d_Printed_Mounts" target="_blank" rel="noreferrer">inspiration.</a></p><h2 id="step-4-mount-your-leds" tabindex="-1">Step 4: Mount your LEDs <a class="header-anchor" href="#step-4-mount-your-leds" aria-label="Permalink to &quot;Step 4: Mount your LEDs&quot;"></a></h2><p>You can either add parts to your mount for holding the LED boards or just glue them on. It&#39;s up to you and what works best for you, experiment!</p><h2 id="step-5-test-everything" tabindex="-1">Step 5: Test everything <a class="header-anchor" href="#step-5-test-everything" aria-label="Permalink to &quot;Step 5: Test everything&quot;"></a></h2><p>It is unlikely you will get a perfect mount on the first try. Print, test, adjust, and repeat until you have a satisfactory mount. Good luck!</p><h2 id="step-6-get-your-mounts-listed" tabindex="-1">Step 6: Get your mounts listed <a class="header-anchor" href="#step-6-get-your-mounts-listed" aria-label="Permalink to &quot;Step 6: Get your mounts listed&quot;"></a></h2><p>Send me the mount to be added to the docs here! You can upload it to Thingiverse or similar services, or just send me the .STLs via discord <code>(Prohurtz#0001)</code></p>',18),i=[n];function s(h,u,l,d,c,m){return t(),a("div",null,i)}const y=e(r,[["render",s]]);export{w as __pageData,y as default};

View File

@ -1 +1 @@
import{_ as e,o as t,c as a,Q as o}from"./chunks/framework.0394bef4.js";const w=JSON.parse('{"title":"Creating Your Own Mount","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/creating_your_own_mount.md","filePath":"how_to_build/creating_your_own_mount.md","lastUpdated":1700510338000}'),r={name:"how_to_build/creating_your_own_mount.md"},n=o("",18),i=[n];function s(h,u,l,d,c,m){return t(),a("div",null,i)}const y=e(r,[["render",s]]);export{w as __pageData,y as default};
import{_ as e,o as t,c as a,Q as o}from"./chunks/framework.3235ab14.js";const w=JSON.parse('{"title":"Creating Your Own Mount","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/creating_your_own_mount.md","filePath":"how_to_build/creating_your_own_mount.md","lastUpdated":1700510338000}'),r={name:"how_to_build/creating_your_own_mount.md"},n=o("",18),i=[n];function s(h,u,l,d,c,m){return t(),a("div",null,i)}const y=e(r,[["render",s]]);export{w as __pageData,y as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as t,i as o}from"./chunks/index.37fa0c7a.js";import{o as s,c as i,H as a,l as n,k as e,a as r}from"./chunks/framework.0394bef4.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"protecting-a-camera-ribbon-cable",tabindex:"-1"},[r("Protecting a Camera Ribbon Cable "),e("a",{class:"header-anchor",href:"#protecting-a-camera-ribbon-cable","aria-label":'Permalink to "Protecting a Camera Ribbon Cable {.text-[var(--font-accent)]}"'},"")],-1),c=e("p",null,"The ribbon cables that these cameras use are notoriously prone to damage rendering them useless.",-1),p=e("p",null,"By wrapping them in tape such as electrical tape and following best practices covered in the guide, you can significantly reduce the risk of killing a camera.",-1),h=e("p",null,"It is recommended to do this before building your setup so you are less likely to kill a camera in the process of building a setup.",-1),d=e("h2",{id:"wrapping-the-camera-ribbon",tabindex:"-1"},[r("Wrapping the Camera Ribbon "),e("a",{class:"header-anchor",href:"#wrapping-the-camera-ribbon","aria-label":'Permalink to "Wrapping the Camera Ribbon"'},"")],-1),u=e("p",null,"First get a roll of electrical tape to wrap the camera ribbon. It does not strictly need to be electrical tape, but that is what I have found to work good, (and look good too).",-1),_=e("p",null,"Place the camera on the tape so that the entire bottom area including the sensor are covered and that one side of the camera ribbon has slightly more tape (helps make it look good).",-1),m=e("p",null,"Cut the tape from the roll, here I used flat cutters. Be careful to not cut the camera connector in the process.",-1),b=e("p",null,"With the tape cut from the roll, lay it down and get out a X-ACTO knife.",-1),g=e("p",null,"Begin to cut around the camera connector so the tape can be peeled off.",-1),f=e("p",null,"When each side has been cut, begin to peel off the part that covered the connections.",-1),k=e("p",null,'Now, carefully cut around the camera sensor part to remove its "skirt" leaving tape on the back of it.',-1),w=e("p",null,"Gently pull off this outline of tape from the camera.",-1),y=e("p",null,"Begin to wrap the tape along the ribbon cable by first folding in the slightly shorter side.",-1),C=e("p",null,"Fold over the other side.",-1),v=e("p",null,"And you are done!",-1),P=e("h2",{id:"best-practices-when-handling-cameras",tabindex:"-1"},[r("Best Practices When Handling Cameras "),e("a",{class:"header-anchor",href:"#best-practices-when-handling-cameras","aria-label":'Permalink to "Best Practices When Handling Cameras"'},"")],-1),x=e("ul",null,[e("li",null,"Do not pull or jerk on the ribbon"),e("li",null,"Do not fold tightly or bend the ribbon cable sharper than ~45 degrees if possible"),e("li",null,"Do not expose to sharp objects or crevices"),e("li",null,"The less wear while handling or putting on/off a headset the better")],-1),B=e("h2",{id:"conclusion",tabindex:"-1"},[r("Conclusion "),e("a",{class:"header-anchor",href:"#conclusion","aria-label":'Permalink to "Conclusion"'},"")],-1),W=e("p",null,"You have successfully wrapped your camera to be protected and learned the best practices with handling cameras!",-1),H=JSON.parse('{"title":"Protecting a Camera Ribbon Cable","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/protecting_cameras.md","filePath":"how_to_build/protecting_cameras.md","lastUpdated":1710883304000}'),N={name:"how_to_build/protecting_cameras.md"},O=Object.assign(N,{setup(R){return(D,I)=>(s(),i("div",null,[l,c,p,h,d,u,a(t,{options:n(o).camera_protect1},null,8,["options"]),_,a(t,{options:n(o).camera_protect2},null,8,["options"]),m,a(t,{options:n(o).camera_protect3},null,8,["options"]),a(t,{options:n(o).camera_protect4},null,8,["options"]),b,a(t,{options:n(o).camera_protect5},null,8,["options"]),g,a(t,{options:n(o).camera_protect6},null,8,["options"]),a(t,{options:n(o).camera_protect7},null,8,["options"]),f,a(t,{options:n(o).camera_protect8},null,8,["options"]),a(t,{options:n(o).camera_protect9},null,8,["options"]),a(t,{options:n(o).camera_protect10},null,8,["options"]),k,a(t,{options:n(o).camera_protect11},null,8,["options"]),a(t,{options:n(o).camera_protect13},null,8,["options"]),a(t,{options:n(o).camera_protect14},null,8,["options"]),a(t,{options:n(o).camera_protect15},null,8,["options"]),a(t,{options:n(o).camera_protect12},null,8,["options"]),w,a(t,{options:n(o).camera_protect16},null,8,["options"]),a(t,{options:n(o).camera_protect17},null,8,["options"]),y,a(t,{options:n(o).camera_protect18},null,8,["options"]),a(t,{options:n(o).camera_protect19},null,8,["options"]),C,a(t,{options:n(o).camera_protect20},null,8,["options"]),a(t,{options:n(o).camera_protect21},null,8,["options"]),v,a(t,{options:n(o).camera_protect22},null,8,["options"]),P,x,B,W]))}});export{H as __pageData,O as default};
import{_ as t,i as o}from"./chunks/index.15ec5911.js";import{o as s,c as i,H as a,l as n,k as e,a as r}from"./chunks/framework.3235ab14.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"protecting-a-camera-ribbon-cable",tabindex:"-1"},[r("Protecting a Camera Ribbon Cable "),e("a",{class:"header-anchor",href:"#protecting-a-camera-ribbon-cable","aria-label":'Permalink to "Protecting a Camera Ribbon Cable {.text-[var(--font-accent)]}"'},"")],-1),c=e("p",null,"The ribbon cables that these cameras use are notoriously prone to damage rendering them useless.",-1),p=e("p",null,"By wrapping them in tape such as electrical tape and following best practices covered in the guide, you can significantly reduce the risk of killing a camera.",-1),h=e("p",null,"It is recommended to do this before building your setup so you are less likely to kill a camera in the process of building a setup.",-1),d=e("h2",{id:"wrapping-the-camera-ribbon",tabindex:"-1"},[r("Wrapping the Camera Ribbon "),e("a",{class:"header-anchor",href:"#wrapping-the-camera-ribbon","aria-label":'Permalink to "Wrapping the Camera Ribbon"'},"")],-1),u=e("p",null,"First get a roll of electrical tape to wrap the camera ribbon. It does not strictly need to be electrical tape, but that is what I have found to work good, (and look good too).",-1),_=e("p",null,"Place the camera on the tape so that the entire bottom area including the sensor are covered and that one side of the camera ribbon has slightly more tape (helps make it look good).",-1),m=e("p",null,"Cut the tape from the roll, here I used flat cutters. Be careful to not cut the camera connector in the process.",-1),b=e("p",null,"With the tape cut from the roll, lay it down and get out a X-ACTO knife.",-1),g=e("p",null,"Begin to cut around the camera connector so the tape can be peeled off.",-1),f=e("p",null,"When each side has been cut, begin to peel off the part that covered the connections.",-1),k=e("p",null,'Now, carefully cut around the camera sensor part to remove its "skirt" leaving tape on the back of it.',-1),w=e("p",null,"Gently pull off this outline of tape from the camera.",-1),y=e("p",null,"Begin to wrap the tape along the ribbon cable by first folding in the slightly shorter side.",-1),C=e("p",null,"Fold over the other side.",-1),v=e("p",null,"And you are done!",-1),P=e("h2",{id:"best-practices-when-handling-cameras",tabindex:"-1"},[r("Best Practices When Handling Cameras "),e("a",{class:"header-anchor",href:"#best-practices-when-handling-cameras","aria-label":'Permalink to "Best Practices When Handling Cameras"'},"")],-1),x=e("ul",null,[e("li",null,"Do not pull or jerk on the ribbon"),e("li",null,"Do not fold tightly or bend the ribbon cable sharper than ~45 degrees if possible"),e("li",null,"Do not expose to sharp objects or crevices"),e("li",null,"The less wear while handling or putting on/off a headset the better")],-1),B=e("h2",{id:"conclusion",tabindex:"-1"},[r("Conclusion "),e("a",{class:"header-anchor",href:"#conclusion","aria-label":'Permalink to "Conclusion"'},"")],-1),W=e("p",null,"You have successfully wrapped your camera to be protected and learned the best practices with handling cameras!",-1),H=JSON.parse('{"title":"Protecting a Camera Ribbon Cable","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/protecting_cameras.md","filePath":"how_to_build/protecting_cameras.md","lastUpdated":1710883304000}'),N={name:"how_to_build/protecting_cameras.md"},O=Object.assign(N,{setup(R){return(D,I)=>(s(),i("div",null,[l,c,p,h,d,u,a(t,{options:n(o).camera_protect1},null,8,["options"]),_,a(t,{options:n(o).camera_protect2},null,8,["options"]),m,a(t,{options:n(o).camera_protect3},null,8,["options"]),a(t,{options:n(o).camera_protect4},null,8,["options"]),b,a(t,{options:n(o).camera_protect5},null,8,["options"]),g,a(t,{options:n(o).camera_protect6},null,8,["options"]),a(t,{options:n(o).camera_protect7},null,8,["options"]),f,a(t,{options:n(o).camera_protect8},null,8,["options"]),a(t,{options:n(o).camera_protect9},null,8,["options"]),a(t,{options:n(o).camera_protect10},null,8,["options"]),k,a(t,{options:n(o).camera_protect11},null,8,["options"]),a(t,{options:n(o).camera_protect13},null,8,["options"]),a(t,{options:n(o).camera_protect14},null,8,["options"]),a(t,{options:n(o).camera_protect15},null,8,["options"]),a(t,{options:n(o).camera_protect12},null,8,["options"]),w,a(t,{options:n(o).camera_protect16},null,8,["options"]),a(t,{options:n(o).camera_protect17},null,8,["options"]),y,a(t,{options:n(o).camera_protect18},null,8,["options"]),a(t,{options:n(o).camera_protect19},null,8,["options"]),C,a(t,{options:n(o).camera_protect20},null,8,["options"]),a(t,{options:n(o).camera_protect21},null,8,["options"]),v,a(t,{options:n(o).camera_protect22},null,8,["options"]),P,x,B,W]))}});export{H as __pageData,O as default};

View File

@ -1 +1 @@
import{_ as t,i as o}from"./chunks/index.37fa0c7a.js";import{o as s,c as i,H as a,l as n,k as e,a as r}from"./chunks/framework.0394bef4.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"protecting-a-camera-ribbon-cable",tabindex:"-1"},[r("Protecting a Camera Ribbon Cable "),e("a",{class:"header-anchor",href:"#protecting-a-camera-ribbon-cable","aria-label":'Permalink to "Protecting a Camera Ribbon Cable {.text-[var(--font-accent)]}"'},"")],-1),c=e("p",null,"The ribbon cables that these cameras use are notoriously prone to damage rendering them useless.",-1),p=e("p",null,"By wrapping them in tape such as electrical tape and following best practices covered in the guide, you can significantly reduce the risk of killing a camera.",-1),h=e("p",null,"It is recommended to do this before building your setup so you are less likely to kill a camera in the process of building a setup.",-1),d=e("h2",{id:"wrapping-the-camera-ribbon",tabindex:"-1"},[r("Wrapping the Camera Ribbon "),e("a",{class:"header-anchor",href:"#wrapping-the-camera-ribbon","aria-label":'Permalink to "Wrapping the Camera Ribbon"'},"")],-1),u=e("p",null,"First get a roll of electrical tape to wrap the camera ribbon. It does not strictly need to be electrical tape, but that is what I have found to work good, (and look good too).",-1),_=e("p",null,"Place the camera on the tape so that the entire bottom area including the sensor are covered and that one side of the camera ribbon has slightly more tape (helps make it look good).",-1),m=e("p",null,"Cut the tape from the roll, here I used flat cutters. Be careful to not cut the camera connector in the process.",-1),b=e("p",null,"With the tape cut from the roll, lay it down and get out a X-ACTO knife.",-1),g=e("p",null,"Begin to cut around the camera connector so the tape can be peeled off.",-1),f=e("p",null,"When each side has been cut, begin to peel off the part that covered the connections.",-1),k=e("p",null,'Now, carefully cut around the camera sensor part to remove its "skirt" leaving tape on the back of it.',-1),w=e("p",null,"Gently pull off this outline of tape from the camera.",-1),y=e("p",null,"Begin to wrap the tape along the ribbon cable by first folding in the slightly shorter side.",-1),C=e("p",null,"Fold over the other side.",-1),v=e("p",null,"And you are done!",-1),P=e("h2",{id:"best-practices-when-handling-cameras",tabindex:"-1"},[r("Best Practices When Handling Cameras "),e("a",{class:"header-anchor",href:"#best-practices-when-handling-cameras","aria-label":'Permalink to "Best Practices When Handling Cameras"'},"")],-1),x=e("ul",null,[e("li",null,"Do not pull or jerk on the ribbon"),e("li",null,"Do not fold tightly or bend the ribbon cable sharper than ~45 degrees if possible"),e("li",null,"Do not expose to sharp objects or crevices"),e("li",null,"The less wear while handling or putting on/off a headset the better")],-1),B=e("h2",{id:"conclusion",tabindex:"-1"},[r("Conclusion "),e("a",{class:"header-anchor",href:"#conclusion","aria-label":'Permalink to "Conclusion"'},"")],-1),W=e("p",null,"You have successfully wrapped your camera to be protected and learned the best practices with handling cameras!",-1),H=JSON.parse('{"title":"Protecting a Camera Ribbon Cable","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/protecting_cameras.md","filePath":"how_to_build/protecting_cameras.md","lastUpdated":1710883304000}'),N={name:"how_to_build/protecting_cameras.md"},O=Object.assign(N,{setup(R){return(D,I)=>(s(),i("div",null,[l,c,p,h,d,u,a(t,{options:n(o).camera_protect1},null,8,["options"]),_,a(t,{options:n(o).camera_protect2},null,8,["options"]),m,a(t,{options:n(o).camera_protect3},null,8,["options"]),a(t,{options:n(o).camera_protect4},null,8,["options"]),b,a(t,{options:n(o).camera_protect5},null,8,["options"]),g,a(t,{options:n(o).camera_protect6},null,8,["options"]),a(t,{options:n(o).camera_protect7},null,8,["options"]),f,a(t,{options:n(o).camera_protect8},null,8,["options"]),a(t,{options:n(o).camera_protect9},null,8,["options"]),a(t,{options:n(o).camera_protect10},null,8,["options"]),k,a(t,{options:n(o).camera_protect11},null,8,["options"]),a(t,{options:n(o).camera_protect13},null,8,["options"]),a(t,{options:n(o).camera_protect14},null,8,["options"]),a(t,{options:n(o).camera_protect15},null,8,["options"]),a(t,{options:n(o).camera_protect12},null,8,["options"]),w,a(t,{options:n(o).camera_protect16},null,8,["options"]),a(t,{options:n(o).camera_protect17},null,8,["options"]),y,a(t,{options:n(o).camera_protect18},null,8,["options"]),a(t,{options:n(o).camera_protect19},null,8,["options"]),C,a(t,{options:n(o).camera_protect20},null,8,["options"]),a(t,{options:n(o).camera_protect21},null,8,["options"]),v,a(t,{options:n(o).camera_protect22},null,8,["options"]),P,x,B,W]))}});export{H as __pageData,O as default};
import{_ as t,i as o}from"./chunks/index.15ec5911.js";import{o as s,c as i,H as a,l as n,k as e,a as r}from"./chunks/framework.3235ab14.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"protecting-a-camera-ribbon-cable",tabindex:"-1"},[r("Protecting a Camera Ribbon Cable "),e("a",{class:"header-anchor",href:"#protecting-a-camera-ribbon-cable","aria-label":'Permalink to "Protecting a Camera Ribbon Cable {.text-[var(--font-accent)]}"'},"")],-1),c=e("p",null,"The ribbon cables that these cameras use are notoriously prone to damage rendering them useless.",-1),p=e("p",null,"By wrapping them in tape such as electrical tape and following best practices covered in the guide, you can significantly reduce the risk of killing a camera.",-1),h=e("p",null,"It is recommended to do this before building your setup so you are less likely to kill a camera in the process of building a setup.",-1),d=e("h2",{id:"wrapping-the-camera-ribbon",tabindex:"-1"},[r("Wrapping the Camera Ribbon "),e("a",{class:"header-anchor",href:"#wrapping-the-camera-ribbon","aria-label":'Permalink to "Wrapping the Camera Ribbon"'},"")],-1),u=e("p",null,"First get a roll of electrical tape to wrap the camera ribbon. It does not strictly need to be electrical tape, but that is what I have found to work good, (and look good too).",-1),_=e("p",null,"Place the camera on the tape so that the entire bottom area including the sensor are covered and that one side of the camera ribbon has slightly more tape (helps make it look good).",-1),m=e("p",null,"Cut the tape from the roll, here I used flat cutters. Be careful to not cut the camera connector in the process.",-1),b=e("p",null,"With the tape cut from the roll, lay it down and get out a X-ACTO knife.",-1),g=e("p",null,"Begin to cut around the camera connector so the tape can be peeled off.",-1),f=e("p",null,"When each side has been cut, begin to peel off the part that covered the connections.",-1),k=e("p",null,'Now, carefully cut around the camera sensor part to remove its "skirt" leaving tape on the back of it.',-1),w=e("p",null,"Gently pull off this outline of tape from the camera.",-1),y=e("p",null,"Begin to wrap the tape along the ribbon cable by first folding in the slightly shorter side.",-1),C=e("p",null,"Fold over the other side.",-1),v=e("p",null,"And you are done!",-1),P=e("h2",{id:"best-practices-when-handling-cameras",tabindex:"-1"},[r("Best Practices When Handling Cameras "),e("a",{class:"header-anchor",href:"#best-practices-when-handling-cameras","aria-label":'Permalink to "Best Practices When Handling Cameras"'},"")],-1),x=e("ul",null,[e("li",null,"Do not pull or jerk on the ribbon"),e("li",null,"Do not fold tightly or bend the ribbon cable sharper than ~45 degrees if possible"),e("li",null,"Do not expose to sharp objects or crevices"),e("li",null,"The less wear while handling or putting on/off a headset the better")],-1),B=e("h2",{id:"conclusion",tabindex:"-1"},[r("Conclusion "),e("a",{class:"header-anchor",href:"#conclusion","aria-label":'Permalink to "Conclusion"'},"")],-1),W=e("p",null,"You have successfully wrapped your camera to be protected and learned the best practices with handling cameras!",-1),H=JSON.parse('{"title":"Protecting a Camera Ribbon Cable","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/protecting_cameras.md","filePath":"how_to_build/protecting_cameras.md","lastUpdated":1710883304000}'),N={name:"how_to_build/protecting_cameras.md"},O=Object.assign(N,{setup(R){return(D,I)=>(s(),i("div",null,[l,c,p,h,d,u,a(t,{options:n(o).camera_protect1},null,8,["options"]),_,a(t,{options:n(o).camera_protect2},null,8,["options"]),m,a(t,{options:n(o).camera_protect3},null,8,["options"]),a(t,{options:n(o).camera_protect4},null,8,["options"]),b,a(t,{options:n(o).camera_protect5},null,8,["options"]),g,a(t,{options:n(o).camera_protect6},null,8,["options"]),a(t,{options:n(o).camera_protect7},null,8,["options"]),f,a(t,{options:n(o).camera_protect8},null,8,["options"]),a(t,{options:n(o).camera_protect9},null,8,["options"]),a(t,{options:n(o).camera_protect10},null,8,["options"]),k,a(t,{options:n(o).camera_protect11},null,8,["options"]),a(t,{options:n(o).camera_protect13},null,8,["options"]),a(t,{options:n(o).camera_protect14},null,8,["options"]),a(t,{options:n(o).camera_protect15},null,8,["options"]),a(t,{options:n(o).camera_protect12},null,8,["options"]),w,a(t,{options:n(o).camera_protect16},null,8,["options"]),a(t,{options:n(o).camera_protect17},null,8,["options"]),y,a(t,{options:n(o).camera_protect18},null,8,["options"]),a(t,{options:n(o).camera_protect19},null,8,["options"]),C,a(t,{options:n(o).camera_protect20},null,8,["options"]),a(t,{options:n(o).camera_protect21},null,8,["options"]),v,a(t,{options:n(o).camera_protect22},null,8,["options"]),P,x,B,W]))}});export{H as __pageData,O as default};

View File

@ -1 +1 @@
import{_ as e,o as t,c as a}from"./chunks/framework.0394bef4.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"keywords","content":"EyeTrackVR ETVR VR Virtual Reality Eye Tracking VRChat Social VR Games VR Game VR Games VRChat Avatar VRChat Avatars VRChat Eye Tracking VRChat Eye Tracking Avatar VRChat Eye Tracking Avatars"}]],"hero":{"name":"EyeTrackVR Docs","text":"Open-source and affordable VR eye tracking.","image":{"src":"/logo_light.png","alt":"ETVR logo"},"tagline":"For Social VR Games via OSC and UDP protocol.","actions":[{"theme":"brand","text":"Get Started","link":"/getting_started/intro"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EyeTrackVR/EyeTrackVR"}]},"features":[{"icon":"⚡️","title":"Open Source","details":"fully open source and free to use."},{"icon":"🎉","title":"Community Driven","details":"built by you for you."},{"icon":"💰","title":"Affordable","details":"affordable and easy to use."},{"icon":"🎮","title":"Nearly All VR Headsets","details":"EyeTrackVR works with nearly all VR headsets."},{"icon":"🔨","title":"Completely DIY","details":"completely DIY and easy to build."},{"icon":"🌐","title":"Open Platform","details":"open platform and works with any Social VR game."},{"icon":"🔏","title":"Privacy Focused","details":"privacy focused and does not collect any data, hosted on your own PC."},{"icon":"📡","title":"Open Protocol","details":"EyeTrackVR uses the Open Sound Control (OSC) protocol."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1695743559000}'),o={name:"index.md"};function n(i,r,l,c,s,d){return t(),a("div")}const p=e(o,[["render",n]]);export{m as __pageData,p as default};
import{_ as e,o as t,c as a}from"./chunks/framework.3235ab14.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"keywords","content":"EyeTrackVR ETVR VR Virtual Reality Eye Tracking VRChat Social VR Games VR Game VR Games VRChat Avatar VRChat Avatars VRChat Eye Tracking VRChat Eye Tracking Avatar VRChat Eye Tracking Avatars"}]],"hero":{"name":"EyeTrackVR Docs","text":"Open-source and affordable VR eye tracking.","image":{"src":"/logo_light.png","alt":"ETVR logo"},"tagline":"For Social VR Games via OSC and UDP protocol.","actions":[{"theme":"brand","text":"Get Started","link":"/getting_started/intro"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EyeTrackVR/EyeTrackVR"}]},"features":[{"icon":"⚡️","title":"Open Source","details":"fully open source and free to use."},{"icon":"🎉","title":"Community Driven","details":"built by you for you."},{"icon":"💰","title":"Affordable","details":"affordable and easy to use."},{"icon":"🎮","title":"Nearly All VR Headsets","details":"EyeTrackVR works with nearly all VR headsets."},{"icon":"🔨","title":"Completely DIY","details":"completely DIY and easy to build."},{"icon":"🌐","title":"Open Platform","details":"open platform and works with any Social VR game."},{"icon":"🔏","title":"Privacy Focused","details":"privacy focused and does not collect any data, hosted on your own PC."},{"icon":"📡","title":"Open Protocol","details":"EyeTrackVR uses the Open Sound Control (OSC) protocol."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1695743559000}'),o={name:"index.md"};function n(i,r,l,c,s,d){return t(),a("div")}const p=e(o,[["render",n]]);export{m as __pageData,p as default};

View File

@ -1 +1 @@
import{_ as e,o as t,c as a}from"./chunks/framework.0394bef4.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"keywords","content":"EyeTrackVR ETVR VR Virtual Reality Eye Tracking VRChat Social VR Games VR Game VR Games VRChat Avatar VRChat Avatars VRChat Eye Tracking VRChat Eye Tracking Avatar VRChat Eye Tracking Avatars"}]],"hero":{"name":"EyeTrackVR Docs","text":"Open-source and affordable VR eye tracking.","image":{"src":"/logo_light.png","alt":"ETVR logo"},"tagline":"For Social VR Games via OSC and UDP protocol.","actions":[{"theme":"brand","text":"Get Started","link":"/getting_started/intro"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EyeTrackVR/EyeTrackVR"}]},"features":[{"icon":"⚡️","title":"Open Source","details":"fully open source and free to use."},{"icon":"🎉","title":"Community Driven","details":"built by you for you."},{"icon":"💰","title":"Affordable","details":"affordable and easy to use."},{"icon":"🎮","title":"Nearly All VR Headsets","details":"EyeTrackVR works with nearly all VR headsets."},{"icon":"🔨","title":"Completely DIY","details":"completely DIY and easy to build."},{"icon":"🌐","title":"Open Platform","details":"open platform and works with any Social VR game."},{"icon":"🔏","title":"Privacy Focused","details":"privacy focused and does not collect any data, hosted on your own PC."},{"icon":"📡","title":"Open Protocol","details":"EyeTrackVR uses the Open Sound Control (OSC) protocol."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1695743559000}'),o={name:"index.md"};function n(i,r,l,c,s,d){return t(),a("div")}const p=e(o,[["render",n]]);export{m as __pageData,p as default};
import{_ as e,o as t,c as a}from"./chunks/framework.3235ab14.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"keywords","content":"EyeTrackVR ETVR VR Virtual Reality Eye Tracking VRChat Social VR Games VR Game VR Games VRChat Avatar VRChat Avatars VRChat Eye Tracking VRChat Eye Tracking Avatar VRChat Eye Tracking Avatars"}]],"hero":{"name":"EyeTrackVR Docs","text":"Open-source and affordable VR eye tracking.","image":{"src":"/logo_light.png","alt":"ETVR logo"},"tagline":"For Social VR Games via OSC and UDP protocol.","actions":[{"theme":"brand","text":"Get Started","link":"/getting_started/intro"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/EyeTrackVR/EyeTrackVR"}]},"features":[{"icon":"⚡️","title":"Open Source","details":"fully open source and free to use."},{"icon":"🎉","title":"Community Driven","details":"built by you for you."},{"icon":"💰","title":"Affordable","details":"affordable and easy to use."},{"icon":"🎮","title":"Nearly All VR Headsets","details":"EyeTrackVR works with nearly all VR headsets."},{"icon":"🔨","title":"Completely DIY","details":"completely DIY and easy to build."},{"icon":"🌐","title":"Open Platform","details":"open platform and works with any Social VR game."},{"icon":"🔏","title":"Privacy Focused","details":"privacy focused and does not collect any data, hosted on your own PC."},{"icon":"📡","title":"Open Protocol","details":"EyeTrackVR uses the Open Sound Control (OSC) protocol."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1695743559000}'),o={name:"index.md"};function n(i,r,l,c,s,d){return t(),a("div")}const p=e(o,[["render",n]]);export{m as __pageData,p as default};

View File

@ -1 +1 @@
import{A as c}from"./chunks/Accordion.ff5ca4f2.js";import{o as s,c as a,F as d,D as h,b as u,w as o,k as e,t as n,e as p,l as f,H as _,a as m}from"./chunks/framework.0394bef4.js";const y={faq:[{question:"What is the goal of this project?",answer:"To provide an open source, affordable VR eye tracker for Social games like VRChat as well as provide an open eye tracking platform.",hyper_link:"",link_description:""},{question:"What headsets will be supported?",answer:"Any headset that the hardware can fit in with community mounts or a mount you design.",hyper_link:"",link_description:""},{question:"How will this work?",answer:"Currently, a camera is mounted inside the headset for each eye. The camera streams through wifi to a PC client which processes and sends eye tracking data to an OSC endpoint ex VRChat.",hyper_link:"",link_description:""},{question:"What features will be supported?",answer:"The goal is eye tracking with eye openness, and some form of pupil dilation. A far away aspiration of this project is some form of weak foveated rendering because it's cool and any small performance increase in VR is welcome.",hyper_link:"",link_description:""},{question:"When will this be completed?",answer:"When it's done 😉 I have a semi busy life so development may slow and speed up inconsistently.",hyper_link:"",link_description:""},{question:"Will IR damage my eyes?",answer:"This project has safety in mind. If you do all of the safety measures that we put into place and visually test the amount of IR light you will be fine. Please note we have not finished development of all safety stuff so be careful.",hyper_link:"https://dammedia.osram.info/media/bin/osram-dam-2496608/AN002_Details%20on%20photobiological%20safety%20of%20LED%20light%20sources.pdf",link_description:" here is a pdf with safety information"},{question:"How expensive will this be?",answer:"My goal is to keep it as cheap as possible with around $75 as the absolute max, with current setups being around $30-80. aaaa",hyper_link:"",link_description:""},{question:"How do I set up my avatar?",answer:"Check out the VR Chat face tracking wiki on our github. Keep in mind that we currently only support float parameters. ",hyper_link:"",link_description:""},{question:"What hardware does this use / How do I build?",answer:"Checkout our build guides on this site for specific information, hardware may change and evolve over time.",hyper_link:"",link_description:""},{question:"Where are the docs?",answer:"All of our documentation is located on this website, all future documentation will be found here as well.",hyper_link:"",link_description:""}]},k={class:"font-semibold text-xl"},w={class:""},q={style:{"list-style":"none"}},g={key:0},b=["href"],v={__name:"FAQ",setup(r){return(i,l)=>(s(),a("div",null,[(s(!0),a(d,null,h(f(y).faq,t=>(s(),u(c,{class:"mb-4"},{title:o(()=>[e("span",k,n(t.question),1)]),content:o(()=>[e("div",null,[e("span",w,[e("blockquote",null,[e("ul",q,[e("li",null,n(t.answer),1),t.hyper_link!=i.NULL&&t.hyper_link!=""?(s(),a("p",g,[e("a",{href:t.hyper_link,target:"_blank"},n(t.link_description),9,b)])):p("",!0)])])])])]),_:2},1024))),256))]))}},x=e("h1",{class:"text-[var(--font-accent)]",id:"frequently-asked-questions",tabindex:"-1"},[m("Frequently Asked Questions "),e("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-label":'Permalink to "Frequently Asked Questions {.text-[var(--font-accent)]}"'},"")],-1),A=e("br",null,null,-1),C=e("hr",null,null,-1),R=JSON.parse('{"title":"Frequently Asked Questions","description":"","frontmatter":{},"headers":[],"relativePath":"misc/faq.md","filePath":"misc/faq.md","lastUpdated":1676223729000}'),V={name:"misc/faq.md"},F=Object.assign(V,{setup(r){return(i,l)=>(s(),a("div",null,[x,A,C,_(v)]))}});export{R as __pageData,F as default};
import{A as c}from"./chunks/Accordion.1d6bfb6f.js";import{o as s,c as a,F as d,D as h,b as u,w as o,k as e,t as n,e as p,l as f,H as _,a as m}from"./chunks/framework.3235ab14.js";const y={faq:[{question:"What is the goal of this project?",answer:"To provide an open source, affordable VR eye tracker for Social games like VRChat as well as provide an open eye tracking platform.",hyper_link:"",link_description:""},{question:"What headsets will be supported?",answer:"Any headset that the hardware can fit in with community mounts or a mount you design.",hyper_link:"",link_description:""},{question:"How will this work?",answer:"Currently, a camera is mounted inside the headset for each eye. The camera streams through wifi to a PC client which processes and sends eye tracking data to an OSC endpoint ex VRChat.",hyper_link:"",link_description:""},{question:"What features will be supported?",answer:"The goal is eye tracking with eye openness, and some form of pupil dilation. A far away aspiration of this project is some form of weak foveated rendering because it's cool and any small performance increase in VR is welcome.",hyper_link:"",link_description:""},{question:"When will this be completed?",answer:"When it's done 😉 I have a semi busy life so development may slow and speed up inconsistently.",hyper_link:"",link_description:""},{question:"Will IR damage my eyes?",answer:"This project has safety in mind. If you do all of the safety measures that we put into place and visually test the amount of IR light you will be fine. Please note we have not finished development of all safety stuff so be careful.",hyper_link:"https://dammedia.osram.info/media/bin/osram-dam-2496608/AN002_Details%20on%20photobiological%20safety%20of%20LED%20light%20sources.pdf",link_description:" here is a pdf with safety information"},{question:"How expensive will this be?",answer:"My goal is to keep it as cheap as possible with around $75 as the absolute max, with current setups being around $30-80. aaaa",hyper_link:"",link_description:""},{question:"How do I set up my avatar?",answer:"Check out the VR Chat face tracking wiki on our github. Keep in mind that we currently only support float parameters. ",hyper_link:"",link_description:""},{question:"What hardware does this use / How do I build?",answer:"Checkout our build guides on this site for specific information, hardware may change and evolve over time.",hyper_link:"",link_description:""},{question:"Where are the docs?",answer:"All of our documentation is located on this website, all future documentation will be found here as well.",hyper_link:"",link_description:""}]},k={class:"font-semibold text-xl"},w={class:""},q={style:{"list-style":"none"}},g={key:0},b=["href"],v={__name:"FAQ",setup(r){return(i,l)=>(s(),a("div",null,[(s(!0),a(d,null,h(f(y).faq,t=>(s(),u(c,{class:"mb-4"},{title:o(()=>[e("span",k,n(t.question),1)]),content:o(()=>[e("div",null,[e("span",w,[e("blockquote",null,[e("ul",q,[e("li",null,n(t.answer),1),t.hyper_link!=i.NULL&&t.hyper_link!=""?(s(),a("p",g,[e("a",{href:t.hyper_link,target:"_blank"},n(t.link_description),9,b)])):p("",!0)])])])])]),_:2},1024))),256))]))}},x=e("h1",{class:"text-[var(--font-accent)]",id:"frequently-asked-questions",tabindex:"-1"},[m("Frequently Asked Questions "),e("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-label":'Permalink to "Frequently Asked Questions {.text-[var(--font-accent)]}"'},"")],-1),A=e("br",null,null,-1),C=e("hr",null,null,-1),R=JSON.parse('{"title":"Frequently Asked Questions","description":"","frontmatter":{},"headers":[],"relativePath":"misc/faq.md","filePath":"misc/faq.md","lastUpdated":1676223729000}'),V={name:"misc/faq.md"},F=Object.assign(V,{setup(r){return(i,l)=>(s(),a("div",null,[x,A,C,_(v)]))}});export{R as __pageData,F as default};

View File

@ -1 +1 @@
import{A as c}from"./chunks/Accordion.ff5ca4f2.js";import{o as s,c as a,F as d,D as h,b as u,w as o,k as e,t as n,e as p,l as f,H as _,a as m}from"./chunks/framework.0394bef4.js";const y={faq:[{question:"What is the goal of this project?",answer:"To provide an open source, affordable VR eye tracker for Social games like VRChat as well as provide an open eye tracking platform.",hyper_link:"",link_description:""},{question:"What headsets will be supported?",answer:"Any headset that the hardware can fit in with community mounts or a mount you design.",hyper_link:"",link_description:""},{question:"How will this work?",answer:"Currently, a camera is mounted inside the headset for each eye. The camera streams through wifi to a PC client which processes and sends eye tracking data to an OSC endpoint ex VRChat.",hyper_link:"",link_description:""},{question:"What features will be supported?",answer:"The goal is eye tracking with eye openness, and some form of pupil dilation. A far away aspiration of this project is some form of weak foveated rendering because it's cool and any small performance increase in VR is welcome.",hyper_link:"",link_description:""},{question:"When will this be completed?",answer:"When it's done 😉 I have a semi busy life so development may slow and speed up inconsistently.",hyper_link:"",link_description:""},{question:"Will IR damage my eyes?",answer:"This project has safety in mind. If you do all of the safety measures that we put into place and visually test the amount of IR light you will be fine. Please note we have not finished development of all safety stuff so be careful.",hyper_link:"https://dammedia.osram.info/media/bin/osram-dam-2496608/AN002_Details%20on%20photobiological%20safety%20of%20LED%20light%20sources.pdf",link_description:" here is a pdf with safety information"},{question:"How expensive will this be?",answer:"My goal is to keep it as cheap as possible with around $75 as the absolute max, with current setups being around $30-80. aaaa",hyper_link:"",link_description:""},{question:"How do I set up my avatar?",answer:"Check out the VR Chat face tracking wiki on our github. Keep in mind that we currently only support float parameters. ",hyper_link:"",link_description:""},{question:"What hardware does this use / How do I build?",answer:"Checkout our build guides on this site for specific information, hardware may change and evolve over time.",hyper_link:"",link_description:""},{question:"Where are the docs?",answer:"All of our documentation is located on this website, all future documentation will be found here as well.",hyper_link:"",link_description:""}]},k={class:"font-semibold text-xl"},w={class:""},q={style:{"list-style":"none"}},g={key:0},b=["href"],v={__name:"FAQ",setup(r){return(i,l)=>(s(),a("div",null,[(s(!0),a(d,null,h(f(y).faq,t=>(s(),u(c,{class:"mb-4"},{title:o(()=>[e("span",k,n(t.question),1)]),content:o(()=>[e("div",null,[e("span",w,[e("blockquote",null,[e("ul",q,[e("li",null,n(t.answer),1),t.hyper_link!=i.NULL&&t.hyper_link!=""?(s(),a("p",g,[e("a",{href:t.hyper_link,target:"_blank"},n(t.link_description),9,b)])):p("",!0)])])])])]),_:2},1024))),256))]))}},x=e("h1",{class:"text-[var(--font-accent)]",id:"frequently-asked-questions",tabindex:"-1"},[m("Frequently Asked Questions "),e("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-label":'Permalink to "Frequently Asked Questions {.text-[var(--font-accent)]}"'},"")],-1),A=e("br",null,null,-1),C=e("hr",null,null,-1),R=JSON.parse('{"title":"Frequently Asked Questions","description":"","frontmatter":{},"headers":[],"relativePath":"misc/faq.md","filePath":"misc/faq.md","lastUpdated":1676223729000}'),V={name:"misc/faq.md"},F=Object.assign(V,{setup(r){return(i,l)=>(s(),a("div",null,[x,A,C,_(v)]))}});export{R as __pageData,F as default};
import{A as c}from"./chunks/Accordion.1d6bfb6f.js";import{o as s,c as a,F as d,D as h,b as u,w as o,k as e,t as n,e as p,l as f,H as _,a as m}from"./chunks/framework.3235ab14.js";const y={faq:[{question:"What is the goal of this project?",answer:"To provide an open source, affordable VR eye tracker for Social games like VRChat as well as provide an open eye tracking platform.",hyper_link:"",link_description:""},{question:"What headsets will be supported?",answer:"Any headset that the hardware can fit in with community mounts or a mount you design.",hyper_link:"",link_description:""},{question:"How will this work?",answer:"Currently, a camera is mounted inside the headset for each eye. The camera streams through wifi to a PC client which processes and sends eye tracking data to an OSC endpoint ex VRChat.",hyper_link:"",link_description:""},{question:"What features will be supported?",answer:"The goal is eye tracking with eye openness, and some form of pupil dilation. A far away aspiration of this project is some form of weak foveated rendering because it's cool and any small performance increase in VR is welcome.",hyper_link:"",link_description:""},{question:"When will this be completed?",answer:"When it's done 😉 I have a semi busy life so development may slow and speed up inconsistently.",hyper_link:"",link_description:""},{question:"Will IR damage my eyes?",answer:"This project has safety in mind. If you do all of the safety measures that we put into place and visually test the amount of IR light you will be fine. Please note we have not finished development of all safety stuff so be careful.",hyper_link:"https://dammedia.osram.info/media/bin/osram-dam-2496608/AN002_Details%20on%20photobiological%20safety%20of%20LED%20light%20sources.pdf",link_description:" here is a pdf with safety information"},{question:"How expensive will this be?",answer:"My goal is to keep it as cheap as possible with around $75 as the absolute max, with current setups being around $30-80. aaaa",hyper_link:"",link_description:""},{question:"How do I set up my avatar?",answer:"Check out the VR Chat face tracking wiki on our github. Keep in mind that we currently only support float parameters. ",hyper_link:"",link_description:""},{question:"What hardware does this use / How do I build?",answer:"Checkout our build guides on this site for specific information, hardware may change and evolve over time.",hyper_link:"",link_description:""},{question:"Where are the docs?",answer:"All of our documentation is located on this website, all future documentation will be found here as well.",hyper_link:"",link_description:""}]},k={class:"font-semibold text-xl"},w={class:""},q={style:{"list-style":"none"}},g={key:0},b=["href"],v={__name:"FAQ",setup(r){return(i,l)=>(s(),a("div",null,[(s(!0),a(d,null,h(f(y).faq,t=>(s(),u(c,{class:"mb-4"},{title:o(()=>[e("span",k,n(t.question),1)]),content:o(()=>[e("div",null,[e("span",w,[e("blockquote",null,[e("ul",q,[e("li",null,n(t.answer),1),t.hyper_link!=i.NULL&&t.hyper_link!=""?(s(),a("p",g,[e("a",{href:t.hyper_link,target:"_blank"},n(t.link_description),9,b)])):p("",!0)])])])])]),_:2},1024))),256))]))}},x=e("h1",{class:"text-[var(--font-accent)]",id:"frequently-asked-questions",tabindex:"-1"},[m("Frequently Asked Questions "),e("a",{class:"header-anchor",href:"#frequently-asked-questions","aria-label":'Permalink to "Frequently Asked Questions {.text-[var(--font-accent)]}"'},"")],-1),A=e("br",null,null,-1),C=e("hr",null,null,-1),R=JSON.parse('{"title":"Frequently Asked Questions","description":"","frontmatter":{},"headers":[],"relativePath":"misc/faq.md","filePath":"misc/faq.md","lastUpdated":1676223729000}'),V={name:"misc/faq.md"},F=Object.assign(V,{setup(r){return(i,l)=>(s(),a("div",null,[x,A,C,_(v)]))}});export{R as __pageData,F as default};

View File

@ -1 +1 @@
import{_ as t,a}from"./chunks/index.14686ebb.js";import{o as r,c as o,k as e,H as s,w as c,l as n,a as i,Q as d}from"./chunks/framework.0394bef4.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"how-to-set-up-your-avatar-for-eye-tracking",tabindex:"-1"},[i("How to set up your avatar for eye tracking: "),e("a",{class:"header-anchor",href:"#how-to-set-up-your-avatar-for-eye-tracking","aria-label":'Permalink to "How to set up your avatar for eye tracking: {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"Here is an avatar setup video created by a contributor:",-1),u=e("div",{align:"center"},[e("iframe",{width:"500",height:"300",src:"https://www.youtube.com/embed/Dfm-tkaruq0",title:"Add eye tracking support to your VRChat avatar",frameborder:"1",allow:"encrypted-media;",allowfullscreen:""})],-1),_=d('<p>Another good resource is the <a href="https://github.com/benaclejames/VRCFaceTracking/wiki/Eye-Tracking-Setup" target="_blank" rel="noreferrer">VRC Face Tracking Wiki</a> and their <a href="https://discord.gg/Fh4FNehzKn" target="_blank" rel="noreferrer">Discord</a>.</p><h3 id="we-currently-use-the-following-paramaters" tabindex="-1">We currently use the following paramaters <a class="header-anchor" href="#we-currently-use-the-following-paramaters" aria-label="Permalink to &quot;We currently use the following paramaters&quot;"></a></h3><p><code>LeftEyeX</code></p><p><code>RightEyeX</code></p><p><code>EyesY</code></p><p><code>LeftEyeLidExpandedSqueeze</code></p><p><code>RightEyeLidExpandedSqueeze</code></p>',7),h={align:"center"},f=e("p",null," We currently only support float parameters, please adjust your setup accordingly. ",-1),b=JSON.parse('{"title":"How to set up your avatar for eye tracking:","description":"","frontmatter":{},"headers":[],"relativePath":"misc/vrc_avatar_setup.md","filePath":"misc/vrc_avatar_setup.md","lastUpdated":1677196572000}'),m={name:"misc/vrc_avatar_setup.md"},x=Object.assign(m,{setup(y){return(g,v)=>(r(),o("div",null,[l,p,u,_,e("div",h,[s(t,{options:n(a).vrc_avatar_setup},{content:c(()=>[f]),_:1},8,["options"])])]))}});export{b as __pageData,x as default};
import{_ as t,a}from"./chunks/index.24cac4a2.js";import{o as r,c as o,k as e,H as s,w as c,l as n,a as i,Q as d}from"./chunks/framework.3235ab14.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"how-to-set-up-your-avatar-for-eye-tracking",tabindex:"-1"},[i("How to set up your avatar for eye tracking: "),e("a",{class:"header-anchor",href:"#how-to-set-up-your-avatar-for-eye-tracking","aria-label":'Permalink to "How to set up your avatar for eye tracking: {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"Here is an avatar setup video created by a contributor:",-1),u=e("div",{align:"center"},[e("iframe",{width:"500",height:"300",src:"https://www.youtube.com/embed/Dfm-tkaruq0",title:"Add eye tracking support to your VRChat avatar",frameborder:"1",allow:"encrypted-media;",allowfullscreen:""})],-1),_=d('<p>Another good resource is the <a href="https://github.com/benaclejames/VRCFaceTracking/wiki/Eye-Tracking-Setup" target="_blank" rel="noreferrer">VRC Face Tracking Wiki</a> and their <a href="https://discord.gg/Fh4FNehzKn" target="_blank" rel="noreferrer">Discord</a>.</p><h3 id="we-currently-use-the-following-paramaters" tabindex="-1">We currently use the following paramaters <a class="header-anchor" href="#we-currently-use-the-following-paramaters" aria-label="Permalink to &quot;We currently use the following paramaters&quot;"></a></h3><p><code>LeftEyeX</code></p><p><code>RightEyeX</code></p><p><code>EyesY</code></p><p><code>LeftEyeLidExpandedSqueeze</code></p><p><code>RightEyeLidExpandedSqueeze</code></p>',7),h={align:"center"},f=e("p",null," We currently only support float parameters, please adjust your setup accordingly. ",-1),b=JSON.parse('{"title":"How to set up your avatar for eye tracking:","description":"","frontmatter":{},"headers":[],"relativePath":"misc/vrc_avatar_setup.md","filePath":"misc/vrc_avatar_setup.md","lastUpdated":1677196572000}'),m={name:"misc/vrc_avatar_setup.md"},x=Object.assign(m,{setup(y){return(g,v)=>(r(),o("div",null,[l,p,u,_,e("div",h,[s(t,{options:n(a).vrc_avatar_setup},{content:c(()=>[f]),_:1},8,["options"])])]))}});export{b as __pageData,x as default};

View File

@ -1 +1 @@
import{_ as t,a}from"./chunks/index.14686ebb.js";import{o as r,c as o,k as e,H as s,w as c,l as n,a as i,Q as d}from"./chunks/framework.0394bef4.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"how-to-set-up-your-avatar-for-eye-tracking",tabindex:"-1"},[i("How to set up your avatar for eye tracking: "),e("a",{class:"header-anchor",href:"#how-to-set-up-your-avatar-for-eye-tracking","aria-label":'Permalink to "How to set up your avatar for eye tracking: {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"Here is an avatar setup video created by a contributor:",-1),u=e("div",{align:"center"},[e("iframe",{width:"500",height:"300",src:"https://www.youtube.com/embed/Dfm-tkaruq0",title:"Add eye tracking support to your VRChat avatar",frameborder:"1",allow:"encrypted-media;",allowfullscreen:""})],-1),_=d("",7),h={align:"center"},f=e("p",null," We currently only support float parameters, please adjust your setup accordingly. ",-1),b=JSON.parse('{"title":"How to set up your avatar for eye tracking:","description":"","frontmatter":{},"headers":[],"relativePath":"misc/vrc_avatar_setup.md","filePath":"misc/vrc_avatar_setup.md","lastUpdated":1677196572000}'),m={name:"misc/vrc_avatar_setup.md"},x=Object.assign(m,{setup(y){return(g,v)=>(r(),o("div",null,[l,p,u,_,e("div",h,[s(t,{options:n(a).vrc_avatar_setup},{content:c(()=>[f]),_:1},8,["options"])])]))}});export{b as __pageData,x as default};
import{_ as t,a}from"./chunks/index.24cac4a2.js";import{o as r,c as o,k as e,H as s,w as c,l as n,a as i,Q as d}from"./chunks/framework.3235ab14.js";const l=e("h1",{class:"text-[var(--font-accent)]",id:"how-to-set-up-your-avatar-for-eye-tracking",tabindex:"-1"},[i("How to set up your avatar for eye tracking: "),e("a",{class:"header-anchor",href:"#how-to-set-up-your-avatar-for-eye-tracking","aria-label":'Permalink to "How to set up your avatar for eye tracking: {.text-[var(--font-accent)]}"'},"")],-1),p=e("p",null,"Here is an avatar setup video created by a contributor:",-1),u=e("div",{align:"center"},[e("iframe",{width:"500",height:"300",src:"https://www.youtube.com/embed/Dfm-tkaruq0",title:"Add eye tracking support to your VRChat avatar",frameborder:"1",allow:"encrypted-media;",allowfullscreen:""})],-1),_=d("",7),h={align:"center"},f=e("p",null," We currently only support float parameters, please adjust your setup accordingly. ",-1),b=JSON.parse('{"title":"How to set up your avatar for eye tracking:","description":"","frontmatter":{},"headers":[],"relativePath":"misc/vrc_avatar_setup.md","filePath":"misc/vrc_avatar_setup.md","lastUpdated":1677196572000}'),m={name:"misc/vrc_avatar_setup.md"},x=Object.assign(m,{setup(y){return(g,v)=>(r(),o("div",null,[l,p,u,_,e("div",h,[s(t,{options:n(a).vrc_avatar_setup},{content:c(()=>[f]),_:1},8,["options"])])]))}});export{b as __pageData,x as default};

View File

@ -1 +1 @@
import{_ as r,a as n}from"./chunks/index.14686ebb.js";import{_ as i}from"./chunks/CheckBoxList.5103ebfb.js";import{o as l,c as s,H as o,w as d,l as a,k as e,a as t,Q as h}from"./chunks/framework.0394bef4.js";const p={state:!0,object:[{label:"Python 3.11.0",link:"https://www.python.org/downloads/release/python-3110/"},{label:"Poetry",link:"https://python-poetry.org/"},{label:"Windows/Linux PC",link:""}]},u=e("h1",{class:"text-[var(--font-accent)]",id:"build-the-app-from-source",tabindex:"-1"},[t("Build the app from source "),e("a",{class:"header-anchor",href:"#build-the-app-from-source","aria-label":'Permalink to "Build the app from source {.text-[var(--font-accent)]}"'},"")],-1),c=e("h2",{id:"this-guide-will-show-how-to-build-the-app-from-source",tabindex:"-1"},[t("This guide will show how to build the app from source "),e("a",{class:"header-anchor",href:"#this-guide-will-show-how-to-build-the-app-from-source","aria-label":'Permalink to "This guide will show how to build the app from source"'},"")],-1),m=e("p",null," This is NOT a required step, you do not need to build the app from source. ",-1),_=e("h2",{id:"requirements",tabindex:"-1"},[t("Requirements "),e("a",{class:"header-anchor",href:"#requirements","aria-label":'Permalink to "Requirements"'},"")],-1),f=h('<h2 id="install-python" tabindex="-1">Install Python <a class="header-anchor" href="#install-python" aria-label="Permalink to &quot;Install Python&quot;"></a></h2><p>EyeTrackVR is currently using <a href="https://www.python.org/downloads/release/python-3110/" target="_blank" rel="noreferrer">Python 3.11.0</a> Before you continue, please install it.</p><h2 id="installing-poetry" tabindex="-1">Installing Poetry <a class="header-anchor" href="#installing-poetry" aria-label="Permalink to &quot;Installing Poetry&quot;"></a></h2><p>Starting with version <code>0.1.7</code>, EyeTrackVR uses Poetry to manage app dependencies. To build the app, you must first install Poetry to fetch the required dependencies.</p><p>To install Poetry open Windows Powershell and run the following command <code>(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -</code></p><p><a href="https://python-poetry.org/docs/" target="_blank" rel="noreferrer">Poetry Documentation</a></p><h2 id="install-the-required-python-modules" tabindex="-1">Install the required Python modules <a class="header-anchor" href="#install-the-required-python-modules" aria-label="Permalink to &quot;Install the required Python modules&quot;"></a></h2><p>After cloning the project and installing Poetry, open a command prompt in the EyeTrackApp folder. Then run the command: <code>poetry install</code></p><p>This should install all of the required modules.</p><h2 id="build-the-app" tabindex="-1">Build the app <a class="header-anchor" href="#build-the-app" aria-label="Permalink to &quot;Build the app&quot;"></a></h2><p>Now, you should be ready to build the app. With a command prompt open in the EyeTrackApp folder, run the command <code>poetry run pyinstaller eyetrackapp.spec</code></p><p>Give it time to build the app. Once done, the app should be under <code>dist/eyetrackapp</code></p>',12),T=JSON.parse('{"title":"Build the app from source","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/build_software.md","filePath":"software_guide/build_software.md","lastUpdated":1700510338000}'),y={name:"software_guide/build_software.md"},x=Object.assign(y,{setup(b){return(w,P)=>(l(),s("div",null,[u,c,o(r,{options:a(n).build_software_one},{content:d(()=>[m]),_:1},8,["options"]),_,o(i,{options:{...a(p)}},null,8,["options"]),f]))}});export{T as __pageData,x as default};
import{_ as r,a as n}from"./chunks/index.24cac4a2.js";import{_ as i}from"./chunks/CheckBoxList.8c0d14eb.js";import{o as l,c as s,H as o,w as d,l as a,k as e,a as t,Q as h}from"./chunks/framework.3235ab14.js";const p={state:!0,object:[{label:"Python 3.11.0",link:"https://www.python.org/downloads/release/python-3110/"},{label:"Poetry",link:"https://python-poetry.org/"},{label:"Windows/Linux PC",link:""}]},u=e("h1",{class:"text-[var(--font-accent)]",id:"build-the-app-from-source",tabindex:"-1"},[t("Build the app from source "),e("a",{class:"header-anchor",href:"#build-the-app-from-source","aria-label":'Permalink to "Build the app from source {.text-[var(--font-accent)]}"'},"")],-1),c=e("h2",{id:"this-guide-will-show-how-to-build-the-app-from-source",tabindex:"-1"},[t("This guide will show how to build the app from source "),e("a",{class:"header-anchor",href:"#this-guide-will-show-how-to-build-the-app-from-source","aria-label":'Permalink to "This guide will show how to build the app from source"'},"")],-1),m=e("p",null," This is NOT a required step, you do not need to build the app from source. ",-1),_=e("h2",{id:"requirements",tabindex:"-1"},[t("Requirements "),e("a",{class:"header-anchor",href:"#requirements","aria-label":'Permalink to "Requirements"'},"")],-1),f=h('<h2 id="install-python" tabindex="-1">Install Python <a class="header-anchor" href="#install-python" aria-label="Permalink to &quot;Install Python&quot;"></a></h2><p>EyeTrackVR is currently using <a href="https://www.python.org/downloads/release/python-3110/" target="_blank" rel="noreferrer">Python 3.11.0</a> Before you continue, please install it.</p><h2 id="installing-poetry" tabindex="-1">Installing Poetry <a class="header-anchor" href="#installing-poetry" aria-label="Permalink to &quot;Installing Poetry&quot;"></a></h2><p>Starting with version <code>0.1.7</code>, EyeTrackVR uses Poetry to manage app dependencies. To build the app, you must first install Poetry to fetch the required dependencies.</p><p>To install Poetry open Windows Powershell and run the following command <code>(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -</code></p><p><a href="https://python-poetry.org/docs/" target="_blank" rel="noreferrer">Poetry Documentation</a></p><h2 id="install-the-required-python-modules" tabindex="-1">Install the required Python modules <a class="header-anchor" href="#install-the-required-python-modules" aria-label="Permalink to &quot;Install the required Python modules&quot;"></a></h2><p>After cloning the project and installing Poetry, open a command prompt in the EyeTrackApp folder. Then run the command: <code>poetry install</code></p><p>This should install all of the required modules.</p><h2 id="build-the-app" tabindex="-1">Build the app <a class="header-anchor" href="#build-the-app" aria-label="Permalink to &quot;Build the app&quot;"></a></h2><p>Now, you should be ready to build the app. With a command prompt open in the EyeTrackApp folder, run the command <code>poetry run pyinstaller eyetrackapp.spec</code></p><p>Give it time to build the app. Once done, the app should be under <code>dist/eyetrackapp</code></p>',12),T=JSON.parse('{"title":"Build the app from source","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/build_software.md","filePath":"software_guide/build_software.md","lastUpdated":1700510338000}'),y={name:"software_guide/build_software.md"},x=Object.assign(y,{setup(b){return(w,P)=>(l(),s("div",null,[u,c,o(r,{options:a(n).build_software_one},{content:d(()=>[m]),_:1},8,["options"]),_,o(i,{options:{...a(p)}},null,8,["options"]),f]))}});export{T as __pageData,x as default};

View File

@ -1 +1 @@
import{_ as r,a as n}from"./chunks/index.14686ebb.js";import{_ as i}from"./chunks/CheckBoxList.5103ebfb.js";import{o as l,c as s,H as o,w as d,l as a,k as e,a as t,Q as h}from"./chunks/framework.0394bef4.js";const p={state:!0,object:[{label:"Python 3.11.0",link:"https://www.python.org/downloads/release/python-3110/"},{label:"Poetry",link:"https://python-poetry.org/"},{label:"Windows/Linux PC",link:""}]},u=e("h1",{class:"text-[var(--font-accent)]",id:"build-the-app-from-source",tabindex:"-1"},[t("Build the app from source "),e("a",{class:"header-anchor",href:"#build-the-app-from-source","aria-label":'Permalink to "Build the app from source {.text-[var(--font-accent)]}"'},"")],-1),c=e("h2",{id:"this-guide-will-show-how-to-build-the-app-from-source",tabindex:"-1"},[t("This guide will show how to build the app from source "),e("a",{class:"header-anchor",href:"#this-guide-will-show-how-to-build-the-app-from-source","aria-label":'Permalink to "This guide will show how to build the app from source"'},"")],-1),m=e("p",null," This is NOT a required step, you do not need to build the app from source. ",-1),_=e("h2",{id:"requirements",tabindex:"-1"},[t("Requirements "),e("a",{class:"header-anchor",href:"#requirements","aria-label":'Permalink to "Requirements"'},"")],-1),f=h("",12),T=JSON.parse('{"title":"Build the app from source","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/build_software.md","filePath":"software_guide/build_software.md","lastUpdated":1700510338000}'),y={name:"software_guide/build_software.md"},x=Object.assign(y,{setup(b){return(w,P)=>(l(),s("div",null,[u,c,o(r,{options:a(n).build_software_one},{content:d(()=>[m]),_:1},8,["options"]),_,o(i,{options:{...a(p)}},null,8,["options"]),f]))}});export{T as __pageData,x as default};
import{_ as r,a as n}from"./chunks/index.24cac4a2.js";import{_ as i}from"./chunks/CheckBoxList.8c0d14eb.js";import{o as l,c as s,H as o,w as d,l as a,k as e,a as t,Q as h}from"./chunks/framework.3235ab14.js";const p={state:!0,object:[{label:"Python 3.11.0",link:"https://www.python.org/downloads/release/python-3110/"},{label:"Poetry",link:"https://python-poetry.org/"},{label:"Windows/Linux PC",link:""}]},u=e("h1",{class:"text-[var(--font-accent)]",id:"build-the-app-from-source",tabindex:"-1"},[t("Build the app from source "),e("a",{class:"header-anchor",href:"#build-the-app-from-source","aria-label":'Permalink to "Build the app from source {.text-[var(--font-accent)]}"'},"")],-1),c=e("h2",{id:"this-guide-will-show-how-to-build-the-app-from-source",tabindex:"-1"},[t("This guide will show how to build the app from source "),e("a",{class:"header-anchor",href:"#this-guide-will-show-how-to-build-the-app-from-source","aria-label":'Permalink to "This guide will show how to build the app from source"'},"")],-1),m=e("p",null," This is NOT a required step, you do not need to build the app from source. ",-1),_=e("h2",{id:"requirements",tabindex:"-1"},[t("Requirements "),e("a",{class:"header-anchor",href:"#requirements","aria-label":'Permalink to "Requirements"'},"")],-1),f=h("",12),T=JSON.parse('{"title":"Build the app from source","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/build_software.md","filePath":"software_guide/build_software.md","lastUpdated":1700510338000}'),y={name:"software_guide/build_software.md"},x=Object.assign(y,{setup(b){return(w,P)=>(l(),s("div",null,[u,c,o(r,{options:a(n).build_software_one},{content:d(()=>[m]),_:1},8,["options"]),_,o(i,{options:{...a(p)}},null,8,["options"]),f]))}});export{T as __pageData,x as default};

View File

@ -1 +1 @@
import{_ as s,a as l}from"./chunks/index.14686ebb.js";import{_ as o,i as r}from"./chunks/index.37fa0c7a.js";import{o as d,c as h,H as t,l as a,w as c,Q as n,k as e,a as i}from"./chunks/framework.0394bef4.js";const p=n("",7),u=n("",36),y=e("p",null,[i("Now press the "),e("code",null,"Cropping Mode"),i(" button. You should see a feed of your camera.")],-1),_=e("p",null,"Put your headset on and use an application to see your desktop. (Virtual desktop, SteamVR desktop, etc.)",-1),g=e("p",null,"You should see something like this:",-1),f=e("p",null,"Now, draw a rectangle that selects your eye.",-1),m=e("p",null,"A good example of an ROI",-1),b=e("p",null,[i("Head back over to the "),e("code",null,"Tracking mode"),i(".")],-1),k=e("p",null,[i("We will now adjust our rotation by moving the "),e("code",null,"Rotation"),i(" slider.")],-1),w=e("p",null,"From this:",-1),T=e("p",null,"To this:",-1),v=e("p",null,"Now we will adjust our threshold.",-1),P=e("p",null,"Continuing with your headset on, move the slider all the way up. start slowly backing it off until mainly only your pupil is being visualized in the threshold viewer.",-1),q=e("p",null,"Example of a threshold being too low:",-1),x=e("p",null,"Example of too high of a threshold:",-1),R=e("p",null,"Example of a good threshold:",-1),S=n("",8),C=e("p",null," To best center both eyes, look at one spot and hit the 'Recenter Eye' button for each eye without moving your eyes. ",-1),E=e("h2",{id:"see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001",tabindex:"-1"},[i("See anything outdated on this guide? Let me know! "),e("code",null,"Prohurtz#0001"),i(),e("a",{class:"header-anchor",href:"#see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001","aria-label":'Permalink to "See anything outdated on this guide? Let me know! `Prohurtz#0001`"'},"")],-1),j=JSON.parse('{"title":"How to install, run and adjust the EyeTrackVR app.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/eyetrackvr_app_guide.md","filePath":"software_guide/eyetrackvr_app_guide.md","lastUpdated":1700510338000}'),V={name:"software_guide/eyetrackvr_app_guide.md"},B=Object.assign(V,{setup(I){return(A,N)=>(d(),h("div",null,[p,t(o,{options:a(r).eyetrack_vr_guide_three},null,8,["options"]),u,t(o,{options:a(r).eyetrack_vr_guide_four},null,8,["options"]),y,_,g,t(o,{options:a(r).eyetrack_vr_guide_five},null,8,["options"]),f,m,t(o,{options:a(r).eyetrack_vr_guide_six},null,8,["options"]),b,k,w,t(o,{options:a(r).eyetrack_vr_guide_seven},null,8,["options"]),T,t(o,{options:a(r).eyetrack_vr_guide_eight},null,8,["options"]),v,P,q,t(o,{options:a(r).eyetrack_vr_guide_nine},null,8,["options"]),x,t(o,{options:a(r).eyetrack_vr_guide_ten},null,8,["options"]),R,t(o,{options:a(r).eyetrack_vr_guide_eleven},null,8,["options"]),S,t(s,{options:a(l).eyetrack_vr_guide_two},{content:c(()=>[C]),_:1},8,["options"]),E]))}});export{j as __pageData,B as default};
import{_ as s,a as l}from"./chunks/index.24cac4a2.js";import{_ as o,i as r}from"./chunks/index.15ec5911.js";import{o as d,c as h,H as t,l as a,w as c,Q as n,k as e,a as i}from"./chunks/framework.3235ab14.js";const p=n("",7),u=n("",36),y=e("p",null,[i("Now press the "),e("code",null,"Cropping Mode"),i(" button. You should see a feed of your camera.")],-1),_=e("p",null,"Put your headset on and use an application to see your desktop. (Virtual desktop, SteamVR desktop, etc.)",-1),g=e("p",null,"You should see something like this:",-1),f=e("p",null,"Now, draw a rectangle that selects your eye.",-1),m=e("p",null,"A good example of an ROI",-1),b=e("p",null,[i("Head back over to the "),e("code",null,"Tracking mode"),i(".")],-1),k=e("p",null,[i("We will now adjust our rotation by moving the "),e("code",null,"Rotation"),i(" slider.")],-1),w=e("p",null,"From this:",-1),T=e("p",null,"To this:",-1),v=e("p",null,"Now we will adjust our threshold.",-1),P=e("p",null,"Continuing with your headset on, move the slider all the way up. start slowly backing it off until mainly only your pupil is being visualized in the threshold viewer.",-1),q=e("p",null,"Example of a threshold being too low:",-1),x=e("p",null,"Example of too high of a threshold:",-1),R=e("p",null,"Example of a good threshold:",-1),S=n("",8),C=e("p",null," To best center both eyes, look at one spot and hit the 'Recenter Eye' button for each eye without moving your eyes. ",-1),E=e("h2",{id:"see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001",tabindex:"-1"},[i("See anything outdated on this guide? Let me know! "),e("code",null,"Prohurtz#0001"),i(),e("a",{class:"header-anchor",href:"#see-anything-outdated-on-this-guide-let-me-know-prohurtz-0001","aria-label":'Permalink to "See anything outdated on this guide? Let me know! `Prohurtz#0001`"'},"")],-1),j=JSON.parse('{"title":"How to install, run and adjust the EyeTrackVR app.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/eyetrackvr_app_guide.md","filePath":"software_guide/eyetrackvr_app_guide.md","lastUpdated":1700510338000}'),V={name:"software_guide/eyetrackvr_app_guide.md"},B=Object.assign(V,{setup(I){return(A,N)=>(d(),h("div",null,[p,t(o,{options:a(r).eyetrack_vr_guide_three},null,8,["options"]),u,t(o,{options:a(r).eyetrack_vr_guide_four},null,8,["options"]),y,_,g,t(o,{options:a(r).eyetrack_vr_guide_five},null,8,["options"]),f,m,t(o,{options:a(r).eyetrack_vr_guide_six},null,8,["options"]),b,k,w,t(o,{options:a(r).eyetrack_vr_guide_seven},null,8,["options"]),T,t(o,{options:a(r).eyetrack_vr_guide_eight},null,8,["options"]),v,P,q,t(o,{options:a(r).eyetrack_vr_guide_nine},null,8,["options"]),x,t(o,{options:a(r).eyetrack_vr_guide_ten},null,8,["options"]),R,t(o,{options:a(r).eyetrack_vr_guide_eleven},null,8,["options"]),S,t(s,{options:a(l).eyetrack_vr_guide_two},{content:c(()=>[C]),_:1},8,["options"]),E]))}});export{j as __pageData,B as default};

View File

@ -1 +1 @@
import{_ as r,a as l}from"./chunks/index.14686ebb.js";import{_ as a,i as n}from"./chunks/index.37fa0c7a.js";import{o as d,c,H as t,w as h,l as o,k as e,a as i,Q as s}from"./chunks/framework.0394bef4.js";const p=e("h1",{id:"setting-up-recalibration-and-recentering-from-vrchat",tabindex:"-1"},[i("Setting up recalibration and recentering from VRChat. "),e("a",{class:"header-anchor",href:"#setting-up-recalibration-and-recentering-from-vrchat","aria-label":'Permalink to "Setting up recalibration and recentering from VRChat."'},"")],-1),u=e("p",null,"ETVR has a mechanism that allows you to recalibrate and recenter your tracking without the need to interact with the app directly, here's how to set up your avatar to make use of OSC to trigger this from within VRC itself.",-1),_=e("p",null," Note, while this page explains how to do it from the point of view of vrchat, it can be done in Neos and CVR too, all the app listens to are two OSC messages. ",-1),m=s("",6),f=e("p",null,[i("Clicking on it will highlight the associated asset in the asset browser. Click on the highlighted file to get its content to show in the inspector panel. Now, in the inspector, click on the "),e("code",null,"Add"),i(" button to add the parameters mentioned above. Both of them need to be of type Bool, but they don't need to be synced nor saved.")],-1),g=e("p",null,"That's it for the parameters.",-1),b=e("h3",{id:"adding-buttons-to-the-menu",tabindex:"-1"},[i("Adding buttons to the menu "),e("a",{class:"header-anchor",href:"#adding-buttons-to-the-menu","aria-label":'Permalink to "Adding buttons to the menu"'},"")],-1),y=e("p",null,"Now, you will need to add actual buttons for them in your gesture menu.",-1),v=e("p",null,"The expressions section mentioned above also contains the menu, you can use that to either add the buttons there directly or create a small submenu to make it less cluttered, here we will add them directly.",-1),w=e("p",null,'Once you have the menu file opened in the inspector, click on the "add control" button. This will add an empty action slot, expand it.',-1),k=e("p",null,`You'll see a bunch of fields, like name, icon, type and parameter. Firstly, let's give it a friendly name like "recalibrate eyes" or "recenter tracking" depending on the action you want to assign to them.`,-1),C=e("p",null,"Leave the type as is - as a button, it's more convenient as it bounces back into the off state by itself.",-1),T=e("p",null,[i("Now, in the parameter section, click on the "),e("code",null,"[None]"),i(" and select one of the parameters you have created in the previous section.")],-1),x=s("",14),O=JSON.parse('{"title":"Setting up recalibration and recentering from VRChat.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/osc_setup.md","filePath":"software_guide/osc_setup.md","lastUpdated":1700510338000}'),S={name:"software_guide/osc_setup.md"},B=Object.assign(S,{setup(V){return(R,A)=>(d(),c("div",null,[p,u,t(r,{options:o(l).parts_list_two},{content:h(()=>[_]),_:1},8,["options"]),m,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),f,t(a,{options:o(n).unity_vrc_expressions_add_fields},null,8,["options"]),t(a,{options:o(n).unity_vrc_expressions_fields},null,8,["options"]),g,b,y,v,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),w,t(a,{options:o(n).unity_vrc_empty_control},null,8,["options"]),k,C,T,t(a,{options:o(n).unity_vrc_control_setup},null,8,["options"]),x]))}});export{O as __pageData,B as default};
import{_ as r,a as l}from"./chunks/index.24cac4a2.js";import{_ as a,i as n}from"./chunks/index.15ec5911.js";import{o as d,c,H as t,w as h,l as o,k as e,a as i,Q as s}from"./chunks/framework.3235ab14.js";const p=e("h1",{id:"setting-up-recalibration-and-recentering-from-vrchat",tabindex:"-1"},[i("Setting up recalibration and recentering from VRChat. "),e("a",{class:"header-anchor",href:"#setting-up-recalibration-and-recentering-from-vrchat","aria-label":'Permalink to "Setting up recalibration and recentering from VRChat."'},"")],-1),u=e("p",null,"ETVR has a mechanism that allows you to recalibrate and recenter your tracking without the need to interact with the app directly, here's how to set up your avatar to make use of OSC to trigger this from within VRC itself.",-1),_=e("p",null," Note, while this page explains how to do it from the point of view of vrchat, it can be done in Neos and CVR too, all the app listens to are two OSC messages. ",-1),m=s("",6),f=e("p",null,[i("Clicking on it will highlight the associated asset in the asset browser. Click on the highlighted file to get its content to show in the inspector panel. Now, in the inspector, click on the "),e("code",null,"Add"),i(" button to add the parameters mentioned above. Both of them need to be of type Bool, but they don't need to be synced nor saved.")],-1),g=e("p",null,"That's it for the parameters.",-1),b=e("h3",{id:"adding-buttons-to-the-menu",tabindex:"-1"},[i("Adding buttons to the menu "),e("a",{class:"header-anchor",href:"#adding-buttons-to-the-menu","aria-label":'Permalink to "Adding buttons to the menu"'},"")],-1),y=e("p",null,"Now, you will need to add actual buttons for them in your gesture menu.",-1),v=e("p",null,"The expressions section mentioned above also contains the menu, you can use that to either add the buttons there directly or create a small submenu to make it less cluttered, here we will add them directly.",-1),w=e("p",null,'Once you have the menu file opened in the inspector, click on the "add control" button. This will add an empty action slot, expand it.',-1),k=e("p",null,`You'll see a bunch of fields, like name, icon, type and parameter. Firstly, let's give it a friendly name like "recalibrate eyes" or "recenter tracking" depending on the action you want to assign to them.`,-1),C=e("p",null,"Leave the type as is - as a button, it's more convenient as it bounces back into the off state by itself.",-1),T=e("p",null,[i("Now, in the parameter section, click on the "),e("code",null,"[None]"),i(" and select one of the parameters you have created in the previous section.")],-1),x=s("",14),O=JSON.parse('{"title":"Setting up recalibration and recentering from VRChat.","description":"","frontmatter":{},"headers":[],"relativePath":"software_guide/osc_setup.md","filePath":"software_guide/osc_setup.md","lastUpdated":1700510338000}'),S={name:"software_guide/osc_setup.md"},B=Object.assign(S,{setup(V){return(R,A)=>(d(),c("div",null,[p,u,t(r,{options:o(l).parts_list_two},{content:h(()=>[_]),_:1},8,["options"]),m,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),f,t(a,{options:o(n).unity_vrc_expressions_add_fields},null,8,["options"]),t(a,{options:o(n).unity_vrc_expressions_fields},null,8,["options"]),g,b,y,v,t(a,{options:o(n).unity_vrc_expressions},null,8,["options"]),w,t(a,{options:o(n).unity_vrc_empty_control},null,8,["options"]),k,C,T,t(a,{options:o(n).unity_vrc_control_setup},null,8,["options"]),x]))}});export{O as __pageData,B as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More