mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-09-26 23:09:15 +08:00
docs: fix link
This commit is contained in:
parent
8e4042d333
commit
2e4a29d784
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
import{V as i,a as r,b as s,c as u}from"./chunks/theme.93d59802.js";import{o as m,c as p,E as n,w as o,l,k as t,a}from"./chunks/framework.47aa8d5b.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"}]}],b=[{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"}]}],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),d={name:"about.md"},w=Object.assign(d,{setup(c){return(g,e)=>(m(),p("div",null,[n(l(u),null,{default:o(()=>[n(l(i),null,{title:o(()=>e[0]||(e[0]=[t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1)])),lead:o(()=>e[1]||(e[1]=[a(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),t("br",null,null,-1),t("br",null,null,-1),a(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")])),_:1}),n(l(r),{size:"medium",members:l(h)},null,8,["members"]),n(l(s),null,{title:o(()=>e[2]||(e[2]=[a("Contributors")])),lead:o(()=>e[3]||(e[3]=[a("Those who have actively contributed to development."),t("br",null,null,-1),a(" Community Support")])),members:o(()=>[n(l(r),{size:"small",members:l(b)},null,8,["members"])]),_:1}),n(l(s),null,{title:o(()=>e[4]||(e[4]=[a("Philosophy")])),lead:o(()=>e[5]||(e[5]=[a(" The "),t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),a(" 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."),t("br",null,null,-1),t("br",null,null,-1),a(" Here, we hope you may find something useful to you."),t("br",null,null,-1),t("br",null,null,-1),a(" We advocate the "),t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),a("."),t("br",null,null,-1),t("br",null,null,-1),a(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")])),_:1})]),_:1})]))}});export{f as __pageData,w as default};
|
||||
import{V as i,a as r,b as s,c as u}from"./chunks/theme.60186560.js";import{o as m,c as p,E as n,w as o,l,k as t,a}from"./chunks/framework.47aa8d5b.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"}]}],b=[{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"}]}],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),d={name:"about.md"},w=Object.assign(d,{setup(c){return(g,e)=>(m(),p("div",null,[n(l(u),null,{default:o(()=>[n(l(i),null,{title:o(()=>e[0]||(e[0]=[t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1)])),lead:o(()=>e[1]||(e[1]=[a(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),t("br",null,null,-1),t("br",null,null,-1),a(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")])),_:1}),n(l(r),{size:"medium",members:l(h)},null,8,["members"]),n(l(s),null,{title:o(()=>e[2]||(e[2]=[a("Contributors")])),lead:o(()=>e[3]||(e[3]=[a("Those who have actively contributed to development."),t("br",null,null,-1),a(" Community Support")])),members:o(()=>[n(l(r),{size:"small",members:l(b)},null,8,["members"])]),_:1}),n(l(s),null,{title:o(()=>e[4]||(e[4]=[a("Philosophy")])),lead:o(()=>e[5]||(e[5]=[a(" The "),t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),a(" 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."),t("br",null,null,-1),t("br",null,null,-1),a(" Here, we hope you may find something useful to you."),t("br",null,null,-1),t("br",null,null,-1),a(" We advocate the "),t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),a("."),t("br",null,null,-1),t("br",null,null,-1),a(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")])),_:1})]),_:1})]))}});export{f as __pageData,w as default};
|
@ -1 +1 @@
|
||||
import{V as i,a as r,b as s,c as u}from"./chunks/theme.93d59802.js";import{o as m,c as p,E as n,w as o,l,k as t,a}from"./chunks/framework.47aa8d5b.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"}]}],b=[{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"}]}],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),d={name:"about.md"},w=Object.assign(d,{setup(c){return(g,e)=>(m(),p("div",null,[n(l(u),null,{default:o(()=>[n(l(i),null,{title:o(()=>e[0]||(e[0]=[t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1)])),lead:o(()=>e[1]||(e[1]=[a(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),t("br",null,null,-1),t("br",null,null,-1),a(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")])),_:1}),n(l(r),{size:"medium",members:l(h)},null,8,["members"]),n(l(s),null,{title:o(()=>e[2]||(e[2]=[a("Contributors")])),lead:o(()=>e[3]||(e[3]=[a("Those who have actively contributed to development."),t("br",null,null,-1),a(" Community Support")])),members:o(()=>[n(l(r),{size:"small",members:l(b)},null,8,["members"])]),_:1}),n(l(s),null,{title:o(()=>e[4]||(e[4]=[a("Philosophy")])),lead:o(()=>e[5]||(e[5]=[a(" The "),t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),a(" 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."),t("br",null,null,-1),t("br",null,null,-1),a(" Here, we hope you may find something useful to you."),t("br",null,null,-1),t("br",null,null,-1),a(" We advocate the "),t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),a("."),t("br",null,null,-1),t("br",null,null,-1),a(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")])),_:1})]),_:1})]))}});export{f as __pageData,w as default};
|
||||
import{V as i,a as r,b as s,c as u}from"./chunks/theme.60186560.js";import{o as m,c as p,E as n,w as o,l,k as t,a}from"./chunks/framework.47aa8d5b.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"}]}],b=[{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"}]}],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"about.md","filePath":"about.md","lastUpdated":1700510338000}'),d={name:"about.md"},w=Object.assign(d,{setup(c){return(g,e)=>(m(),p("div",null,[n(l(u),null,{default:o(()=>[n(l(i),null,{title:o(()=>e[0]||(e[0]=[t("div",{class:"text-[#ab5ac7]"}," Our Team ",-1)])),lead:o(()=>e[1]||(e[1]=[a(" The development of EyeTrackVR is guided by an international team, some of whom have chosen to be featured below."),t("br",null,null,-1),t("br",null,null,-1),a(" EyeTrackVR developers are a group of people who are passionate about the field of augmented and virtual reality. ")])),_:1}),n(l(r),{size:"medium",members:l(h)},null,8,["members"]),n(l(s),null,{title:o(()=>e[2]||(e[2]=[a("Contributors")])),lead:o(()=>e[3]||(e[3]=[a("Those who have actively contributed to development."),t("br",null,null,-1),a(" Community Support")])),members:o(()=>[n(l(r),{size:"small",members:l(b)},null,8,["members"])]),_:1}),n(l(s),null,{title:o(()=>e[4]||(e[4]=[a("Philosophy")])),lead:o(()=>e[5]||(e[5]=[a(" The "),t("a",{class:"custom-links",href:"/intro",target:"_blank"},"guides",-1),a(" 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."),t("br",null,null,-1),t("br",null,null,-1),a(" Here, we hope you may find something useful to you."),t("br",null,null,-1),t("br",null,null,-1),a(" We advocate the "),t("a",{class:"custom-links",href:"https://en.wikipedia.org/wiki/Open-source_model",target:"_blank"},"Open Source model",-1),a("."),t("br",null,null,-1),t("br",null,null,-1),a(" This is why we strive to make our work open to other people for consultation, replication and reuse. ")])),_:1})]),_:1})]))}});export{f as __pageData,w as default};
|
@ -1 +1 @@
|
||||
import{u as p,v as i,p as s,a1 as c,a2 as l,a3 as d,a4 as f,a5 as m,a6 as h,a7 as g,a8 as A,a9 as v,aa as C,S as P,d as y,j as _,ab as w,ac as T,ad as b,ae as E}from"./chunks/framework.47aa8d5b.js";import{t as R}from"./chunks/theme.93d59802.js";const S={};const D={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...S};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(D),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=$(),t=O();t.provide(l,e);const a=d(e.route);return t.provide(f,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 $(){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,v as i,p as s,a1 as c,a2 as l,a3 as d,a4 as f,a5 as m,a6 as h,a7 as g,a8 as A,a9 as v,aa as C,S as P,d as y,j as _,ab as w,ac as T,ad as b,ae as E}from"./chunks/framework.47aa8d5b.js";import{t as R}from"./chunks/theme.60186560.js";const S={};const D={...R,setup(){const{lang:e}=p();i(()=>{s&&(document.cookie=`nf_lang=${e.value}; expires=Mon, 1 Jan 2024 00:00:00 UTC; path=/`)})},...S};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(D),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=$(),t=O();t.provide(l,e);const a=d(e.route);return t.provide(f,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 $(){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};
|
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
@ -1,4 +1,4 @@
|
||||
import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1745094404000}'),t={name:"getting_started/led_safety.md"},p=Object.assign(t,{setup(r){return(l,e)=>(a(),s("div",null,e[0]||(e[0]=[n(`<h2 id="near‐eye-infrared-ir-emitter-safety" tabindex="-1">Near‑Eye Infrared (IR) Emitter Safety <a class="header-anchor" href="#near‐eye-infrared-ir-emitter-safety" aria-label="Permalink to "Near‑Eye Infrared (IR) Emitter Safety""></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>Infrared emitters are invisible but <strong>not harmless</strong>. Excessive IR energy can heat the <strong>cornea</strong> and, over long exposures, contribute to cataract formation. At higher intensities and shorter wavelengths, the <strong>retina</strong> is also at risk due to focused thermal energy. This page explains how EyeTrackVR remains well below internationally accepted exposure limits, and how <em>you</em> can help ensure continued safety.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p><strong>DO NOT</strong> remove current‑limiting resistors, supply the LEDs with a different voltage, substitute emitters, or bypass firmware current caps. These modifications invalidate the safety calculations and may cause <strong>permanent eye damage</strong>.</p></div><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to "Relevant Safety Limits""></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures >1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10 mW/cm²</strong> (equivalent to 100 W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (400–1400 nm), and a worst-case exposure of ≥10 s, the irradiance limit is<br><strong>4 mW/cm²</strong> (averaged over a 7 mm pupil projected cone of 11 mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850 nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤ 0.8 mW/cm²</strong> at 1 cm — <strong>5×</strong> below the retinal limit, <strong>13×</strong> below the corneal limit.</p><hr><h3 id="why-current-ma-isn-t-enough" tabindex="-1">Why Current (mA) Isn’t Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to "Why Current (mA) Isn’t Enough""></a></h3><p>LED current (mA) is not a direct measure of safety. <strong>Irradiance</strong> (power per unit area) determines actual eye exposure:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Irradiance E = Radiant Intensity Ie / Illuminated Area A</span></span>
|
||||
import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1745094816000}'),r={name:"getting_started/led_safety.md"},p=Object.assign(r,{setup(t){return(l,e)=>(a(),s("div",null,e[0]||(e[0]=[n(`<h2 id="near‐eye-infrared-ir-emitter-safety" tabindex="-1">Near‑Eye Infrared (IR) Emitter Safety <a class="header-anchor" href="#near‐eye-infrared-ir-emitter-safety" aria-label="Permalink to "Near‑Eye Infrared (IR) Emitter Safety""></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>Infrared emitters are invisible but <strong>not harmless</strong>. Excessive IR energy can heat the <strong>cornea</strong> and, over long exposures, contribute to cataract formation. At higher intensities and shorter wavelengths, the <strong>retina</strong> is also at risk due to focused thermal energy. This page explains how EyeTrackVR remains well below internationally accepted exposure limits, and how <em>you</em> can help ensure continued safety.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p><strong>DO NOT</strong> remove current‑limiting resistors, supply the LEDs with a different voltage, substitute emitters, or bypass firmware current caps. These modifications invalidate the safety calculations and may cause <strong>permanent eye damage</strong>.</p></div><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to "Relevant Safety Limits""></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures >1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10 mW/cm²</strong> (equivalent to 100 W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (400–1400 nm), and a worst-case exposure of ≥10 s, the irradiance limit is<br><strong>4 mW/cm²</strong> (averaged over a 7 mm pupil projected cone of 11 mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850 nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤ 0.8 mW/cm²</strong> at 1 cm — <strong>5×</strong> below the retinal limit, <strong>13×</strong> below the corneal limit.</p><hr><h3 id="why-current-ma-isn-t-enough" tabindex="-1">Why Current (mA) Isn’t Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to "Why Current (mA) Isn’t Enough""></a></h3><p>LED current (mA) is not a direct measure of safety. <strong>Irradiance</strong> (power per unit area) determines actual eye exposure:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Irradiance E = Radiant Intensity Ie / Illuminated Area A</span></span>
|
||||
<span class="line"><span style="color:#babed8;">A = r² · Ω where Ω = 2π(1−cosθ)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><ul><li><em>Ie</em> = radiant intensity (in <strong>mW/sr</strong>, from datasheet)</li><li><em>r</em> = distance from LED to cornea (worst-case 1 cm)</li><li><em>θ</em> = half-angle of LED emission cone (datasheet: 60°, full angle 120°)</li><li><em>Ω</em> = solid angle in <strong>steradians</strong><br> (for θ = 60° → Ω ≈ π sr)<br> → A = π cm² at 1 cm</li></ul><hr><h2 id="hardware-exposure-calculations" tabindex="-1">Hardware Exposure Calculations <a class="header-anchor" href="#hardware-exposure-calculations" aria-label="Permalink to "Hardware Exposure Calculations""></a></h2><h3 id="led-xl‐3216hirc‐850" tabindex="-1">LED: XL‑3216HIRC‑850 <a class="header-anchor" href="#led-xl‐3216hirc‐850" aria-label="Permalink to "LED: XL‑3216HIRC‑850""></a></h3><table><thead><tr><th>Datasheet Value</th><th>Symbol</th><th>Notes</th></tr></thead><tbody><tr><td>Radiant intensity @ 20 mA</td><td><em>Ie₍20ₘₐ₎</em> = 5 mW/sr</td><td>Typical max value, 60° half-angle</td></tr><tr><td>Full emission angle</td><td>120°</td><td>⇒ θ = 60°, Ω ≈ π sr</td></tr></tbody></table><p>Radiant intensity scales roughly linearly with current:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Ie = Ie₍20ₘₐ₎ × (I_drive / 20 mA)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><hr><h3 id="v3-module-2-leds-3-2-ma-each" tabindex="-1">V3 Module (2 LEDs @ 3.2 mA each) <a class="header-anchor" href="#v3-module-2-leds-3-2-ma-each" aria-label="Permalink to "V3 Module (2 LEDs @ 3.2 mA each)""></a></h3><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Ie_single = 5 × (3.2 / 20) = 0.80 mW/sr</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_single = 0.80 / π = 0.25 mW/cm²</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_total = 0.25 × 2 = 0.51 mW/cm²</span></span>
|
||||
@ -15,4 +15,4 @@ import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.pa
|
||||
<span class="line"><span style="color:#babed8;">A = Ω × r² (illuminated area)</span></span>
|
||||
<span class="line"><span style="color:#babed8;">Ie = Ie₍20ₘₐ₎ × I / 20 mA</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E (per LED) = Ie / A</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_total = E × (# of LEDs)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><hr><h2 id="appendix-b-–-quoted-guideline-icnirp-2013" tabindex="-1">Appendix B – Quoted Guideline (ICNIRP 2013) <a class="header-anchor" href="#appendix-b-–-quoted-guideline-icnirp-2013" aria-label="Permalink to "Appendix B – Quoted Guideline (ICNIRP 2013)""></a></h2><blockquote><p>“To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780 nm < λ < 3 µm) should be limited to 100 W m⁻² (10 mW cm⁻²) for lengthy exposures (> 1000 s).”</p></blockquote><blockquote><p>— <em>ICNIRP Guidelines on Limits of Exposure to Incoherent Optical Radiation (2013)</em><br> PDF: <code>/public/safety/ICNIRP_optical_radiation.pdf</code></p></blockquote><hr><p>If you have suggestions, believe these calculations are inaccurate, or wish to contribute improvements, please <a href="https://github.com/EyeTrackVR/EyetrackVR-Docs" target="_blank" rel="noreferrer">open a discussion on GitHub</a>. Your feedback helps us keep everyone safe.</p>`,45)])))}});export{o as __pageData,p as default};
|
||||
<span class="line"><span style="color:#babed8;">E_total = E × (# of LEDs)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><hr><h2 id="appendix-b-–-quoted-guideline-icnirp-2013" tabindex="-1">Appendix B – Quoted Guideline (ICNIRP 2013) <a class="header-anchor" href="#appendix-b-–-quoted-guideline-icnirp-2013" aria-label="Permalink to "Appendix B – Quoted Guideline (ICNIRP 2013)""></a></h2><blockquote><p>“To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780 nm < λ < 3 µm) should be limited to 100 W m⁻² (10 mW cm⁻²) for lengthy exposures (> 1000 s).”</p></blockquote><blockquote><p>— <em>ICNIRP Guidelines on Limits of Exposure to Incoherent Optical Radiation (2013)</em><br><a href="https://docs.eyetrackvr.dev/safety/ICNIRP_optical_radiation.pdf" target="_blank" rel="noreferrer">PDF</a></p></blockquote><hr><p>If you have suggestions, believe these calculations are inaccurate, or wish to contribute improvements, please <a href="https://github.com/EyeTrackVR/EyetrackVR-Docs" target="_blank" rel="noreferrer">open a discussion on GitHub</a>. Your feedback helps us keep everyone safe.</p>`,45)])))}});export{o as __pageData,p as default};
|
@ -1,4 +1,4 @@
|
||||
import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1745094404000}'),t={name:"getting_started/led_safety.md"},p=Object.assign(t,{setup(r){return(l,e)=>(a(),s("div",null,e[0]||(e[0]=[n(`<h2 id="near‐eye-infrared-ir-emitter-safety" tabindex="-1">Near‑Eye Infrared (IR) Emitter Safety <a class="header-anchor" href="#near‐eye-infrared-ir-emitter-safety" aria-label="Permalink to "Near‑Eye Infrared (IR) Emitter Safety""></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>Infrared emitters are invisible but <strong>not harmless</strong>. Excessive IR energy can heat the <strong>cornea</strong> and, over long exposures, contribute to cataract formation. At higher intensities and shorter wavelengths, the <strong>retina</strong> is also at risk due to focused thermal energy. This page explains how EyeTrackVR remains well below internationally accepted exposure limits, and how <em>you</em> can help ensure continued safety.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p><strong>DO NOT</strong> remove current‑limiting resistors, supply the LEDs with a different voltage, substitute emitters, or bypass firmware current caps. These modifications invalidate the safety calculations and may cause <strong>permanent eye damage</strong>.</p></div><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to "Relevant Safety Limits""></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures >1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10 mW/cm²</strong> (equivalent to 100 W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (400–1400 nm), and a worst-case exposure of ≥10 s, the irradiance limit is<br><strong>4 mW/cm²</strong> (averaged over a 7 mm pupil projected cone of 11 mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850 nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤ 0.8 mW/cm²</strong> at 1 cm — <strong>5×</strong> below the retinal limit, <strong>13×</strong> below the corneal limit.</p><hr><h3 id="why-current-ma-isn-t-enough" tabindex="-1">Why Current (mA) Isn’t Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to "Why Current (mA) Isn’t Enough""></a></h3><p>LED current (mA) is not a direct measure of safety. <strong>Irradiance</strong> (power per unit area) determines actual eye exposure:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Irradiance E = Radiant Intensity Ie / Illuminated Area A</span></span>
|
||||
import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"getting_started/led_safety.md","filePath":"getting_started/led_safety.md","lastUpdated":1745094816000}'),r={name:"getting_started/led_safety.md"},p=Object.assign(r,{setup(t){return(l,e)=>(a(),s("div",null,e[0]||(e[0]=[n(`<h2 id="near‐eye-infrared-ir-emitter-safety" tabindex="-1">Near‑Eye Infrared (IR) Emitter Safety <a class="header-anchor" href="#near‐eye-infrared-ir-emitter-safety" aria-label="Permalink to "Near‑Eye Infrared (IR) Emitter Safety""></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>Infrared emitters are invisible but <strong>not harmless</strong>. Excessive IR energy can heat the <strong>cornea</strong> and, over long exposures, contribute to cataract formation. At higher intensities and shorter wavelengths, the <strong>retina</strong> is also at risk due to focused thermal energy. This page explains how EyeTrackVR remains well below internationally accepted exposure limits, and how <em>you</em> can help ensure continued safety.</p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p><strong>DO NOT</strong> remove current‑limiting resistors, supply the LEDs with a different voltage, substitute emitters, or bypass firmware current caps. These modifications invalidate the safety calculations and may cause <strong>permanent eye damage</strong>.</p></div><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to "Relevant Safety Limits""></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures >1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10 mW/cm²</strong> (equivalent to 100 W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (400–1400 nm), and a worst-case exposure of ≥10 s, the irradiance limit is<br><strong>4 mW/cm²</strong> (averaged over a 7 mm pupil projected cone of 11 mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850 nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤ 0.8 mW/cm²</strong> at 1 cm — <strong>5×</strong> below the retinal limit, <strong>13×</strong> below the corneal limit.</p><hr><h3 id="why-current-ma-isn-t-enough" tabindex="-1">Why Current (mA) Isn’t Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to "Why Current (mA) Isn’t Enough""></a></h3><p>LED current (mA) is not a direct measure of safety. <strong>Irradiance</strong> (power per unit area) determines actual eye exposure:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Irradiance E = Radiant Intensity Ie / Illuminated Area A</span></span>
|
||||
<span class="line"><span style="color:#babed8;">A = r² · Ω where Ω = 2π(1−cosθ)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><ul><li><em>Ie</em> = radiant intensity (in <strong>mW/sr</strong>, from datasheet)</li><li><em>r</em> = distance from LED to cornea (worst-case 1 cm)</li><li><em>θ</em> = half-angle of LED emission cone (datasheet: 60°, full angle 120°)</li><li><em>Ω</em> = solid angle in <strong>steradians</strong><br> (for θ = 60° → Ω ≈ π sr)<br> → A = π cm² at 1 cm</li></ul><hr><h2 id="hardware-exposure-calculations" tabindex="-1">Hardware Exposure Calculations <a class="header-anchor" href="#hardware-exposure-calculations" aria-label="Permalink to "Hardware Exposure Calculations""></a></h2><h3 id="led-xl‐3216hirc‐850" tabindex="-1">LED: XL‑3216HIRC‑850 <a class="header-anchor" href="#led-xl‐3216hirc‐850" aria-label="Permalink to "LED: XL‑3216HIRC‑850""></a></h3><table><thead><tr><th>Datasheet Value</th><th>Symbol</th><th>Notes</th></tr></thead><tbody><tr><td>Radiant intensity @ 20 mA</td><td><em>Ie₍20ₘₐ₎</em> = 5 mW/sr</td><td>Typical max value, 60° half-angle</td></tr><tr><td>Full emission angle</td><td>120°</td><td>⇒ θ = 60°, Ω ≈ π sr</td></tr></tbody></table><p>Radiant intensity scales roughly linearly with current:</p><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Ie = Ie₍20ₘₐ₎ × (I_drive / 20 mA)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><hr><h3 id="v3-module-2-leds-3-2-ma-each" tabindex="-1">V3 Module (2 LEDs @ 3.2 mA each) <a class="header-anchor" href="#v3-module-2-leds-3-2-ma-each" aria-label="Permalink to "V3 Module (2 LEDs @ 3.2 mA each)""></a></h3><div class="language- line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#babed8;">Ie_single = 5 × (3.2 / 20) = 0.80 mW/sr</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_single = 0.80 / π = 0.25 mW/cm²</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_total = 0.25 × 2 = 0.51 mW/cm²</span></span>
|
||||
@ -15,4 +15,4 @@ import{o as a,c as s,O as n}from"./chunks/framework.47aa8d5b.js";const o=JSON.pa
|
||||
<span class="line"><span style="color:#babed8;">A = Ω × r² (illuminated area)</span></span>
|
||||
<span class="line"><span style="color:#babed8;">Ie = Ie₍20ₘₐ₎ × I / 20 mA</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E (per LED) = Ie / A</span></span>
|
||||
<span class="line"><span style="color:#babed8;">E_total = E × (# of LEDs)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><hr><h2 id="appendix-b-–-quoted-guideline-icnirp-2013" tabindex="-1">Appendix B – Quoted Guideline (ICNIRP 2013) <a class="header-anchor" href="#appendix-b-–-quoted-guideline-icnirp-2013" aria-label="Permalink to "Appendix B – Quoted Guideline (ICNIRP 2013)""></a></h2><blockquote><p>“To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780 nm < λ < 3 µm) should be limited to 100 W m⁻² (10 mW cm⁻²) for lengthy exposures (> 1000 s).”</p></blockquote><blockquote><p>— <em>ICNIRP Guidelines on Limits of Exposure to Incoherent Optical Radiation (2013)</em><br> PDF: <code>/public/safety/ICNIRP_optical_radiation.pdf</code></p></blockquote><hr><p>If you have suggestions, believe these calculations are inaccurate, or wish to contribute improvements, please <a href="https://github.com/EyeTrackVR/EyetrackVR-Docs" target="_blank" rel="noreferrer">open a discussion on GitHub</a>. Your feedback helps us keep everyone safe.</p>`,45)])))}});export{o as __pageData,p as default};
|
||||
<span class="line"><span style="color:#babed8;">E_total = E × (# of LEDs)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><hr><h2 id="appendix-b-–-quoted-guideline-icnirp-2013" tabindex="-1">Appendix B – Quoted Guideline (ICNIRP 2013) <a class="header-anchor" href="#appendix-b-–-quoted-guideline-icnirp-2013" aria-label="Permalink to "Appendix B – Quoted Guideline (ICNIRP 2013)""></a></h2><blockquote><p>“To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780 nm < λ < 3 µm) should be limited to 100 W m⁻² (10 mW cm⁻²) for lengthy exposures (> 1000 s).”</p></blockquote><blockquote><p>— <em>ICNIRP Guidelines on Limits of Exposure to Incoherent Optical Radiation (2013)</em><br><a href="https://docs.eyetrackvr.dev/safety/ICNIRP_optical_radiation.pdf" target="_blank" rel="noreferrer">PDF</a></p></blockquote><hr><p>If you have suggestions, believe these calculations are inaccurate, or wish to contribute improvements, please <a href="https://github.com/EyeTrackVR/EyetrackVR-Docs" target="_blank" rel="noreferrer">open a discussion on GitHub</a>. Your feedback helps us keep everyone safe.</p>`,45)])))}});export{o as __pageData,p 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
@ -1 +1 @@
|
||||
{"software_guide_eyetrackvr_app_guide.md":"dce4a9fb","misc_vrc_avatar_setup.md":"2d1bc492","firmware_guide_update_platformio.md":"d52a99e0","firmware_guide_setup_vscode.md":"fefbbc55","firmware_guide_flashing_tool.md":"c180a2ca","firmware_guide_mdns.md":"8a95e855","archive_fox_ir_v2_build_instructions.md":"ebf3c880","firmware_guide_configure_firmware.md":"4eb536cf","development_docs_pages.md":"85e22694","contact.md":"034a53d4","about.md":"c7d9eb61","software_guide_build_software.md":"b0d1c681","software_guide_vrcft_tracking_module.md":"d148b9dc","firmware_guide_rest_api.md":"8a0ea54a","misc_jlc3dp.md":"5e8875c4","development_docs_standards.md":"f9558435","firmware_guide_upload_and_update_firmware.md":"0806ea0f","dev_roadmap.md":"2f96c918","firmware_guide_environments.md":"6b0604e7","how_to_build_parts_list.md":"d57cd54a","getting_started_led_safety.md":"7fccb842","how_to_build_preparing_xiao.md":"fcacda59","getting_started_things_to_know.md":"d09a6393","misc_faq.md":"8d641c6c","how_to_build_creating_your_own_mount.md":"70ac1088","headset_guides_what_is_this.md":"60052a7d","firmware_guide_firmware.md":"6c8e1ae6","headset_guides_valve_index.md":"891da17f","how_to_build_full_build.md":"f324b1f6","how_to_build_part_list.md":"3640f4dd","how_to_build_3d_printed_mounts.md":"5d2aa5cb","index.md":"b1e77ab7","software_guide_osc_setup.md":"af1d1fce","development_docs_dev_docs.md":"b7b0d76e","how_to_build_preparing_cameras.md":"0a4aab5a","getting_started_intro.md":"5e08361f","how_to_build_led_setup.md":"6d99addb"}
|
||||
{"how_to_build_3d_printed_mounts.md":"5d2aa5cb","getting_started_intro.md":"5e08361f","how_to_build_creating_your_own_mount.md":"70ac1088","firmware_guide_upload_and_update_firmware.md":"0806ea0f","getting_started_things_to_know.md":"d09a6393","headset_guides_what_is_this.md":"60052a7d","how_to_build_led_setup.md":"6d99addb","firmware_guide_rest_api.md":"8a0ea54a","how_to_build_full_build.md":"f324b1f6","index.md":"b1e77ab7","archive_fox_ir_v2_build_instructions.md":"ebf3c880","firmware_guide_environments.md":"6b0604e7","headset_guides_valve_index.md":"891da17f","development_docs_standards.md":"f9558435","how_to_build_part_list.md":"3640f4dd","firmware_guide_update_platformio.md":"d52a99e0","misc_jlc3dp.md":"5e8875c4","development_docs_dev_docs.md":"b7b0d76e","firmware_guide_firmware.md":"6c8e1ae6","firmware_guide_setup_vscode.md":"fefbbc55","contact.md":"034a53d4","firmware_guide_configure_firmware.md":"4eb536cf","firmware_guide_mdns.md":"8a95e855","getting_started_led_safety.md":"8b15f1c0","misc_vrc_avatar_setup.md":"2d1bc492","software_guide_build_software.md":"b0d1c681","software_guide_vrcft_tracking_module.md":"d148b9dc","misc_faq.md":"8d641c6c","dev_roadmap.md":"2f96c918","software_guide_osc_setup.md":"af1d1fce","firmware_guide_flashing_tool.md":"c180a2ca","about.md":"7e64af19","how_to_build_preparing_xiao.md":"fcacda59","how_to_build_preparing_cameras.md":"0a4aab5a","development_docs_pages.md":"85e22694","how_to_build_parts_list.md":"d57cd54a","software_guide_eyetrackvr_app_guide.md":"dce4a9fb"}
|
||||
|
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
Loading…
Reference in New Issue
Block a user