<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Barehands Hand Tracking on RockB</title><link>https://baeseokjae.github.io/tags/barehands-hand-tracking/</link><description>Recent content in Barehands Hand Tracking on RockB</description><image><title>RockB</title><url>https://baeseokjae.github.io/images/og-default.png</url><link>https://baeseokjae.github.io/images/og-default.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 07 Sep 2026 22:01:54 +0000</lastBuildDate><atom:link href="https://baeseokjae.github.io/tags/barehands-hand-tracking/index.xml" rel="self" type="application/rss+xml"/><item><title>Barehands: Webcam-Powered Hand Tracking to Control Your Screen Without a Headset</title><link>https://baeseokjae.github.io/posts/barehands-hand-tracked-control/</link><pubDate>Mon, 07 Sep 2026 22:01:54 +0000</pubDate><guid>https://baeseokjae.github.io/posts/barehands-hand-tracked-control/</guid><description>Control your screen with nothing but your hands and a webcam. Barehands gives zero-install, touchless control over a glass board you and an AI can use.</description><content:encoded><![CDATA[<p>Barehands is a free, open-source project that turns a standard webcam and the Chrome browser into a glass board you control with your hands — no headset, no controllers, no gloves. It uses Google MediaPipe to track your hands in real time and lets you tap, drag, scale, and throw items across your screen, even wiring in an AI that sees, hears, and acts through the same interface.</p>
<h2 id="what-is-barehands-and-why-it-matters">What Is Barehands and Why It Matters</h2>
<p>Barehands (jaredrhod/barehands on GitHub) is a webcam-based hand-tracking interface that lets you control a 3D &ldquo;glass board&rdquo; on your screen with natural hand gestures. Created in mid-August 2026, it already holds roughly 907 GitHub stars and about 199 forks, according to the GitHub API as of September 7, 2026 — remarkable velocity for a project less than a month old.</p>
<p>The core idea is deliberately simple: <strong>a body waiting for a brain.</strong> Barehands is a zero-install spatial interface — you gesture to move, scale, and arrange objects, and you can attach an AI to that same board. The AI gets a face (the &ldquo;ring&rdquo;), hands (board scripts), and a voice — turning a webcam setup into a touchless control surface for both you and an autonomous agent.</p>
<p>This matters because the &ldquo;AI computer use&rdquo; category is exploding. Tools like AIHawk (30,000+ stars) and e2b&rsquo;s open-computer-use (2,200+ stars) treat AI as the brain that acts on the screen programmatically. Barehands occupies a different lane: it is a <em>human</em> gestural interface whose board an AI can also inhabit.</p>
<h2 id="how-barehands-works-under-the-hood">How Barehands Works Under the Hood</h2>
<p>The genius of Barehands is what it does <strong>not</strong> require. There is no pip install, no compiled binary, no GPU, and no dedicated hardware beyond the camera that is already in your laptop.</p>
<p>The architecture breaks down like this:</p>
<ul>
<li><strong>Hand tracking:</strong> Google MediaPipe loads from a CDN on first run and detects your hand landmarks in the webcam feed.</li>
<li><strong>Rendering:</strong> three.js (also from a CDN) renders the 3D glass board and the objects you can grab.</li>
<li><strong>Server:</strong> a standard-library-only Python server (<code>python3 server.py</code>, or <code>run.bat</code> on Windows) serves the page at <code>http://127.0.0.1:8794/stage.html</code>.</li>
<li><strong>Camera geometry:</strong> every gesture threshold is measured as a <em>shape ratio</em> against your own hand&rsquo;s span and geometry, not an absolute pixel size. That means it works at any camera distance and on any hand size.</li>
</ul>
<p>The only real system requirement is <strong>Python 3.9+</strong> plus a webcam and Chrome. Everything else is fetched on demand.</p>
<h3 id="why-no-installs-matters-for-computer-use">Why &ldquo;No Installs&rdquo; Matters for Computer Use</h3>
<p>Traditional webcam virtual-mouse projects need OpenCV, PyAutoGUI, and a stack of native dependencies installed to your machine. Barehands sidesteps the entire dependency tree. Because the computer-vision and rendering logic run in the browser and server, there is nothing to compile and nothing that can silently break across OS updates.</p>
<h2 id="install-and-first-run">Install and First Run</h2>
<p>Getting started takes about two minutes and does not require touching your system Python packages.</p>
<ol>
<li>
<p><strong>Clone the repository:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/jaredrhod/barehands
</span></span><span style="display:flex;"><span>cd barehands
</span></span></code></pre></div></li>
<li>
<p><strong>Start the server</strong> (Python 3.9+):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python3 server.py
</span></span></code></pre></div><p>On Windows, double-click <code>run.bat</code> instead.</p>
</li>
<li>
<p><strong>Open Chrome</strong> and go to <code>http://127.0.0.1:8794/stage.html</code>. Allow camera access when prompted.</p>
</li>
<li>
<p><strong>First run downloads</strong> MediaPipe and three.js from CDNs, so keep the network connected the first time.</p>
</li>
</ol>
<p>That is it. You are now facing a glass board you can manipulate with your hands.</p>
<h2 id="the-gesture-language-tap-pinch-drag-scale-throw-clap-and-the-claw">The Gesture Language: Tap, Pinch-Drag, Scale, Throw, Clap, and the Claw</h2>
<p>Barehands&rsquo; gesture set is small but expressive, and every motion maps to how you would naturally grab a real object.</p>
<table>
  <thead>
      <tr>
          <th>Gesture</th>
          <th>Motion</th>
          <th>What It Does</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Tap</strong></td>
          <td>Quick pinch</td>
          <td>Open or close an item</td>
      </tr>
      <tr>
          <td><strong>Pinch-Drag</strong></td>
          <td>Pinch and move</td>
          <td>Move items across the board</td>
      </tr>
      <tr>
          <td><strong>Two hands / Scale</strong></td>
          <td>Pinch with both hands and spread</td>
          <td>Scale items up or down</td>
      </tr>
      <tr>
          <td><strong>Flick</strong></td>
          <td>Fast wrist throw</td>
          <td>Throw items to reposition</td>
      </tr>
      <tr>
          <td><strong>Clap</strong></td>
          <td>Clap both hands</td>
          <td>Clear the board</td>
      </tr>
      <tr>
          <td><strong>The Claw</strong></td>
          <td>Curled-finger grip</td>
          <td>Rip items across the screen</td>
      </tr>
      <tr>
          <td><strong>Empty pinch-drag</strong></td>
          <td>Pinch with no item selected</td>
          <td>Scrub a 3D model&rsquo;s exploded view</td>
      </tr>
  </tbody>
</table>
<p>The &ldquo;claw&rdquo; is the signature interaction — instead of dragging a virtual touchpoint, you grip an item and yank it across the glass board, which feels far more physical than pointer emulation.</p>
<p>If a gesture feels unreliable, remember that all thresholds are computed as ratios against your hand&rsquo;s geometry, so first adjust your distance to the camera and your hand&rsquo;s position in frame before changing sensitivity. The project&rsquo;s <code>TROUBLESHOOTING.md</code> covers the common failure modes in detail.</p>
<h2 id="wiring-in-your-ai-as-the-brain">Wiring in Your AI as the Brain</h2>
<p>The differentiator that earned Barehands its rapid following is how easily an AI can join the board. The project deliberately markets the tool as a body, and it provides the joints to attach a brain.</p>
<ul>
<li><strong>The ring</strong> is the AI&rsquo;s face. It reads a state file at <code>state/state</code>, cycling through <code>idle</code>, <code>listening</code>, <code>thinking</code>, and <code>speaking</code> so you can see what the AI is doing.</li>
<li><strong><code>board.sh</code> and <code>board-state.sh</code></strong> become the AI&rsquo;s hands and eyes — scripts that let the agent manipulate and observe the board.</li>
<li><strong>Claude Code hooks</strong> wire seamlessly: the setup builder in <code>barehands.md</code> adds hooks to <code>settings.json</code> where <code>UserPromptSubmit</code> writes <code>thinking</code> to <code>state/state</code> and <code>Stop</code> writes <code>idle</code>.</li>
<li><strong>Crash safety:</strong> a server-side <code>state_timeout_s</code> (10 minutes by default) settles the ring back to a sane state if the AI session crashes mid-thought.</li>
<li><strong>Safety rails:</strong> a server-side <strong>action allowlist</strong> and a <code>media/</code> airlock jail constrain what the AI can do and touch, which is what makes it safe to hand an autonomous agent this kind of control.</li>
</ul>
<p>You can drive the same board with a local LLM, cron jobs, a Stream Deck, or any process that can read and write <code>state/state</code>. The brain is interchangeable — Barehands does not care which one you pick.</p>
<h2 id="advanced-obs-streaming-portrait-mode-4k-and-troubleshooting">Advanced: OBS Streaming, Portrait Mode, 4K, and Troubleshooting</h2>
<p>Beyond the basics, Barehands is designed to be part of a live setup:</p>
<ul>
<li><strong>OBS streaming:</strong> because the board renders in a browser tab, you can capture it directly into OBS as a window or browser source — no extra capture software needed.</li>
<li><strong>Portrait / 9:16:</strong> the board works in vertical aspect ratios, handy for phone or short-form video capture.</li>
<li><strong>4K output:</strong> the rendering pipeline can output high-resolution frames for clean, crisp recordings.</li>
<li><strong>Troubleshooting:</strong> consult <code>TROUBLESHOOTING.md</code> first. Since every threshold is a shape ratio, the same tuning advice — adjust camera distance, raise your hand in frame, and ensure even lighting — solves the majority of tracking problems.</li>
</ul>
<h2 id="barehands-vs-traditional-virtual-mouse-projects-and-ai-computer-use-tools">Barehands vs Traditional Virtual-Mouse Projects and AI Computer-Use Tools</h2>
<p>Barehands is frequently compared to two other families of tools, but it is not a drop-in replacement for either.</p>
<table>
  <thead>
      <tr>
          <th>Category</th>
          <th>Example Project</th>
          <th>Approach</th>
          <th>Barehands vs It</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Virtual mouse (cursor emulation)</strong></td>
          <td>NonMouse (200+ stars)</td>
          <td>Hands rest on desk; acts as a low-fatigue cursor</td>
          <td>NonMouse is better for pure mouse-cursor control; Barehands is a spatial glass board, not a cursor replace</td>
      </tr>
      <tr>
          <td><strong>Virtual mouse (classic)</strong></td>
          <td>Gesture-Controlled-Virtual-Mouse (856+ stars)</td>
          <td>MediaPipe + OpenCV + PyAutoGUI, hand becomes cursor</td>
          <td>The &ldquo;cursor emulation&rdquo; school vs Barehands&rsquo; &ldquo;spatial manipulation + AI body&rdquo; school</td>
      </tr>
      <tr>
          <td><strong>AI computer use</strong></td>
          <td>AIHawk (30k+ stars)</td>
          <td>AI browser/computer-use agent acts on screen</td>
          <td>Machine-driven automation vs a human gestural interface; Barehands&rsquo; is human-first</td>
      </tr>
      <tr>
          <td><strong>AI computer use (open LLM)</strong></td>
          <td>e2b open-computer-use (2.2k+ stars)</td>
          <td>AI acts via open-source LLMs in a Desktop Sandbox</td>
          <td>Barehands differs by being an AI-inhabitable gesture surface</td>
      </tr>
  </tbody>
</table>
<p>The practical takeaway: if all you want is to move the mouse with your hand, a virtual-mouse project fits better. If you want a touchless, spatial glass board that a human <em>and</em> an AI can both manipulate, Barehands is the tool.</p>
<h2 id="the-jarvis-stack-memory-voice-face-and-hands-together">The Jarvis Stack: Memory, Voice, Face, and Hands Together</h2>
<p>Barehands is rarely deployed in isolation. In the wider ecosystem it slots into a four-part &ldquo;Jarvis stack&rdquo; assembled via <code>fullstack-agent</code>:</p>
<ul>
<li><strong>ai-memory-vault</strong> — the memory</li>
<li><strong>backtalk</strong> — the voice</li>
<li><strong>ai-visualizer</strong> — the face</li>
<li><strong>barehands</strong> — the hands</li>
</ul>
<p>You can also point it at an existing <strong>Obsidian vault</strong> and use it as a notes orb with zero plugin setup — an Obsidian vault is just a folder of markdown, so a hand-tracked glass board over that folder works as-is.</p>
<h2 id="licensing-and-where-to-go-next">Licensing and Where to Go Next</h2>
<p>Barehands is licensed under <strong>AGPL-3.0-or-later</strong>. In practical terms:</p>
<ul>
<li>You are free to <strong>use and sell it commercially inside your own business</strong>.</li>
<li>Any redistributed or modified <strong>SaaS</strong> version must <strong>stay open</strong>, with source available to users.</li>
<li><strong>Closed-source commercial use</strong> requires contacting <code>license@jaredrhod.com</code> for a separate arrangement.</li>
</ul>
<p>To go further, clone the repo at <code>github.com/jaredrhod/barehands</code>, read the <code>barehands.md</code> setup builder to wire in your AI, and check <code>TROUBLESHOOTING.md</code> before tuning gestures.</p>
<h2 id="faq">FAQ</h2>
<p><strong>Q1: Do I need a VR headset or special hardware to use Barehands?</strong>
No. Barehands runs entirely on a standard webcam and the Chrome browser. There is no headset, no controllers, and no gloves — the only hardware requirement is the camera already built into your laptop.</p>
<p><strong>Q2: Does Barehands require installing heavy dependencies like OpenCV?</strong>
No. The server uses Python&rsquo;s standard library only (Python 3.9+ required), and both Google MediaPipe and three.js load from CDNs on first run. There is nothing to compile and no pip install.</p>
<p><strong>Q3: What is the difference between Barehands and a virtual mouse?</strong>
A virtual-mouse project like NonMouse or Gesture-Controlled-Virtual-Mouse turns your hand into a literal cursor. Barehands instead gives you a spatial &ldquo;glass board&rdquo; you manipulate with gestures — and it is also inhabited by an AI, which cursor tools are not.</p>
<p><strong>Q4: Can I connect an AI like Claude to Barehands?</strong>
Yes. The <code>barehands.md</code> setup builder wires Claude Code in via hooks in <code>settings.json</code> — <code>UserPromptSubmit</code> writes <code>thinking</code> to the ring state and <code>Stop</code> writes <code>idle</code>. The ring then shows the AI&rsquo;s state, and <code>board.sh</code> gives it hands and eyes on the board.</p>
<p><strong>Q5: Is Barehands free to use commercially?</strong>
Yes, under the AGPL-3.0-or-later license. You can use and sell it inside your own business for free. If you distribute or modify it as a SaaS, it must stay open-source; closed-source commercial use requires contacting <a href="mailto:license@jaredrhod.com">license@jaredrhod.com</a>.</p>
]]></content:encoded></item></channel></rss>