Compare commits

...

2 Commits

Author SHA1 Message Date
RedHawk989
491a38b1d5 fix: page imports 2025-05-01 15:24:59 +00:00
RedHawk989
e2e15c6838 docs: small IR tweak 2025-05-01 15:09:19 +00:00
49 changed files with 134 additions and 134 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 r,b as s,c as u}from"./chunks/theme.81520eb5.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.cd06fb64.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};

View File

@ -1 +1 @@
import{V as i,a as r,b as s,c as u}from"./chunks/theme.81520eb5.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.cd06fb64.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};

View File

@ -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.81520eb5.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.cd06fb64.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

View File

@ -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":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="neareye-infrared-ir-emitter-safety" tabindex="-1">NearEye Infrared (IR) Emitter Safety <a class="header-anchor" href="#neareye-infrared-ir-emitter-safety" aria-label="Permalink to &quot;NearEye Infrared (IR) Emitter Safety&quot;"></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>DONOT</strong> remove currentlimiting 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 &quot;Relevant Safety Limits&quot;"></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures &gt;1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10mW/cm²</strong> (equivalent to 100W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (4001400nm), and a worst-case exposure of ≥10s, the irradiance limit is<br><strong>4mW/cm²</strong> (averaged over a 7mm pupil projected cone of 11mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤0.8mW/cm²</strong> at 1cm — <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) Isnt Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to &quot;Why Current (mA) Isnt Enough&quot;"></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":1746112988000}'),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="neareye-infrared-ir-emitter-safety" tabindex="-1">NearEye Infrared (IR) Emitter Safety <a class="header-anchor" href="#neareye-infrared-ir-emitter-safety" aria-label="Permalink to &quot;NearEye Infrared (IR) Emitter Safety&quot;"></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>IR can be dangerous to your eyes once at a certain power level. <strong>It is not recommended to use different emitters unless you know exactly what you are doing as it could result in harm to your eyes. If you doubt yourself or do not understand something, just do exactly what we do. Don&#39;t use different emitters, don&#39;t use different means of power, etc.</strong></p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>It is important that you DO NOT BYPASS (OR NOT DO) ANY SAFETY FEATURES PUT IN PLACE. This can result in irreversible bodily harm.</p></div><p>The safety measures were put in place to REDUCE the potential failure risk. All further safety responsibilities are on the user. This includes visually checking with an IR camera that the brightness is correct and that you do not feel warmth, excessive eye-strain or experience short-term effects after being exposed to the IR light (symptoms such as dark spots or dry/warm feeling eyes while actively using). While we have designed EyeTrackVR to be as safe as possible, we do not hold any responsibility for damage done.</p><p><a href="https://store.eyetrackvr.dev/" target="_blank" rel="noreferrer">Our official kits</a> are made with known safe parts, undergo design testing to ensure failures are safe, and have calculated exposure nummbers below.</p><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to &quot;Relevant Safety Limits&quot;"></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures &gt;1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10mW/cm²</strong> (equivalent to 100W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (4001400nm), and a worst-case exposure of ≥10s, the irradiance limit is<br><strong>4mW/cm²</strong> (averaged over a 7mm pupil projected cone of 11mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤0.8mW/cm²</strong> at 1cm — <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) Isnt Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to &quot;Why Current (mA) Isnt Enough&quot;"></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 = · Ω where Ω = 2π(1cosθ)</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 1cm)</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 1cm</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 &quot;Hardware Exposure Calculations&quot;"></a></h2><h3 id="led-xl3216hirc850" tabindex="-1">LED: XL3216HIRC850 <a class="header-anchor" href="#led-xl3216hirc850" aria-label="Permalink to &quot;LED: XL3216HIRC850&quot;"></a></h3><table><thead><tr><th>Datasheet Value</th><th>Symbol</th><th>Notes</th></tr></thead><tbody><tr><td>Radiant intensity @ 20mA</td><td><em>Ie20</em> = 5mW/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 = Ie20 × (I_drive / 20mA)</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.2mA each) <a class="header-anchor" href="#v3-module-2-leds-3-2-ma-each" aria-label="Permalink to &quot;V3 Module (2 LEDs @ 3.2mA each)&quot;"></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.80mW/sr</span></span>
<span class="line"><span style="color:#babed8;">E_single = 0.80 / π = 0.25mW/cm²</span></span>
<span class="line"><span style="color:#babed8;">E_total = 0.25 × 2 = 0.51mW/cm²</span></span>
@ -11,8 +11,8 @@ 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;"> ~8.1% of ICNIRP corneal limit</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></div></div><h4 id="v4-max-bin-4-leds-2-4-ma" tabindex="-1">V4 Max Bin (4 LEDs @ 2.4mA): <a class="header-anchor" href="#v4-max-bin-4-leds-2-4-ma" aria-label="Permalink to &quot;V4 Max Bin (4 LEDs @ 2.4mA):&quot;"></a></h4><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 = 8 × (2.4 / 20) = 0.96mW/sr</span></span>
<span class="line"><span style="color:#babed8;">E_single = 0.96 / π = 0.31mW/cm²</span></span>
<span class="line"><span style="color:#babed8;">E_total = 0.31 × 4 = 1.22mW/cm²</span></span>
<span class="line"><span style="color:#babed8;"> ~12.2% of ICNIRP corneal limit</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></div></div><hr><h2 id="your-responsibilities" tabindex="-1">Your Responsibilities <a class="header-anchor" href="#your-responsibilities" aria-label="Permalink to &quot;Your Responsibilities&quot;"></a></h2><ol><li><strong>Do not modify the hardware.</strong> Changing components or resistors voids all safety guarantees.</li><li><strong>Verify functionality before use.</strong> Use an IR-sensitive camera to confirm all LEDs are on and of equal brightness.</li><li><strong>Perform periodic inspections</strong> to ensure IR emitters have not damaged and remain equal brightness.</li></ol><hr><h2 id="appendix-a--formula-summary" tabindex="-1">Appendix A Formula Summary <a class="header-anchor" href="#appendix-a--formula-summary" aria-label="Permalink to &quot;Appendix A Formula Summary&quot;"></a></h2><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;">Ω = 2π(1cosθ) (solid angle of emission)</span></span>
<span class="line"><span style="color:#babed8;"> ~12.2% of ICNIRP corneal limit</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></div></div><hr><h2 id="your-responsibilities" tabindex="-1">Your Responsibilities <a class="header-anchor" href="#your-responsibilities" aria-label="Permalink to &quot;Your Responsibilities&quot;"></a></h2><ol><li><strong>Do not modify the hardware.</strong> Changing components or resistors voids all safety guarantees and may lead to unsafe conditions.</li><li><strong>Verify functionality before use.</strong> Use an IR-sensitive camera to confirm all LEDs are on and of equal brightness and the view of your eye is not completely washed out.</li><li><strong>Perform periodic inspections</strong> to ensure IR emitters have not damaged and remain equal brightness.</li></ol><hr><h2 id="appendix-a--formula-summary" tabindex="-1">Appendix A Formula Summary <a class="header-anchor" href="#appendix-a--formula-summary" aria-label="Permalink to &quot;Appendix A Formula Summary&quot;"></a></h2><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;">Ω = 2π(1cosθ) (solid angle of emission)</span></span>
<span class="line"><span style="color:#babed8;">A = Ω × (illuminated area)</span></span>
<span class="line"><span style="color:#babed8;">Ie = Ie20ₘₐ × I / 20mA</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 &quot;Appendix B Quoted Guideline (ICNIRP 2013)&quot;"></a></h2><blockquote><p>To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780nm &lt; λ &lt; 3µm) should be limited to 100Wm² (10mWcm²) for lengthy exposures (&gt;1000s).</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};
<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 &quot;Appendix B Quoted Guideline (ICNIRP 2013)&quot;"></a></h2><blockquote><p>To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780nm &lt; λ &lt; 3µm) should be limited to 100Wm² (10mWcm²) for lengthy exposures (&gt;1000s).</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>`,47)])))}});export{o as __pageData,p as default};

View File

@ -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":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="neareye-infrared-ir-emitter-safety" tabindex="-1">NearEye Infrared (IR) Emitter Safety <a class="header-anchor" href="#neareye-infrared-ir-emitter-safety" aria-label="Permalink to &quot;NearEye Infrared (IR) Emitter Safety&quot;"></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>DONOT</strong> remove currentlimiting 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 &quot;Relevant Safety Limits&quot;"></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures &gt;1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10mW/cm²</strong> (equivalent to 100W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (4001400nm), and a worst-case exposure of ≥10s, the irradiance limit is<br><strong>4mW/cm²</strong> (averaged over a 7mm pupil projected cone of 11mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤0.8mW/cm²</strong> at 1cm — <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) Isnt Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to &quot;Why Current (mA) Isnt Enough&quot;"></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":1746112988000}'),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="neareye-infrared-ir-emitter-safety" tabindex="-1">NearEye Infrared (IR) Emitter Safety <a class="header-anchor" href="#neareye-infrared-ir-emitter-safety" aria-label="Permalink to &quot;NearEye Infrared (IR) Emitter Safety&quot;"></a></h2><p><strong>Please exercise caution when messing around with IR emitters.</strong></p><p>IR can be dangerous to your eyes once at a certain power level. <strong>It is not recommended to use different emitters unless you know exactly what you are doing as it could result in harm to your eyes. If you doubt yourself or do not understand something, just do exactly what we do. Don&#39;t use different emitters, don&#39;t use different means of power, etc.</strong></p><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>It is important that you DO NOT BYPASS (OR NOT DO) ANY SAFETY FEATURES PUT IN PLACE. This can result in irreversible bodily harm.</p></div><p>The safety measures were put in place to REDUCE the potential failure risk. All further safety responsibilities are on the user. This includes visually checking with an IR camera that the brightness is correct and that you do not feel warmth, excessive eye-strain or experience short-term effects after being exposed to the IR light (symptoms such as dark spots or dry/warm feeling eyes while actively using). While we have designed EyeTrackVR to be as safe as possible, we do not hold any responsibility for damage done.</p><p><a href="https://store.eyetrackvr.dev/" target="_blank" rel="noreferrer">Our official kits</a> are made with known safe parts, undergo design testing to ensure failures are safe, and have calculated exposure nummbers below.</p><hr><h3 id="relevant-safety-limits" tabindex="-1">Relevant Safety Limits <a class="header-anchor" href="#relevant-safety-limits" aria-label="Permalink to &quot;Relevant Safety Limits&quot;"></a></h3><p>We design for compliance with these key international safety standards:</p><ul><li><strong>ICNIRP 2013</strong>: For exposures &gt;1000 seconds, the <strong>anterior eye</strong> (cornea and lens) irradiance limit is<br><strong>10mW/cm²</strong> (equivalent to 100W/m²).</li><li><strong>IEC 62471</strong> and <strong>IEC 60825-1</strong>: For sources in the <strong>retinal hazard region</strong> (4001400nm), and a worst-case exposure of ≥10s, the irradiance limit is<br><strong>4mW/cm²</strong> (averaged over a 7mm pupil projected cone of 11mrad).</li></ul><p>EyeTrackVR emitters operate at <strong>850nm</strong>, within the retinal hazard region.<br> Our calculated output is well below both thresholds:<br><strong>≤0.8mW/cm²</strong> at 1cm — <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) Isnt Enough <a class="header-anchor" href="#why-current-ma-isn-t-enough" aria-label="Permalink to &quot;Why Current (mA) Isnt Enough&quot;"></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 = · Ω where Ω = 2π(1cosθ)</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 1cm)</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 1cm</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 &quot;Hardware Exposure Calculations&quot;"></a></h2><h3 id="led-xl3216hirc850" tabindex="-1">LED: XL3216HIRC850 <a class="header-anchor" href="#led-xl3216hirc850" aria-label="Permalink to &quot;LED: XL3216HIRC850&quot;"></a></h3><table><thead><tr><th>Datasheet Value</th><th>Symbol</th><th>Notes</th></tr></thead><tbody><tr><td>Radiant intensity @ 20mA</td><td><em>Ie20</em> = 5mW/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 = Ie20 × (I_drive / 20mA)</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.2mA each) <a class="header-anchor" href="#v3-module-2-leds-3-2-ma-each" aria-label="Permalink to &quot;V3 Module (2 LEDs @ 3.2mA each)&quot;"></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.80mW/sr</span></span>
<span class="line"><span style="color:#babed8;">E_single = 0.80 / π = 0.25mW/cm²</span></span>
<span class="line"><span style="color:#babed8;">E_total = 0.25 × 2 = 0.51mW/cm²</span></span>
@ -11,8 +11,8 @@ 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;"> ~8.1% of ICNIRP corneal limit</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></div></div><h4 id="v4-max-bin-4-leds-2-4-ma" tabindex="-1">V4 Max Bin (4 LEDs @ 2.4mA): <a class="header-anchor" href="#v4-max-bin-4-leds-2-4-ma" aria-label="Permalink to &quot;V4 Max Bin (4 LEDs @ 2.4mA):&quot;"></a></h4><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 = 8 × (2.4 / 20) = 0.96mW/sr</span></span>
<span class="line"><span style="color:#babed8;">E_single = 0.96 / π = 0.31mW/cm²</span></span>
<span class="line"><span style="color:#babed8;">E_total = 0.31 × 4 = 1.22mW/cm²</span></span>
<span class="line"><span style="color:#babed8;"> ~12.2% of ICNIRP corneal limit</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></div></div><hr><h2 id="your-responsibilities" tabindex="-1">Your Responsibilities <a class="header-anchor" href="#your-responsibilities" aria-label="Permalink to &quot;Your Responsibilities&quot;"></a></h2><ol><li><strong>Do not modify the hardware.</strong> Changing components or resistors voids all safety guarantees.</li><li><strong>Verify functionality before use.</strong> Use an IR-sensitive camera to confirm all LEDs are on and of equal brightness.</li><li><strong>Perform periodic inspections</strong> to ensure IR emitters have not damaged and remain equal brightness.</li></ol><hr><h2 id="appendix-a--formula-summary" tabindex="-1">Appendix A Formula Summary <a class="header-anchor" href="#appendix-a--formula-summary" aria-label="Permalink to &quot;Appendix A Formula Summary&quot;"></a></h2><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;">Ω = 2π(1cosθ) (solid angle of emission)</span></span>
<span class="line"><span style="color:#babed8;"> ~12.2% of ICNIRP corneal limit</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></div></div><hr><h2 id="your-responsibilities" tabindex="-1">Your Responsibilities <a class="header-anchor" href="#your-responsibilities" aria-label="Permalink to &quot;Your Responsibilities&quot;"></a></h2><ol><li><strong>Do not modify the hardware.</strong> Changing components or resistors voids all safety guarantees and may lead to unsafe conditions.</li><li><strong>Verify functionality before use.</strong> Use an IR-sensitive camera to confirm all LEDs are on and of equal brightness and the view of your eye is not completely washed out.</li><li><strong>Perform periodic inspections</strong> to ensure IR emitters have not damaged and remain equal brightness.</li></ol><hr><h2 id="appendix-a--formula-summary" tabindex="-1">Appendix A Formula Summary <a class="header-anchor" href="#appendix-a--formula-summary" aria-label="Permalink to &quot;Appendix A Formula Summary&quot;"></a></h2><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;">Ω = 2π(1cosθ) (solid angle of emission)</span></span>
<span class="line"><span style="color:#babed8;">A = Ω × (illuminated area)</span></span>
<span class="line"><span style="color:#babed8;">Ie = Ie20ₘₐ × I / 20mA</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 &quot;Appendix B Quoted Guideline (ICNIRP 2013)&quot;"></a></h2><blockquote><p>To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780nm &lt; λ &lt; 3µm) should be limited to 100Wm² (10mWcm²) for lengthy exposures (&gt;1000s).</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};
<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 &quot;Appendix B Quoted Guideline (ICNIRP 2013)&quot;"></a></h2><blockquote><p>To avoid thermal injury of the cornea and possible delayed effects on the lens of the eye (cataractogenesis), infrared radiation (780nm &lt; λ &lt; 3µm) should be limited to 100Wm² (10mWcm²) for lengthy exposures (&gt;1000s).</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>`,47)])))}});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

View File

@ -1 +1 @@
{"development_docs_pages.md":"85e22694","dev_roadmap.md":"2f96c918","how_to_build_preparing_cameras.md":"0a4aab5a","about.md":"bea4465c","firmware_guide_upload_and_update_firmware.md":"0806ea0f","getting_started_led_safety.md":"8b15f1c0","firmware_guide_setup_vscode.md":"fefbbc55","firmware_guide_update_platformio.md":"d52a99e0","firmware_guide_rest_api.md":"8a0ea54a","how_to_build_3d_printed_mounts.md":"5d2aa5cb","development_docs_dev_docs.md":"b7b0d76e","headset_guides_what_is_this.md":"60052a7d","headset_guides_valve_index.md":"891da17f","firmware_guide_flashing_tool.md":"c180a2ca","development_docs_standards.md":"f9558435","getting_started_things_to_know.md":"4cd89e47","how_to_build_full_build.md":"f324b1f6","firmware_guide_firmware.md":"6c8e1ae6","firmware_guide_mdns.md":"8a95e855","getting_started_intro.md":"d6d8f855","firmware_guide_environments.md":"6b0604e7","how_to_build_creating_your_own_mount.md":"70ac1088","how_to_build_led_setup.md":"6d99addb","how_to_build_part_list.md":"3640f4dd","index.md":"269511a8","software_guide_vrcft_tracking_module.md":"d148b9dc","contact.md":"034a53d4","archive_fox_ir_v2_build_instructions.md":"ebf3c880","software_guide_build_software.md":"b0d1c681","how_to_build_v4_full_build.md":"0dd3c5e7","how_to_build_parts_list.md":"d57cd54a","firmware_guide_configure_firmware.md":"4eb536cf","how_to_build_preparing_xiao.md":"fcacda59","software_guide_eyetrackvr_app_guide.md":"dce4a9fb","software_guide_osc_setup.md":"af1d1fce","misc_faq.md":"8d641c6c","misc_jlc3dp.md":"5e8875c4","misc_vrc_avatar_setup.md":"2d1bc492"}
{"contact.md":"034a53d4","firmware_guide_firmware.md":"6c8e1ae6","firmware_guide_environments.md":"6b0604e7","firmware_guide_flashing_tool.md":"c180a2ca","firmware_guide_mdns.md":"8a95e855","archive_fox_ir_v2_build_instructions.md":"ebf3c880","getting_started_led_safety.md":"78277ff3","how_to_build_parts_list.md":"d57cd54a","how_to_build_creating_your_own_mount.md":"70ac1088","how_to_build_full_build.md":"f324b1f6","getting_started_intro.md":"d6d8f855","firmware_guide_rest_api.md":"8a0ea54a","getting_started_things_to_know.md":"4cd89e47","headset_guides_valve_index.md":"891da17f","headset_guides_what_is_this.md":"60052a7d","dev_roadmap.md":"2f96c918","firmware_guide_upload_and_update_firmware.md":"0806ea0f","how_to_build_3d_printed_mounts.md":"5d2aa5cb","software_guide_vrcft_tracking_module.md":"d148b9dc","software_guide_build_software.md":"b0d1c681","development_docs_pages.md":"85e22694","how_to_build_v4_full_build.md":"0dd3c5e7","misc_jlc3dp.md":"5e8875c4","development_docs_standards.md":"f9558435","development_docs_dev_docs.md":"b7b0d76e","how_to_build_part_list.md":"3640f4dd","how_to_build_preparing_cameras.md":"0a4aab5a","how_to_build_preparing_xiao.md":"fcacda59","how_to_build_led_setup.md":"6d99addb","index.md":"269511a8","misc_faq.md":"8d641c6c","misc_vrc_avatar_setup.md":"2d1bc492","about.md":"055b7111","software_guide_osc_setup.md":"af1d1fce","firmware_guide_setup_vscode.md":"fefbbc55","firmware_guide_update_platformio.md":"d52a99e0","firmware_guide_configure_firmware.md":"4eb536cf","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

File diff suppressed because one or more lines are too long