<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GlTF on Vijay Kodam</title><link>https://vijay.eu/tags/gltf/</link><description>Recent content in GlTF 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/gltf/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></channel></rss>