mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-11-04 14:49:44 +08:00
41 lines
51 KiB
HTML
41 lines
51 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.b05231e0.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.cd06fb64.js">
|
||
<link rel="modulepreload" href="/assets/getting_started_led_safety.md.78277ff3.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 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/v4_full_build" data-v-f0f37ff4><!--[--><p class="text" data-v-f0f37ff4>V4 Full Build Guide WIP</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>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't use different emitters, don'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 "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 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 "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-05-01T15:23:08.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("{\"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\"}");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\":\"V4 Full Build Guide WIP\",\"link\":\"/how_to_build/v4_full_build\"}]},{\"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> |