Home Guide GitHub

Webcam & Gaze Tracking Guide

Calibrate your eyes once and the app can pop bubbles when you stare, or run a focus-conditioning minigame that rewards you for looking at the right thing.

Overview

Webcam tracking turns your eyes into an input device. After a one-time calibration, CCP knows roughly where you're looking on screen and feeds that signal into three places:

  • Focus Gaze — stare at any bubble or flash for about a second and it pops. No clicking.
  • Gaze Minigame — a focus-conditioning game with side-by-side asset packs: hold your gaze on the correct one, ignore the distractor.
  • Deeper triggers — if you author or play Deeper enhancements, gaze, blink, mouth-open, and "looked away" can fire timeline rules.

All inference runs locally on your machine. No frames are recorded, uploaded, or sent anywhere — ever.

Free Feature

Webcam tracking, calibration, Focus Gaze, and the Gaze Minigame are all free. No Patreon required. You just need a working webcam.

Privacy & Hardware

How the camera is used

Each frame is processed in RAM by bundled MediaPipe AI models (face detection, FaceMesh, iris) and discarded. Only numbers come out — landmark positions, pupil center, head pose. Those numbers feed the gaze pipeline. Nothing is written to disk, transmitted, or kept after the frame is processed.

What the camera never does

Frames are processed locally and never leave this machine. Nothing is recorded. Nothing is sent to any server. The entire AI runs offline using ONNX models bundled in the installer.

What you need

  • A working webcam (built-in laptop cameras are fine)
  • Windows camera permission for CCP — granted on first consent
  • Even, frontal lighting — harsh side-light breaks iris detection
  • A stable seating position 50–70 cm from the camera, with your whole face in frame

How to revoke access

Open Windows Settings → Privacy & Security → Camera and toggle CCP off. Or open the consent dialog from inside the app (Lab tab → Webcam Games → Review Privacy) and uncheck the consent box.

First-Time Setup

Two things have to happen exactly once: you give consent, and you run the 16-point calibration. After that the tracker just works whenever you start it.

Step 1: Give consent

  1. Open the Lab tab and find the Webcam Games card.
  2. Click Review Privacy. A four-step dialog explains what the camera does and what it never does.
  3. Tick the consent box and click Enable. Windows may also prompt you to grant camera access — allow it.

Step 2: Calibrate (~1 minute)

Calibration teaches the tracker the geometry of your face, eyes, and current seating. It's posture-specific — if you change chairs or move the camera, redo it.

  1. Click Calibrate on the Webcam Games card.
  2. Phase 1 — the dot grid. A pink dot moves across a 4×4 grid. Stare at each dot until the ring around it fills up and pulses, then it moves to the next. Don't track ahead of it — let your eyes settle.
  3. Phase 2 — quick checks. A few prompts confirm tracking works: glance left, glance right, blink, open your mouth, stick your tongue out.
  4. If you miss a dot twice, calibration restarts. Sit a little straighter and try again.
Re-calibrate when you change anything

Calibration is tied to your current head position relative to the camera. New chair, new monitor, laptop on a different surface, glasses on/off — all of these will drift the tracker. Re-run calibration whenever it feels off.

Step 3 (optional): Quick Recal

If the tracker feels slightly offset after a long session — like the cursor is a few centimeters above where you're actually looking — run Quick Recal from the Webcam Games card. It corrects translational drift in seconds without redoing the full 16-point grid. It does not fix angular errors at the corners; for those, run a full calibration.

Focus Gaze

Focus Gaze is a hands-free interaction layer for bubbles and flashes. While it's enabled, every active bubble or flash registers its hitbox with the tracker. Look at one for about a second and its pop handler fires — identical to a click. Look away and the dwell timer cancels.

Turning it on

  1. Make sure you've completed consent and calibration (see above).
  2. Find the Focus Gaze toggle in your feature cards.
  3. Toggle it on. Status reads "Active — gaze and dwell."

What if it won't activate?

The status line tells you what's missing:

  • "Camera consent is required." — open the Webcam Games card and click Review Privacy.
  • "Calibrate the webcam first (Lab → webcam tracker test)." — you skipped calibration during setup. Run it now.
  • "Couldn't start the webcam (state: ...)" — another app is using the camera, or Windows revoked permission. Close other camera apps and check the privacy settings.
Stacks with clicking

Focus Gaze sits on top of normal click-to-pop — you can mix and match. Use it as a slow, mindful alternative when your hands are busy, or pair it with the debug gaze cursor while you're learning where the tracker thinks you're looking.

Gaze Minigame

A focus-conditioning round: "correct" content rewards you for looking at it, while "noise" content is meant to be ignored. Each round shows two panes side by side. Hold your gaze on the correct side for the pass-time and you score; rapid glances at the wrong side rack up penalties.

Plays in its own window so it can sit alongside a session.

Playing a round

  1. Open the Lab tab and click Gaze MinigameOpen.
  2. On the title screen, click Select assets. Pick one "correct" pack (pink label) and at least one "noise" pack (red label). You need at least two packs total.
  3. On the ready screen, configure the sliders below, then hit Start.
  4. A short countdown plays, then rounds begin. Hold your gaze on the correct side until the ring fills and you pass.
  5. The results screen shows correct / wrong / timeout per round and total dwell times.

Settings (per session)

Setting Default Range What it does
Image rounds 8 0–20 Image-based rounds per session
Video rounds 2 0–10 Video-based rounds per session
Image duration 5s 2–10s How long each image stays on screen before timeout
Video max duration 30s 10–120s Cap for video rounds
Pass time 3s 3–30s Continuous dwell on the correct side needed to pass. Higher = harder.
Wrong-side tolerance 0ms 0–2000ms How long you can glance at the wrong side before failing. 0 = strict (first pixel on wrong side fails the round).
Vibration mode None None / OnCorrect / OnWrong Optional haptic buzz. Requires a connected haptic device.

Reward effects

Pick what fires when you pass a round. Combine with vibration for stronger conditioning.

None

Score only. Quietest option.

Flashes

A flash image pops for the round's duration.

Bubbles

Triggers a quick bubble burst.

Audio

Plays a reward clip. Choose from bell, chime, clicker, or lock-click.

Mind Wipe

Brief overlay-pulse blur effect. Heaviest option.

Overlay Pulse

Single soft overlay flash — lighter than Mind Wipe.

Tracker Test & Debug Cursor

If a game feels off, blame the tracker before yourself. Two tools verify it's working.

Tracker Test

Click Tracker Test on the Webcam Games card. A live overlay opens showing your face and iris detection in real time. Move your eyes around — the cyan dot should follow. If the dot is jumpy, lighting is the usual culprit; if it's stuck, your face isn't being detected.

Debug cursor

Tick Show Debug Cursor to keep a small floating cursor on screen while you play. It always shows where the tracker thinks you're looking. Useful while you're learning the system — if items pop in places that look wrong, the cursor will tell you whether the gaze estimate or the calibration is the problem.

Tips for Reliable Tracking

  • Lighting matters more than camera quality. Even, frontal light beats a 4K webcam in a dark room.
  • 50–70 cm from the camera with your whole face in frame. Closer cuts off your face; further makes iris detection unreliable.
  • Re-run calibration if you move. New seat, new monitor, laptop relocated — calibration is posture-specific.
  • Blinking is filtered. The tracker drops blink frames automatically — you don't need to stop blinking.
  • Run Tracker Test before blaming a game. If the cyan dot is jumpy or stuck there, no game will feel right.
  • Eye fatigue degrades tracking. Start with short minigame rounds and shorter pass-times. Build up over time.
  • Glasses are usually fine. Strong reflections on the lenses can confuse the tracker — angle the light source if needed.

Settings Reference

These are stored in your AppSettings and persist across sessions.

Setting Default Description
Webcam Consent Off Master gate. Set by the 4-step Review Privacy dialog. All other webcam features check this first.
Calibrated No Set automatically when calibration succeeds. Cleared if you reset.
Calibration Mode 16-point 16-point is the default. A 25-point variant exists for very high-precision setups.
Camera System default Pick a specific camera if you have more than one. Stored as device index + friendly name.
Sensitivity 0.5 0.0–1.0. Controls how close gaze must be to a target. Lower = more forgiving.
Focus Gaze enabled Off Master toggle for the dwell-to-pop interaction layer.
Show debug cursor Off Floating cyan dot that follows the gaze estimate. Helpful while learning the system.
Webcam triggers Off Allow Deeper enhancement files to use blink / long-stare / mouth-open / bubble-stare triggers.