Webcam eye tracking → virtual gamepad

GazeStick

Turn your webcam into a virtual gamepad right stick using eye tracking. No dedicated eye tracking hardware required — just a webcam and the Beam Eye Tracker app.

Two options: Portable (.zip, no installer) or Installer (.exe, auto-installs ViGEmBus).

  • Runs quietly in the system tray — click or press F9 to toggle.
  • Adjustable deadzone, sensitivity, smoothing and Y-invert in real time.
  • Outputs to a virtual Xbox 360 or DualShock 4 controller via ViGEmBus.
0 hardware
Just a webcam — no Tobii needed
2 modes
Xbox 360 & DualShock 4 output
F9
Global toggle, anywhere

How It Works

Gaze data flows from your webcam through the Beam Eye Tracker app into GazeStick, which drives a selectable virtual Xbox 360 or DualShock 4 controller.

📷 Webcam
📡 Beam Eye Tracker
🎯 GazeStick
🎮 Virtual Controller
🖥️ Your Game
Official Overview
GazeStick in Action

Key Features

Everything you need for a smooth, natural eye tracking to gamepad experience.

🎯

Deadzone Configuration

Circular deadzone ensures your stick stays neutral when looking at the center of the screen. Adjustable from 0.00 to 0.50.

📈

Sensitivity Control

Adjust how far you need to look for full stick deflection. The default is 2.0x; fine-tune from 0.1x to 5.0x to match your preference.

🔄

EMA Smoothing

Exponential moving average filtering removes jitter from raw gaze data for buttery smooth camera movement.

Global Toggle F9

Press F9 anywhere to toggle eye tracking on or off. When off, the stick returns to neutral instantly.

🔄

Y-Axis Invert

Toggle Y-axis inversion for games that expect inverted vertical camera control. Changes apply in real time.

🖥️

System Tray UI

Runs quietly in the system tray. Left-click to toggle, right-click for the full settings panel. No main window needed.

Prerequisites

Before using GazeStick, make sure you have these installed.

1

ViGEmBus Driver

Virtual gamepad emulation driver that creates GazeStick's Xbox 360 or DualShock 4 controller output. Install and restart once.

Download ViGEmBus →
2

Beam Eye Tracker App

Free eye tracking application that uses your webcam. Must be running with Gaming Extensions activated for GazeStick to connect.

Download Beam Eye Tracker →
3

Beam SDK DLL

The beam_eye_tracker_client.dll is included in every GazeStick release. No separate download needed.

Included in Release ⬇

Quick Start

Get up and running in under 2 minutes.

Read this first: GazeStick needs ViGEmBus and the Beam Eye Tracker app already installed and running. Confirm the Prerequisites before downloading.
1

Install Prerequisites

Install ViGEmBus (restart if prompted), then install and launch the Beam Eye Tracker app. Sign in and activate Gaming Extensions.

2

Download GazeStick

Choose the Portable (.zip) version if you already have ViGEmBus — just extract and run. Choose the Installer (.exe) for a guided setup that can auto-install ViGEmBus.

3

Run GazeStick

Launch GazeStick.exe. It appears in your system tray. Make sure Beam Eye Tracker is running and tracking.

4

Look & Play

Look at the center of your screen to keep the stick neutral. Look toward the edges to move the virtual stick in that direction.

Downloads

Two distribution options to suit your setup.

Not a medical device. Do not use in safety-critical or high-risk environments. See Important Notices.

P

Portable Recommended *

Self-contained .zip archive — no installation needed. Just extract and run GazeStick.exe. Requires ViGEmBus to be installed separately.

* Recommended if you already have ViGEmBus installed or are comfortable installing drivers manually.

Download Portable →
I

Installer

Inno Setup .exe that installs GazeStick to Program Files, adds a Start Menu entry, and can auto-download & install ViGEmBus if missing.

Best for first-time users who want a guided setup.

Download Installer →

Settings Panel

All controls are accessible from a compact popup panel in the system tray.

GazeStick settings popup
SettingDescriptionDefault
deadzoneCircular deadzone radius (0.00–0.50)0.10
sensitivityStick output multiplier (0.1–5.0)2.0
smoothingEMA smoothing factor (0.0–0.9)0.30
invertYInvert Y-axis outputfalse
toggleHotkeyGlobal toggle hotkeyF9
outputTypeVirtual controller output modeXbox360
startWithWindowsAuto-start with Windowsfalse
startActiveStart with tracking activetrue

Architecture

Four services, cleanly separated by interface, make up the GazeStick core.

        graph TD
            subgraph Beam["Beam Eye Tracker App"]
                SDK[Beam SDK
Local Socket Server] end subgraph GS["GazeStick"] TS[TrackingService
Polls Beam SDK ~60fps] SM[StickMapper
Deadzone → Sensitivity → Smoothing] VP[VirtualPad
ViGEm Xbox 360 or DualShock 4] TA[TrayApp
System Tray UI + Hotkeys] end subgraph Game["Your Game"] GC[Game Controller Input
Right Stick RX/RY] end SDK -->|Gaze X/Y 0.0–1.0| TS TS -->|Raw Gaze| SM SM -->|Stick Values -1.0 to 1.0| VP VP -->|ViGEmBus| GC TA -->|Toggle / Configure| TS TA -->|Update Params| SM

Designed for Combination

GazeStick provides only the right stick output. This is intentional.

Pair with your preferred input tools

GazeStick is designed to be one piece of your input setup. Use controller-mapping or device-combination software to combine its virtual controller with physical controllers, keyboard, mouse, or other inputs.

Which output mode should I choose?

Windows supports up to 4 XInput controllers at once. If you already plug in several gamepads, an Xbox 360 virtual controller may not be recognized.

ModeBest forNotes
Xbox 360 Broadest game compatibility Uses one of Windows' 4 XInput slots. If all 4 are taken by physical controllers, the game won't see GazeStick.
DualShock 4 Avoiding XInput slot conflicts Appears as a DS4 and does not consume an XInput slot. Needs game or mapping-layer (e.g. DS4Windows) DS4 support.

Xbox 360 mode offers broad game compatibility. DualShock 4 mode does not consume one of Windows' four XInput controller slots, but may require game or mapping-layer DS4 support.

Important Notices

Please read these disclaimers before using GazeStick.

Non-Medical Device

This software and the underlying Beam Eye Tracker SDK are not medical devices. They are not intended, nor should they be used, to replace professional medical advice, diagnosis, or treatment.

High-Risk Use Prohibition

This software must not be used in high-risk environments or safety-critical applications where any software malfunction or interruption could lead to personal injury, loss of life, or physical/environmental damage.

Data Privacy

Eye-tracking / gaze data is processed entirely locally on your machine and is used only for controller mapping. No gaze data is logged, recorded, or transmitted to any remote server without your explicit consent.