EyeTrackVR-Docs/development/docs/standards.html
2023-07-18 20:05:19 +00:00

30 lines
40 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Standards Guide | 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.224ec70d.css" as="style">
<script type="module" src="/assets/app.7c3cb36b.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.7384f92b.js">
<link rel="modulepreload" href="/assets/chunks/theme.58e295ef.js">
<link rel="modulepreload" href="/assets/development_docs_standards.md.34f5cc0e.lean.js">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-bd8710d4><!--[--><!--]--><!--[--><span tabindex="-1" data-v-994b33bc></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-994b33bc> Skip to content </a><!--]--><!----><header class="VPNav" data-v-bd8710d4 data-v-b1949460><div class="VPNavBar has-sidebar" data-v-b1949460 data-v-884e8224><div class="container" data-v-884e8224><div class="title" data-v-884e8224><div class="VPNavBarTitle has-sidebar" data-v-884e8224 data-v-2f5df328><a class="title" href="/" data-v-2f5df328><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/logo.svg" alt="EyeTrackVR Logo" data-v-74766fef><!--]--><!--[--><img class="VPImage light logo" src="/logo_light.png" alt="EyeTrackVR Logo" data-v-74766fef><!--]--><!--]--><!--]--><!--[-->EyeTrackVR Docs<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-884e8224><div class="curtain" data-v-884e8224></div><div class="content-body" data-v-884e8224><!--[--><!--]--><div class="VPNavBarSearch search" data-v-884e8224><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><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"><span class="DocSearch-Button-Key">Meta</span><span class="DocSearch-Button-Key">K</span></span></button></div></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-884e8224 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-64c29883><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-64c29883><span class="text" data-v-64c29883><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-64c29883><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-64c29883><div class="VPMenu" data-v-64c29883 data-v-7bffa9cd><div class="items" data-v-7bffa9cd><!--[--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-be8d031a><a class="VPLink link" href="/about" data-v-be8d031a data-v-87683ad2><!--[-->About Us<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-7bffa9cd data-v-be8d031a><a class="VPLink link" href="/dev_roadmap" data-v-be8d031a data-v-87683ad2><!--[-->Development Road Map<!--]--><!----></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/contact" tabindex="0" data-v-c6c3e6d4 data-v-f652bfb4 data-v-87683ad2><!--[-->Contact<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-884e8224 data-v-88042fc7><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-88042fc7 data-v-019e2ece data-v-0a2eba70><span class="check" data-v-0a2eba70><span class="icon" data-v-0a2eba70><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-019e2ece><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-019e2ece><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-884e8224 data-v-08b35e6f data-v-ffd34ab1><!--[--><a class="VPSocialLink" href="https://github.com/EyeTrackVR/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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-884e8224 data-v-47bb42ad data-v-64c29883><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-64c29883><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-64c29883><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-64c29883><div class="VPMenu" data-v-64c29883 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-019e2ece data-v-0a2eba70><span class="check" data-v-0a2eba70><span class="icon" data-v-0a2eba70><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-019e2ece><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-019e2ece><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-ffd34ab1><!--[--><a class="VPSocialLink" href="https://github.com/EyeTrackVR/EyeTrackVR" aria-label="github" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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" href="https://discord.gg/kkXYbVykZX" aria-label="discord" target="_blank" rel="noopener" data-v-ffd34ab1 data-v-ca994af5><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-884e8224 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" data-v-bd8710d4 data-v-9a33564b><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-9a33564b><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-9a33564b><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-9a33564b>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-9a33564b data-v-07aca99e><button data-v-07aca99e>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-bd8710d4 data-v-a2c0de1b><div class="curtain" data-v-a2c0de1b></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-a2c0de1b><span class="visually-hidden" id="sidebar-aria-label" data-v-a2c0de1b> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Getting Started</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/getting_started/intro" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/getting_started/things_to_know" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Things to know before you start</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/getting_started/led_safety" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>LED Safety</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>How to Build</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/full_build" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Full Build Guide</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/parts_list" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Part List</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/how_to_build/creating_your_own_mount" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>How to Create your own Camera Mount</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Firmware Guide</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/setup_vscode" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Setup Visual Studio Code environment</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/configure_firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Configuring Firmware</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/upload_and_update_firmware" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Uploading and Updating the Firmware</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/update_platformio" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Updating PlatformIO</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/environments" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Firmware Environments</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/mdns" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>MDNS</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/firmware_guide/rest_api" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>REST API</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Software Guide</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/eyetrackvr_app_guide" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Installing and setting up the ETVR App</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/build_software" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Building the app from source</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/software_guide/osc_setup" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Setting up OSC recenter/recalibrate</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Miscellaneous</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/misc/vrc_avatar_setup" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>VR Chat Avatar Setup</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/misc/faq" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>FAQ</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0 has-active" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Development</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/dev_docs" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Docs</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/pages" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Edit Docs</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/development/docs/standards" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Standards</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-a2c0de1b><section class="VPSidebarItem level-0" data-v-a2c0de1b data-v-77d7a963><div class="item" role="button" tabindex="0" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><h2 class="text" data-v-77d7a963>Archive</h2><!----></div><div class="items" data-v-77d7a963><!--[--><div class="VPSidebarItem level-1 is-link" data-v-77d7a963 data-v-77d7a963><div class="item" data-v-77d7a963><div class="indicator" data-v-77d7a963></div><a class="VPLink link link" href="/archive/fox_ir_v2_build_instructions" data-v-77d7a963 data-v-87683ad2><!--[--><p class="text" data-v-77d7a963>Prepare to solder IR LED PCB V2's</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-bd8710d4 data-v-7f38fbbe><div class="VPDoc has-sidebar has-aside" data-v-7f38fbbe data-v-5aafa2ac><!--[--><!--]--><div class="container" data-v-5aafa2ac><div class="aside" data-v-5aafa2ac><div class="aside-curtain" data-v-5aafa2ac></div><div class="aside-container" data-v-5aafa2ac><div class="aside-content" data-v-5aafa2ac><div class="VPDocAside" data-v-5aafa2ac data-v-79cae1a0><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-79cae1a0 data-v-c3ff47cc><div class="content" data-v-c3ff47cc><div class="outline-marker" data-v-c3ff47cc></div><div class="outline-title" data-v-c3ff47cc>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-c3ff47cc><span class="visually-hidden" id="doc-outline-aria-label" data-v-c3ff47cc> Table of Contents for current page </span><ul class="root" data-v-c3ff47cc data-v-efc119ee><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-79cae1a0></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-5aafa2ac><div class="content-container" data-v-5aafa2ac><!--[--><!--]--><!----><main class="main" data-v-5aafa2ac><div style="position:relative;" class="vp-doc _development_docs_standards" data-v-5aafa2ac><div><h1 id="standards-guide" tabindex="-1">Standards Guide <a class="header-anchor" href="#standards-guide" aria-label="Permalink to &quot;Standards Guide&quot;"></a></h1><p>Listed here are the standards that are used for the EyeTrackVR project. These standards are used to ensure that the project is consistent and easy to understand.</p><h2 id="code-standards" tabindex="-1">Code Standards <a class="header-anchor" href="#code-standards" aria-label="Permalink to &quot;Code Standards&quot;"></a></h2><h3 id="general" tabindex="-1">General <a class="header-anchor" href="#general" aria-label="Permalink to &quot;General&quot;"></a></h3><p>It is by design that we use a static-site framework for the documentation site. This is to ensure that the documentation is easy to maintain and extend. This is also to ensure that the documentation is easy to understand.</p><p>We have only a few rules for the documentation site:</p><ul><li>All code should be written in English.</li><li>All code should be written in a way that is easy to understand.</li><li>All code should be written in a way that is easy to maintain.</li><li>All code should be written in a way that is easy to extend.</li><li>Our git commit style is to be followed, in english only.</li></ul><h3 id="git-commit-style" tabindex="-1">Git Commit Style <a class="header-anchor" href="#git-commit-style" aria-label="Permalink to &quot;Git Commit Style&quot;"></a></h3><p>We use the <a href="https://www.conventionalcommits.org/en/v1.0.0/" target="_blank" rel="noreferrer">Conventional Commits</a> standard for our git commit style. This is to ensure that our git commits are easy to understand and easy to maintain. This is also to ensure that our git commits are easy to extend.</p><p>Git commits are used to with the <a href="https://semantic-release.gitbook.io/semantic-release/" target="_blank" rel="noreferrer">Semantic Release</a> tool to automatically generate the changelog and versioning for the project. As such, it is important that we follow the Conventional Commits standard, with our own rule customizations.</p><p>The following is a list of the customizations that we have made to the Conventional Commits standard:</p><ul><li>We use the <code>BREAKING CHANGE(S)</code> or <code>BREAKING</code> text to indicate a breaking change.</li></ul><p>Our git commit style is as follows:</p><div class="language-bash line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&lt;</span><span style="color:#A6ACCD;">type</span><span style="color:#89DDFF;">&gt;[</span><span style="color:#A6ACCD;">optional scope</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;">: </span><span style="color:#89DDFF;">&lt;</span><span style="color:#A6ACCD;">description</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">optional body</span><span style="color:#89DDFF;">]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">optional footer(s)</span><span style="color:#89DDFF;">]</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><p>The following is a list of the types that we use:</p><ul><li><code>feat</code>: A new feature.</li><li><code>fix</code>: A bug fix.</li><li><code>docs</code>: Documentation only changes.</li><li><code>style</code>: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc).</li><li><code>refactor</code>: A code change that neither fixes a bug nor adds a feature.</li><li><code>perf</code>: A code change that improves performance.</li><li><code>test</code>: Adding missing or correcting existing tests.</li><li><code>build</code>: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm, yarn, actions).</li><li><code>ci</code>: Changes to our CI configuration files and scripts (example scopes: GH-Actions, yml, YAML).</li><li><code>chore</code>: Other changes that don&#39;t modify src or test files.</li><li><code>revert</code>: Reverts a previous commit.</li><li><code>BREAKING CHANGE</code>: Indicate a breaking change.</li><li><code>no-release</code>: This commit will not trigger a release.</li></ul><p>An example of our git commit style is as follows:</p><div class="language-bash line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">feat:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">add</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">a</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">feature</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># this is the commit title</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFCB6B;">-</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">added</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">thing</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># some detail about the new thing</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFCB6B;">BREAKING</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">CHANGE:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">this</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">a</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">breaking</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">change</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">#this line is optionaland only used if needed</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></div></div></main><footer class="VPDocFooter" data-v-5aafa2ac data-v-31cb5067><!--[--><!--]--><div class="edit-info" data-v-31cb5067><!----><div class="last-updated" data-v-31cb5067><p class="VPLastUpdated" data-v-31cb5067 data-v-f00606ba>Last updated: <time datetime="2023-03-03T18:30:00.000Z" data-v-f00606ba></time></p></div></div><div class="prev-next" data-v-31cb5067><div class="pager" data-v-31cb5067><a class="pager-link prev" href="/development/docs/pages" data-v-31cb5067><span class="desc" data-v-31cb5067>Previous page</span><span class="title" data-v-31cb5067>Edit Docs</span></a></div><div class="has-prev pager" data-v-31cb5067><a class="pager-link next" href="/archive/fox_ir_v2_build_instructions" data-v-31cb5067><span class="desc" data-v-31cb5067>Next page</span><span class="title" data-v-31cb5067>Prepare to solder IR LED PCB V2's</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-bd8710d4 data-v-2425ede7><div class="container" data-v-2425ede7><p class="message" data-v-2425ede7>Released under the MIT License.</p><p class="copyright" data-v-2425ede7>Copyright © 2022-present ETVR</p></div></footer><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"misc_faq.md\":\"bc5df512\",\"index.md\":\"8a593e29\",\"how_to_build_parts_list.md\":\"954cc6fc\",\"development_docs_pages.md\":\"a16f2e91\",\"development_docs_standards.md\":\"34f5cc0e\",\"dev_roadmap.md\":\"1d67b1f2\",\"contact.md\":\"8b34e956\",\"how_to_build_creating_your_own_mount.md\":\"a0eff1b7\",\"software_guide_osc_setup.md\":\"a5e43cc8\",\"software_guide_eyetrackvr_app_guide.md\":\"dfcbc709\",\"firmware_guide_environments.md\":\"a939c975\",\"firmware_guide_mdns.md\":\"6911a871\",\"firmware_guide_rest_api.md\":\"ab0c274d\",\"firmware_guide_firmware.md\":\"2acb6454\",\"firmware_guide_upload_and_update_firmware.md\":\"72da2ad7\",\"getting_started_intro.md\":\"8a7af83f\",\"firmware_guide_setup_vscode.md\":\"5916e117\",\"firmware_guide_update_platformio.md\":\"9f4a42e7\",\"development_docs_dev_docs.md\":\"129593e0\",\"archive_fox_ir_v2_build_instructions.md\":\"4968d89f\",\"software_guide_build_software.md\":\"df6914a0\",\"misc_vrc_avatar_setup.md\":\"fb8562d6\",\"about.md\":\"c4358067\",\"getting_started_things_to_know.md\":\"dd5287e8\",\"how_to_build_full_build.md\":\"f2c25978\",\"firmware_guide_configure_firmware.md\":\"1156a298\",\"getting_started_led_safety.md\":\"af9fee8d\"}")
__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\",\"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\":\"Full Build Guide\",\"link\":\"/how_to_build/full_build\"},{\"text\":\"Part List\",\"link\":\"/how_to_build/parts_list\"},{\"text\":\"How to Create your own Camera Mount\",\"link\":\"/how_to_build/creating_your_own_mount\"}]},{\"text\":\"Firmware Guide\",\"collapsible\":true,\"items\":[{\"text\":\"Introduction\",\"link\":\"/firmware_guide/firmware\"},{\"text\":\"Setup Visual Studio Code environment\",\"link\":\"/firmware_guide/setup_vscode\"},{\"text\":\"Configuring Firmware\",\"link\":\"/firmware_guide/configure_firmware\"},{\"text\":\"Uploading and Updating the Firmware\",\"link\":\"/firmware_guide/upload_and_update_firmware\"},{\"text\":\"Updating PlatformIO\",\"link\":\"/firmware_guide/update_platformio\"},{\"text\":\"Firmware Environments\",\"link\":\"/firmware_guide/environments\"},{\"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\":\"Miscellaneous\",\"collapsible\":true,\"items\":[{\"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\":\"Prepare to solder IR LED PCB V2's\",\"link\":\"/archive/fox_ir_v2_build_instructions\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/EyeTrackVR/EyeTrackVR\"},{\"icon\":\"discord\",\"link\":\"https://discord.gg/kkXYbVykZX\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":true}")</script>
</body>
</html>