<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hand-Tracking on Vijay Kodam</title><link>https://vijay.eu/tags/hand-tracking/</link><description>Recent content in Hand-Tracking on Vijay Kodam</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 11 Jan 2026 00:00:00 +0300</lastBuildDate><atom:link href="https://vijay.eu/tags/hand-tracking/index.xml" rel="self" type="application/rss+xml"/><item><title>Hand-Gesture 3D Car Viewer</title><link>https://vijay.eu/projects/car-concept/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0300</pubDate><guid>https://vijay.eu/projects/car-concept/</guid><description>&lt;div class="car-concept-container"&gt;
&lt;header class="car-header"&gt;
&lt;div class="car-header__content"&gt;
&lt;h1 class="car-header__title"&gt;Hand-Gesture 3D Car Viewer&lt;/h1&gt;
&lt;p class="car-header__subtitle"&gt;&lt;strong&gt;Uses your camera to detect hand gestures&lt;/strong&gt; - Open hand to rotate, make a fist and move to zoom&lt;/p&gt;
&lt;/div&gt;
&lt;div class="car-header__status"&gt;
&lt;span class="status-badge" id="statusHand"&gt;Hand: Not detected&lt;/span&gt;
&lt;span class="status-badge status-badge--muted" id="statusGesture"&gt;Use mouse or enable hand tracking&lt;/span&gt;
&lt;/div&gt;
&lt;/header&gt;
&lt;div class="viewer-container"&gt;
&lt;canvas id="threeCanvas"&gt;&lt;/canvas&gt;
&lt;div class="loading-overlay" id="loadingOverlay"&gt;
&lt;div class="loading-spinner"&gt;&lt;/div&gt;
&lt;p&gt;Loading 3D model...&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="webcam-preview" id="webcamPreview"&gt;
&lt;div class="webcam-preview__stack"&gt;
&lt;video id="webcam" playsinline autoplay muted&gt;&lt;/video&gt;
&lt;canvas id="overlay2d"&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;button class="webcam-btn" id="btnWebcam" type="button"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" width="16" height="16"&gt;
&lt;path stroke-linecap="round" stroke-linejoin="round" d="M6.827 6.175A2.31 2.31 0 015.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 00-1.134-.175 2.31 2.31 0 01-1.64-1.055l-.822-1.316a2.192 2.192 0 00-1.736-1.039 48.774 48.774 0 00-5.232 0 2.192 2.192 0 00-1.736 1.039l-.821 1.316z" /&gt;
&lt;path stroke-linecap="round" stroke-linejoin="round" d="M16.5 12.75a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zM18.75 10.5h.008v.008h-.008V10.5z" /&gt;
&lt;/svg&gt;
Enable Hand Tracking
&lt;/button&gt;
&lt;div class="webcam-error hidden" id="webcamError"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="instructions" id="instructions"&gt;
&lt;div class="instructions__item"&gt;
&lt;span class="instructions__icon"&gt;🖱️&lt;/span&gt;
&lt;span&gt;Drag to rotate, scroll to zoom&lt;/span&gt;
&lt;/div&gt;
&lt;div class="instructions__item"&gt;
&lt;span class="instructions__icon"&gt;✋&lt;/span&gt;
&lt;span&gt;Open hand: rotate car&lt;/span&gt;
&lt;/div&gt;
&lt;div class="instructions__item"&gt;
&lt;span class="instructions__icon"&gt;✊&lt;/span&gt;
&lt;span&gt;Fist + move: zoom in/out&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Hand-Gesture Cricket</title><link>https://vijay.eu/projects/cricket-bowling/</link><pubDate>Sat, 10 Jan 2026 10:00:00 +0300</pubDate><guid>https://vijay.eu/projects/cricket-bowling/</guid><description>&lt;div class="cricket-bowling-container"&gt;
&lt;header class="cricket-header"&gt;
&lt;div class="brand"&gt;
&lt;div class="brand__title"&gt;Hand-Gesture Cricket&lt;/div&gt;
&lt;div class="brand__subtitle"&gt;&lt;strong&gt;Uses your camera to detect hand gestures&lt;/strong&gt; - Grip, bowl, and hit the wickets with real hand motions!&lt;/div&gt;
&lt;/div&gt;
&lt;div class="status" aria-live="polite"&gt;
&lt;span class="badge badge--phase" id="statusPhase"&gt;Ready&lt;/span&gt;
&lt;span class="badge" id="statusSpeed"&gt;Speed: --&lt;/span&gt;
&lt;span class="badge" id="statusBallType"&gt;--&lt;/span&gt;
&lt;span class="badge badge--score" id="statusScore"&gt;Wickets: 0/0&lt;/span&gt;
&lt;span class="badge badge--muted" id="statusFps"&gt;FPS: --&lt;/span&gt;
&lt;/div&gt;
&lt;/header&gt;
&lt;main class="cricket-layout"&gt;
&lt;section class="panel"&gt;
&lt;div class="panel__header"&gt;
&lt;h2 class="panel__title"&gt;Camera&lt;/h2&gt;
&lt;div class="panel__actions"&gt;
&lt;button class="btn btn--primary" id="btnWebcam" type="button"&gt;Enable webcam&lt;/button&gt;
&lt;button class="btn" id="btnOverlay" type="button" aria-pressed="true"&gt;Overlay: On&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="media"&gt;
&lt;div class="media__stack"&gt;
&lt;video id="webcam" playsinline autoplay muted&gt;&lt;/video&gt;
&lt;canvas id="overlay2d" class="overlay2d" aria-hidden="true"&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;div class="hint" id="gameHint"&gt;
&lt;strong&gt;How to play:&lt;/strong&gt;&lt;br&gt;
1. Show your hand to the camera&lt;br&gt;
2. Make a bowling motion (arm forward/down)&lt;br&gt;
3. Release naturally at the end&lt;br&gt;
4. Try to hit the wickets!
&lt;/div&gt;
&lt;div class="result-display hidden" id="resultDisplay"&gt;
&lt;div class="result-icon" id="resultIcon"&gt;&lt;/div&gt;
&lt;div class="result-text" id="resultText"&gt;&lt;/div&gt;
&lt;div class="result-details" id="resultDetails"&gt;&lt;/div&gt;
&lt;div class="result-hint"&gt;Show hand to bowl again&lt;/div&gt;
&lt;/div&gt;
&lt;div class="error hidden" id="cameraError" role="alert"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="game-stats"&gt;
&lt;div class="stat-row"&gt;
&lt;span class="stat-label"&gt;Fast balls:&lt;/span&gt;
&lt;span class="stat-value" id="statFast"&gt;0&lt;/span&gt;
&lt;/div&gt;
&lt;div class="stat-row"&gt;
&lt;span class="stat-label"&gt;Spin balls:&lt;/span&gt;
&lt;span class="stat-value" id="statSpin"&gt;0&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="debug-panel hidden" id="debugPanel"&gt;
&lt;div class="debug-header"&gt;
&lt;strong&gt;DEBUG MODE&lt;/strong&gt;
&lt;div&gt;
&lt;button class="btn btn--small" id="btnDebugClear" type="button"&gt;Clear Recording&lt;/button&gt;
&lt;button class="btn btn--small" id="btnDebugClose" type="button"&gt;X&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;pre id="debugOutput" style="font-size: 11px; margin: 0; white-space: pre-wrap;"&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;button class="btn btn--small" id="btnDebug" type="button" style="margin-top: 8px;"&gt;Show Debug&lt;/button&gt;
&lt;/section&gt;
&lt;section class="panel"&gt;
&lt;div class="panel__header"&gt;
&lt;h2 class="panel__title"&gt;3D Scene&lt;/h2&gt;
&lt;div class="panel__actions"&gt;
&lt;button class="btn" id="btnReset" type="button"&gt;Reset Game&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="scene"&gt;
&lt;canvas id="threeCanvas"&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;footer class="cricket-footer"&gt;
&lt;span class="muted"&gt;Tip: Good lighting helps hand tracking. Works best on Chrome/Safari.&lt;/span&gt;
&lt;/footer&gt;
&lt;/section&gt;
&lt;/main&gt;
&lt;/div&gt;</description></item></channel></rss>