mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-11-04 14:49:44 +08:00
41 lines
50 KiB
HTML
41 lines
50 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>EyeTrackVR Docs | EyeTrackVR Docs</title>
|
||
<meta name="description" content="Official documentation for EyeTrackVR. Fully open-source and affordable VR eye tracking platform.">
|
||
<link rel="preload stylesheet" href="/assets/style.78a19c9c.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.7dd739f4.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.47aa8d5b.js">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.60186560.js">
|
||
<link rel="modulepreload" href="/assets/getting_started_led_safety.md.8b15f1c0.lean.js">
|
||
<script async src="/src/assets/diy.js"></script>
|
||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-527a0310><!--[--><!--]--><!--[--><span tabindex="-1" data-v-b22defb4></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-b22defb4> Skip to content </a><!--]--><!----><header class="VPNav" data-v-527a0310 data-v-a46e73f0><div class="VPNavBar" data-v-a46e73f0 data-v-dfeca417><div class="container" data-v-dfeca417><div class="title" data-v-dfeca417><div class="VPNavBarTitle has-sidebar" data-v-dfeca417 data-v-2d6ff155><a class="title" href="/" data-v-2d6ff155><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/logo.svg" alt="EyeTrackVR Logo" data-v-4d414b82><!--]--><!--[--><img class="VPImage light logo" src="/logo_light.png" alt="EyeTrackVR Logo" data-v-4d414b82><!--]--><!--]--><!--]--><!--[-->EyeTrackVR Docs<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-dfeca417><div class="curtain" data-v-dfeca417></div><div class="content-body" data-v-dfeca417><!--[--><!--]--><div class="VPNavBarSearch search" data-v-dfeca417><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-dfeca417 data-v-c6c3e6d4><span id="main-nav-aria-label" class="visually-hidden" data-v-c6c3e6d4>Main Navigation</span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-c6c3e6d4 data-v-1a2ceba0><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-1a2ceba0><span class="text" data-v-1a2ceba0><!----><span data-v-1a2ceba0>About</span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-1a2ceba0><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-1a2ceba0><div class="VPMenu" data-v-1a2ceba0 data-v-7bffa9cd><div class="items" data-v-7bffa9cd><!--[--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-71c5411b><a class="VPLink link" href="/about" data-v-71c5411b><!--[-->About Us<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-71c5411b><a class="VPLink link" href="/dev_roadmap" data-v-71c5411b><!--[-->Development Road Map<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/contact" tabindex="0" data-v-c6c3e6d4 data-v-97d30ef6><!--[--><span data-v-97d30ef6>Contact</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-dfeca417 data-v-f774fc1d><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f774fc1d data-v-fdee46ce data-v-0b5e260c><span class="check" data-v-0b5e260c><span class="icon" data-v-0b5e260c><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-fdee46ce><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-fdee46ce><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-dfeca417 data-v-08b35e6f data-v-f2234a39><!--[--><a class="VPSocialLink no-icon" href="https://github.com/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-dfeca417 data-v-47bb42ad data-v-1a2ceba0><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1a2ceba0><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1a2ceba0><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1a2ceba0><div class="VPMenu" data-v-1a2ceba0 data-v-7bffa9cd><!----><!--[--><!--[--><!----><div class="group" data-v-47bb42ad><div class="item appearance" data-v-47bb42ad><p class="label" data-v-47bb42ad>Appearance</p><div class="appearance-action" data-v-47bb42ad><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-47bb42ad data-v-fdee46ce data-v-0b5e260c><span class="check" data-v-0b5e260c><span class="icon" data-v-0b5e260c><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-fdee46ce><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-fdee46ce><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-47bb42ad><div class="item social-links" data-v-47bb42ad><div class="VPSocialLinks social-links-list" data-v-47bb42ad data-v-f2234a39><!--[--><a class="VPSocialLink no-icon" href="https://github.com/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-f2234a39 data-v-efc53bd4><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-dfeca417 data-v-670493dd><span class="container" data-v-670493dd><span class="top" data-v-670493dd></span><span class="middle" data-v-670493dd></span><span class="bottom" data-v-670493dd></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav reached-top" data-v-527a0310 data-v-3c3d80ab><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-3c3d80ab><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-3c3d80ab><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-3c3d80ab>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-3c3d80ab data-v-2c1007a4><button data-v-2c1007a4>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-527a0310 data-v-45ef976a><div class="curtain" data-v-45ef976a></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-45ef976a><span class="visually-hidden" id="sidebar-aria-label" data-v-45ef976a> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0 has-active" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Getting Started</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/intro" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Introduction</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/things_to_know" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Things to know before you start</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/getting_started/led_safety" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>LED Safety</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>How to Build</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/part_list" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Parts List</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/preparing_cameras" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing Cameras</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/preparing_xiao" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing XIAO Sense ESP32</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/led_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Preparing V4 LEDs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/3d_printed_mounts" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>3D Printed Mounts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/creating_your_own_mount" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>How to Create your own Camera Mount</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Headset Guides</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/headset_guides/what_is_this" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>What is This?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/headset_guides/valve_index" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Valve Index</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Firmware Guide</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Introduction</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/flashing_tool" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Flashing Tool</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/mdns" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>MDNS</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/rest_api" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>REST API</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Software Guide</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/eyetrackvr_app_guide" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Installing and setting up the ETVR App</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/build_software" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Building the app from source</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/osc_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setting up OSC recenter/recalibrate</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/software_guide/VRCFT_tracking_module" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setting up VRCFT - VRCFT Module</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Miscellaneous</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/jlc3dp" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>JLC3DP 3D Printing Service</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/vrc_avatar_setup" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>VR Chat Avatar Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/misc/faq" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>FAQ</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Development</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/dev_docs" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Docs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/pages" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Edit Docs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/development/docs/standards" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Standards</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-45ef976a><section class="VPSidebarItem level-0" data-v-45ef976a data-v-f0f37ff4><div class="item" role="button" tabindex="0" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><h2 class="text" data-v-f0f37ff4>Archive</h2><!----></div><div class="items" data-v-f0f37ff4><!--[--><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/setup_vscode" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Setup Visual Studio Code environment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/configure_firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Configuring Firmware</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/environments" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Firmware Environments</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/upload_and_update_firmware" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Uploading and Updating the Firmware</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/firmware_guide/update_platformio" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Updating PlatformIO</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/archive/fox_ir_v2_build_instructions" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Prepare to solder IR LED PCB V2's</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/full_build" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>V3 Full Build Guide</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-f0f37ff4 data-v-f0f37ff4><div class="item" data-v-f0f37ff4><div class="indicator" data-v-f0f37ff4></div><a class="VPLink link link" href="/how_to_build/parts_list" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>Part List (legacy)</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-527a0310 data-v-b7946bfc><div class="VPDoc has-sidebar has-aside" data-v-b7946bfc data-v-281cfc61><!--[--><!--]--><div class="container" data-v-281cfc61><div class="aside" data-v-281cfc61><div class="aside-curtain" data-v-281cfc61></div><div class="aside-container" data-v-281cfc61><div class="aside-content" data-v-281cfc61><div class="VPDocAside" data-v-281cfc61 data-v-79cae1a0><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" role="navigation" data-v-79cae1a0 data-v-d8517c5e><div class="content" data-v-d8517c5e><div class="outline-marker" data-v-d8517c5e></div><div class="outline-title" role="heading" aria-level="2" data-v-d8517c5e>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8517c5e><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8517c5e> Table of Contents for current page </span><ul class="root" data-v-d8517c5e data-v-74479eb5><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-79cae1a0></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-281cfc61><div class="content-container" data-v-281cfc61><!--[--><!--]--><!----><main class="main" data-v-281cfc61><div style="position:relative;" class="vp-doc _getting_started_led_safety" data-v-281cfc61><div><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>
|
||
<span class="line"><span style="color:#babed8;">→ ~5% 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><h3 id="v4-module-4-leds-2-4-ma-each" tabindex="-1">V4 Module (4 LEDs @ 2.4 mA each) <a class="header-anchor" href="#v4-module-4-leds-2-4-ma-each" aria-label="Permalink to "V4 Module (4 LEDs @ 2.4 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 × (2.4 / 20) = 0.60 mW/sr</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_single = 0.60 / π = 0.19 mW/cm²</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_total = 0.19 × 4 = 0.76 mW/cm²</span></span>
|
||
<span class="line"><span style="color:#babed8;">→ ~8% 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><h3 id="worst-case-high-bin-calculations" tabindex="-1">Worst-Case (High Bin) Calculations <a class="header-anchor" href="#worst-case-high-bin-calculations" aria-label="Permalink to "Worst-Case (High Bin) Calculations""></a></h3><p>Some LEDs may fall into a higher output bin with up to <strong>8 mW/sr @ 20 mA</strong>. We conservatively recalculate:</p><h4 id="v3-max-bin-2-leds-3-2-ma" tabindex="-1">V3 Max Bin (2 LEDs @ 3.2 mA): <a class="header-anchor" href="#v3-max-bin-2-leds-3-2-ma" aria-label="Permalink to "V3 Max Bin (2 LEDs @ 3.2 mA):""></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 × (3.2 / 20) = 1.28 mW/sr</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_single = 1.28 / π = 0.41 mW/cm²</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_total = 0.41 × 2 = 0.81 mW/cm²</span></span>
|
||
<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.4 mA): <a class="header-anchor" href="#v4-max-bin-4-leds-2-4-ma" aria-label="Permalink to "V4 Max Bin (4 LEDs @ 2.4 mA):""></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.96 mW/sr</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_single = 0.96 / π = 0.31 mW/cm²</span></span>
|
||
<span class="line"><span style="color:#babed8;">E_total = 0.31 × 4 = 1.22 mW/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 "Your Responsibilities""></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 "Appendix A – Formula Summary""></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π(1−cosθ) (solid angle of emission)</span></span>
|
||
<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><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></div></div></main><footer class="VPDocFooter" data-v-281cfc61 data-v-67de71aa><!--[--><!--]--><div class="edit-info" data-v-67de71aa><!----><div class="last-updated" data-v-67de71aa><p class="VPLastUpdated" data-v-67de71aa data-v-5be60f87>Last updated: <time datetime="2025-04-19T20:33:36.000Z" data-v-5be60f87></time></p></div></div><nav class="prev-next" data-v-67de71aa><div class="pager" data-v-67de71aa><a class="pager-link prev" href="/getting_started/things_to_know" data-v-67de71aa><span class="desc" data-v-67de71aa>Previous page</span><span class="title" data-v-67de71aa>Things to know before you start</span></a></div><div class="pager" data-v-67de71aa><a class="pager-link next" href="/how_to_build/part_list" data-v-67de71aa><span class="desc" data-v-67de71aa>Next page</span><span class="title" data-v-67de71aa>Parts List</span></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-527a0310 data-v-04a39284><div class="container" data-v-04a39284><p class="message" data-v-04a39284>Released under the MIT License.</p><p class="copyright" data-v-04a39284>Copyright © 2022-present ETVR</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"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\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"EyeTrackVR Docs\",\"description\":\"Official documentation for EyeTrackVR. Fully open-source and affordable VR eye tracking platform.\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":{\"light\":\"/logo_light.png\",\"dark\":\"/logo.svg\",\"alt\":\"EyeTrackVR Logo\"},\"siteTitle\":\"EyeTrackVR Docs\",\"search\":{\"provider\":\"local\"},\"outline\":\"deep\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2022-present ETVR\"},\"nav\":[{\"text\":\"About\",\"items\":[{\"text\":\"About Us\",\"link\":\"/about\"},{\"text\":\"Development Road Map\",\"link\":\"/dev_roadmap\"}]},{\"text\":\"Contact\",\"link\":\"/contact\"}],\"sidebar\":[{\"text\":\"Getting Started\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/getting_started/intro\"},{\"text\":\"Things to know before you start\",\"link\":\"/getting_started/things_to_know\"},{\"text\":\"LED Safety\",\"link\":\"/getting_started/led_safety\"}]},{\"text\":\"How to Build\",\"collapsible\":true,\"items\":[{\"text\":\"Parts List\",\"link\":\"/how_to_build/part_list\"},{\"text\":\"Preparing Cameras\",\"link\":\"/how_to_build/preparing_cameras\"},{\"text\":\"Preparing XIAO Sense ESP32\",\"link\":\"/how_to_build/preparing_xiao\"},{\"text\":\"Preparing V4 LEDs\",\"link\":\"/how_to_build/led_setup\"},{\"text\":\"3D Printed Mounts\",\"link\":\"/how_to_build/3d_printed_mounts\"},{\"text\":\"How to Create your own Camera Mount\",\"link\":\"/how_to_build/creating_your_own_mount\"}]},{\"text\":\"Headset Guides\",\"collapsible\":true,\"items\":[{\"text\":\"What is This?\",\"link\":\"/headset_guides/what_is_this.md\"},{\"text\":\"Valve Index\",\"link\":\"/headset_guides/valve_index.md\"}]},{\"text\":\"Firmware Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/firmware_guide/firmware\"},{\"text\":\"Flashing Tool\",\"link\":\"/firmware_guide/flashing_tool.md\"},{\"text\":\"MDNS\",\"link\":\"/firmware_guide/mdns\"},{\"text\":\"REST API\",\"link\":\"/firmware_guide/rest_api\"}]},{\"text\":\"Software Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Installing and setting up the ETVR App\",\"link\":\"/software_guide/eyetrackvr_app_guide\"},{\"text\":\"Building the app from source\",\"link\":\"/software_guide/build_software\"},{\"text\":\"Setting up OSC recenter/recalibrate\",\"link\":\"/software_guide/osc_setup\"},{\"text\":\"Setting up VRCFT - VRCFT Module\",\"link\":\"/software_guide/VRCFT_tracking_module\"}]},{\"text\":\"Miscellaneous\",\"collapsible\":true,\"items\":[{\"text\":\"JLC3DP 3D Printing Service\",\"link\":\"/misc/jlc3dp\"},{\"text\":\"VR Chat Avatar Setup\",\"link\":\"/misc/vrc_avatar_setup\"},{\"text\":\"FAQ\",\"link\":\"/misc/faq\"}]},{\"text\":\"Development\",\"collapsible\":true,\"items\":[{\"text\":\"Docs\",\"link\":\"/development/docs/dev_docs\"},{\"text\":\"Edit Docs\",\"link\":\"/development/docs/pages\"},{\"text\":\"Standards\",\"link\":\"/development/docs/standards\"}]},{\"text\":\"Archive\",\"collapsible\":true,\"items\":[{\"text\":\"Setup Visual Studio Code environment\",\"link\":\"/firmware_guide/setup_vscode\"},{\"text\":\"Configuring Firmware\",\"link\":\"/firmware_guide/configure_firmware\"},{\"text\":\"Firmware Environments\",\"link\":\"/firmware_guide/environments\"},{\"text\":\"Uploading and Updating the Firmware\",\"link\":\"/firmware_guide/upload_and_update_firmware\"},{\"text\":\"Updating PlatformIO\",\"link\":\"/firmware_guide/update_platformio\"},{\"text\":\"Prepare to solder IR LED PCB V2's\",\"link\":\"/archive/fox_ir_v2_build_instructions\"},{\"text\":\"V3 Full Build Guide\",\"link\":\"/how_to_build/full_build\"},{\"text\":\"Part List (legacy)\",\"link\":\"/how_to_build/parts_list\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/EyeTrackVR\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/kkXYbVykZX\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":true}");</script>
|
||
|
||
</body>
|
||
</html> |