mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-09-26 23:09:15 +08:00
27 lines
54 KiB
HTML
27 lines
54 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>VRCFT ETVR Tracking module, or simply the ETVR tracking module | 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/chunks/index.c1fed1bd.js">
|
||
<link rel="modulepreload" href="/assets/software_guide_VRCFT_tracking_module.md.d148b9dc.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" 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 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>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 _software_guide_VRCFT_tracking_module" data-v-281cfc61><div><h1 id="vrcft-etvr-tracking-module-or-simply-the-etvr-tracking-module" tabindex="-1">VRCFT ETVR Tracking module, or simply the ETVR tracking module <a class="header-anchor" href="#vrcft-etvr-tracking-module-or-simply-the-etvr-tracking-module" aria-label="Permalink to "VRCFT ETVR Tracking module, or simply the ETVR tracking module""></a></h1><h2 id="what-is-this" tabindex="-1">What is this? <a class="header-anchor" href="#what-is-this" aria-label="Permalink to "What is this?""></a></h2><p>VRCFT ETVR Tracking module is an extension for VRCFT. It allows ETVR to send out tracking data and have it converted to parameters expected by VRCFT and avatars compatible with VRCFT.</p><p>In effect, ETVR will be compatible with whichever game or program that supports VRCFT, thanks to this module.</p><p>It is required for all avatrs that are setup to use Unified Expression(UE) or V2 parameters, optional for ones setup with so-called legacy or v1 parameters.</p><h2 id="what-do-i-need-and-how-do-i-set-this-up" tabindex="-1">What do I need and how do I set this up? <a class="header-anchor" href="#what-do-i-need-and-how-do-i-set-this-up" aria-label="Permalink to "What do I need and how do I set this up?""></a></h2><p>To make ETVR work with VRCFT, you'll need two things. VRCFT itself, and the tracking module.</p><h3 id="required-programs-files" tabindex="-1">Required programs / Files <a class="header-anchor" href="#required-programs-files" aria-label="Permalink to "Required programs / Files""></a></h3><h4 id="vrcft" tabindex="-1">VRCFT <a class="header-anchor" href="#vrcft" aria-label="Permalink to "VRCFT""></a></h4><p>To get VRCFT head over to: <a href="https://docs.vrcft.io/docs/intro/getting-started" target="_blank" rel="noreferrer">their docs page!</a></p><h4 id="etvr-module" tabindex="-1">ETVR Module <a class="header-anchor" href="#etvr-module" aria-label="Permalink to "ETVR Module""></a></h4><p>Once you've installed VRCFT, you can find the most recent version of the module in the registry.</p><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/AKsgEyy.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/AKsgEyy.png" alt="Screenshot showcasing the VRCFT module registry, with ETVR Tracking Module selected" style="max-width: 600px;"></a><!----></figure></div><p>Clicking on <code>install</code> will download and load the module, VRCFT will now be setup to listen for ETVR data. That's it!</p><h3 id="setting-up-etvr-to-use-the-module" tabindex="-1">Setting up ETVR to use the module <a class="header-anchor" href="#setting-up-etvr-to-use-the-module" aria-label="Permalink to "Setting up ETVR to use the module""></a></h3><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/ectyHfl.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/ectyHfl.png" alt="Screenshot showcasing the settings page of ETVR, explaining how to setup the VRCFT module" style="max-width: 600px;"></a><!----></figure></div><ul><li>Open <code>settings</code> tab</li><li>Under OSC section select <code>Use the ETVR Module</code></li><li>Select the desired parameters - V1 or V2 (UE)</li><li>Go back into the tracking tab</li></ul><p>Settings will apply automatically, no need to change port or restart the app. ETVR will automatically start sending the data to the module.</p><h3 id="sending-the-tracking-data-to-vrcft-running-on-a-separate-pc" tabindex="-1">Sending the tracking data to VRCFT running on a separate PC. <a class="header-anchor" href="#sending-the-tracking-data-to-vrcft-running-on-a-separate-pc" aria-label="Permalink to "Sending the tracking data to VRCFT running on a separate PC.""></a></h3><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/rQPXrER.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/rQPXrER.png" alt="Screenshot showcasing the settings page of ETVR, explaining how to setup ETVR to talk to a different PC" style="max-width: 600px;"></a><!----></figure></div><p>If you're running a hybrid setup where one machine does all of the ETVR tracking, and the other has VRCFT and other software running, you'll need to adjust the settings a bit.</p><p>First, make sure that both machines are on the same network and they can see each other. If they're connected via Ethernet to the same router, or to the same WiFi network, things should just work.</p><p>Next, find out that's the IP address of the machine running VRCFT. For how to, refer to <a href="https://support.microsoft.com/en-us/windows/find-your-ip-address-in-windows-f21a9bbc-c582-55cd-35e0-73431160a1b9" target="_blank" rel="noreferrer">Microsoft's documentation</a></p><p>With that, head over to ETVR, select the <code>VRCFT Module Settings tab</code>. Notice the <code>VRCFT Module listening IP</code> section. By default it's set to <code>127.0.0.1</code>, change it to the IP the PC that runs VRCFT.</p><h3 id="reseting-the-module-to-default-settings-in-case-something-went-wrong" tabindex="-1">Reseting the module to default settings in case something went wrong. <a class="header-anchor" href="#reseting-the-module-to-default-settings-in-case-something-went-wrong" aria-label="Permalink to "Reseting the module to default settings in case something went wrong.""></a></h3><div align="center" class="mb-4"><figure><a class="no_icon" target="_blank" rel="noopener" href="https://i.imgur.com/lUrNBHV.png"><img class="docimage max-w-full h-auto rounded-lg" src="https://i.imgur.com/lUrNBHV.png" alt="Screenshot showcasing the settings page of ETVR, explaining how to reset the ETVR Module" style="max-width: 600px;"></a><!----></figure></div><p>This is also taken care of by the app, simply make sure that VRCFT is running and the ETVR module got loaded in.</p><p>Then, in ETVR head back over to <code>VRCFT Module Settings tab</code> and hit <code>Reset Settings to default</code>.</p><p>This will reset the module's settings to default values for both - ETVR and VRCFT.</p><h3 id="there-s-a-breaking-change-reported-what-does-that-mean-what-do-i-do" tabindex="-1">There's a breaking change reported, what does that mean? What do I do? <a class="header-anchor" href="#there-s-a-breaking-change-reported-what-does-that-mean-what-do-i-do" aria-label="Permalink to "There's a breaking change reported, what does that mean? What do I do?""></a></h3><p>When we say there's a breaking change, we mean that something changed so drastically that there's a high chance of the module failing to load. This is a very rare thing, usually happens when settings get modified so much that they're no longer compatible.</p><p>In such cases, deleting the module's settings file is enough. Check the FAQ section - Where's the module's configuration file? For locating and deleting it.</p><h2 id="dev-version-of-the-module-for-testing" tabindex="-1">Dev version of the module for testing <a class="header-anchor" href="#dev-version-of-the-module-for-testing" aria-label="Permalink to "Dev version of the module for testing""></a></h2><p>Sometimes, we'll have a new version of the module ready for test, or a special one with a lot of additional logging to help us debug some stuff on your end. This version won't be available in the registry right away so how you install it?</p><ol><li>Uninstall any pre-existing EVT Modules:</li></ol><p>Uninstall your current ETVR Module installation.</p><p>Similarly to installing it for the first time, navigate to VRCFT's module registry, find the ETVR Module and hit uninstall.</p><ol start="2"><li>Download the latest build:</li></ol><p>Download the latest release / pre-release from <a href="https://github.com/EyeTrackVR/ETVRTrackingModule/releases" target="_blank" rel="noreferrer">the repo</a> or from the discord.</p><ol start="3"><li>Install the development version:</li></ol><p>Navigate to:</p><p><code>C:\Users\<Your PC name>\AppData\Roaming\VRCFaceTracking\CustomLibs</code></p><p>And place the module there. If <code>CustomLibs</code> doesn't exist yet, create it. VRCFT will use it to load the development version of the module next time you launch the app.</p><h3 id="building-from-source" tabindex="-1">Building from source <a class="header-anchor" href="#building-from-source" aria-label="Permalink to "Building from source""></a></h3><h4 id="download-the-etvr-module-source-from-github" tabindex="-1">Download the ETVR Module source from github <a class="header-anchor" href="#download-the-etvr-module-source-from-github" aria-label="Permalink to "Download the ETVR Module source from github""></a></h4><p>First, just like you'd do with the apps source, download it from github. Either via downloading and extracting a zip or by using <code>git clone</code>.</p><h4 id="donwload-the-latest-vrcft-source" tabindex="-1">Donwload the latest VRCFT Source <a class="header-anchor" href="#donwload-the-latest-vrcft-source" aria-label="Permalink to "Donwload the latest VRCFT Source""></a></h4><p>Download the VRCFT Source from their <a href="https://github.com/benaclejames/VRCFaceTracking" target="_blank" rel="noreferrer">github</a>. It's important to put next to the ETVR module. Your directory should look more or less like this:</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;">parent_directory</span></span>
|
||
<span class="line"><span style="color:#babed8;"> - ETVR Module</span></span>
|
||
<span class="line"><span style="color:#babed8;"> - VRCFT Repo</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></div></div><p>Building the module requires some of the VRCFT stuff to be present, namely the Core directory. To make it easier to compile, we've set the project up so that it will look for it, next to its own directory.</p><h4 id="install-visual-studio-or-jetbrains-rider-and-open-the-project" tabindex="-1">Install Visual Studio or Jetbrains Rider, and open the project <a class="header-anchor" href="#install-visual-studio-or-jetbrains-rider-and-open-the-project" aria-label="Permalink to "Install Visual Studio or Jetbrains Rider, and open the project""></a></h4><p>Whichever IDE you prefer, both just work, both make it easier to work with the source code.</p><p>Once installed, open the project in them and wait for everything to load.</p><h4 id="building-the-module" tabindex="-1">Building the module <a class="header-anchor" href="#building-the-module" aria-label="Permalink to "Building the module""></a></h4><p>That's the last step, now we just need to verify that everything is setup correctly. Click on build, or hit <code>ctrl+b</code> and watch the output.</p><p>It should build just fine and the resulting file should get copied to the VRCFT CustomModules` directory.</p><p>Note, the copying <strong>will</strong> fail when VRCFT is running. If it does, close VRCFT and hit build again, this time only the copy step will be executed</p><h2 id="faq" tabindex="-1">FAQ <a class="header-anchor" href="#faq" aria-label="Permalink to "FAQ""></a></h2><h3 id="where-s-the-module-s-configuration-file" tabindex="-1">Where's the module's configuration file? <a class="header-anchor" href="#where-s-the-module-s-configuration-file" aria-label="Permalink to "Where's the module's configuration file?""></a></h3><p>In the rare cases where you need to modify the configuration file, here's how to find it:</p><p>Since CRVFT is an UWP app and those behave quite a bit differently than regular apps, there's no easy way to access that file. Instead, you'll need to search on your <code>C:/</code> drive for <code>'ETVRModuleConfig.json</code> and it should show up.</p><h3 id="what-do-the-fields-in-this-file-mean" tabindex="-1">WHat do the fields in this file mean? <a class="header-anchor" href="#what-do-the-fields-in-this-file-mean" aria-label="Permalink to "WHat do the fields in this file mean?""></a></h3><p>Range explanation: <code>0</code> - fully closed, <code>1</code> - fully open.</p><ul><li><p><code>OutputMultiplier</code>: Defines by how much the output should be multiplied, it helps with making your tracking less or more expressive. <code>1</code> by default, <code>[0 - 2]</code> range.</p></li><li><p><code>PortNumber</code>: the port under which the module will be listening for OSC messages, by default <code>8889</code></p></li><li><p><code>ShouldEmulateEyeWiden</code>: Toggle for emulating eye widen, think surprised face. On by default, will at <code>0.97</code> of fully open eye</p></li><li><p><code>ShouldEmulateEyeSquint</code>: Toggle for emulating squinting, think shutting your eyes with a bit of force. On by default, will activate at <code>0.05</code> of eye openness.</p></li><li><p><code>ShouldEmulateEyebrows</code>: Togggle for emulating eyebrow movement, depending on eye openness, the module will try and move the avis eye brows a little. On by default at <code>0.89</code>, range <code>[0 - 1]</code></p></li><li><p><code>EyebrowThresholdRising</code>: Defines when eyebrow emulation should kick in, by default at <code>0.89</code>, range <code>[0 - 1]</code></p></li><li><p><code>EyebrowThresholdLowering</code>: Defines when eyebrow emulation should kick in but in the opposite direction, by default at <code>0.06</code>, range <code>[0 - 1]</code></p></li><li><p><code>SqueezeThresholdV1</code> - Defines when squeeze emulation should begin, and how "fast" should it be. By default, <code>[0.06, 0.51]</code>, with range first: <code>[0 - 1]</code>, second: <code>[0 - 2]</code>. This is used for v1 or legacy parameters</p></li></ul><p>-<code>SqueezeThresholdV2</code> - Defines when squeeze emulation should begin, and how "fast" should it be. By default, <code>[0.06, -0.99]</code>, with range first: <code>[0 - 1]</code>, second: <code>[-2 - 0]</code>. This is used for v2 or Unified Expressions parameters</p><ul><li><p><code>WidenThresholdV1</code> - Defines when Widen emulation should begin, and how "fast" should it be. By default, <code>[0.93, 1.01]</code>, with range first: <code>[0 - 1]</code>, second: <code>[0 - 2]</code>. This is used for v1 or legacy parameters</p></li><li><p><code>WidenThresholdV2</code> - Defines when widen emulation should begin, and how "fast" should it be. By default, <code>[0.96, 1.04]</code>, with range first: <code>[0 - 1]</code>, second: <code>[0 - 2]</code>. This is used for v2 or Unified Expressions parameters</p></li></ul><p>To better explain how Widen / Squeeze emulation thresholds work: They're implemented via a simple smoothstep, you can play around with it <a href="https://thebookofshaders.com/glossary/?search=smoothstep" target="_blank" rel="noreferrer">here</a>, simply plug in the values in <code>smoothstep()</code> and watch how the graph reacts.</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="2024-07-13T18:00:02.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="/software_guide/osc_setup" data-v-67de71aa><span class="desc" data-v-67de71aa>Previous page</span><span class="title" data-v-67de71aa>Setting up OSC recenter/recalibrate</span></a></div><div class="pager" data-v-67de71aa><a class="pager-link next" href="/misc/jlc3dp" data-v-67de71aa><span class="desc" data-v-67de71aa>Next page</span><span class="title" data-v-67de71aa>JLC3DP 3D Printing Service</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> |