CuriousBit · Ajay Walia
← Back to the article
Project Screenshots

Glide, on the bench

Seven frames from the build before it went into cold storage — the Xcode project and its CHANGELOG, the AI agent wrestling with the scroll logic, the full five-step onboarding flow, and the live debug HUD tracking a hand at 30 fps. Click any image to enlarge.

Xcode showing the Glide source tree and CHANGELOG.md
01 · XCODE · PROJECT STRUCTURE

A real project, not a script

The Glide source tree in Xcode — CameraManager, ConfigStore, VisionPipeline, HandTracker, GestureStateMachine, ScrollEngine — alongside a hand-maintained CHANGELOG.md following Keep a Changelog. Treating it as a proper software-engineering project meant the documentation kept pace with the code.

SwiftXcodeCHANGELOG
AI agent chat explaining a fix to the scroll activation logic
02 · AI AGENT · DEBUGGING THE SCROLL LOGIC

The wall: making the scroll actually trigger

The AI coding agent digging through the math behind the TouchActive state — here it strips out a broken rule that required the finger to be tilted sideways before scrolling would fire. This was the logic that never fully came together, and ultimately where the project stalled.

TouchActivescroll logicthe blocker
Glide Setup step 1 — Welcome to Glide
03 · ONBOARDING · STEP 1

Welcome to Glide

Step one of a five-step setup: turn the MacBook webcam into a virtual touchscreen, with the privacy promise up front — built-in FaceTime camera only, all processing stays on the Mac, and it should feel like a touchscreen rather than gesture recognition.

SwiftUIonboardingon-device
Glide Setup step 2 — Camera access granted
04 · ONBOARDING · STEP 2

Camera access

Step two handles the macOS camera permission prompt and confirms access has been granted before moving on — Glide needs the FaceTime feed to track the hand.

permissionsAVCapture
Glide Setup step 3 — Position yourself, camera preview
05 · ONBOARDING · STEP 3

Position yourself

Step three asks you to sit 40–70 cm from the screen so your hand can naturally reach toward the camera, with a live preview and a "No hand detected" state from the Vision pipeline guiding placement.

Visionlive preview
Glide Setup step 4 — Set touch depth calibration
06 · ONBOARDING · STEP 4

Set touch depth

Step four calibrates the invisible touch plane: extend your index finger toward the screen and hold steady while Glide captures the depth at which a "touch" should register — the floating sheet of glass described in the article.

touch planecalibrationdepth
Glide debug HUD showing state, strategy and hand tracking values
07 · RUNTIME · DEBUG HUD

The live debug HUD

The developer overlay running at 30 fps: engine state (TouchActive), strategy (TouchPlane), zone, a locked hand at confidence 1.0, the index-tip coordinates and extension flag, and the live scroll delta — the instrumentation used to chase the latency and tracking problems.

30 fpsHUDhand tracking