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.
Gaze data flows from your webcam through the Beam Eye Tracker app into GazeStick, which drives a virtual Xbox controller.
Everything you need for a smooth, natural eye tracking to gamepad experience.
Circular deadzone ensures your stick stays neutral when looking at the center of the screen. Adjustable from 0.00 to 0.50.
Adjust how far you need to look for full stick deflection. Fine-tune from 0.1x to 5.0x to match your preference.
Exponential moving average filtering removes jitter from raw gaze data for buttery smooth camera movement.
Press F9 anywhere to toggle eye tracking on or off. When off, the stick returns to neutral instantly.
Toggle Y-axis inversion for games that expect inverted vertical camera control. Changes apply in real time.
Runs quietly in the system tray. Left-click to toggle, right-click for the full settings panel. No main window needed.
Before using GazeStick, make sure you have these installed.
Virtual gamepad emulation driver that creates the Xbox 360 controller GazeStick outputs to. Install and restart once.
Download ViGEmBus →Free eye tracking application that uses your webcam. Must be running with Gaming Extensions activated for GazeStick to connect.
Download Beam Eye Tracker →The beam_eye_tracker_client.dll is included in every GazeStick release. No separate download needed.
Get up and running in under 2 minutes.
Install ViGEmBus (restart if prompted), then install and launch the Beam Eye Tracker app. Sign in and activate Gaming Extensions.
Download the latest GazeStick-*.zip from the releases page and extract it anywhere.
Launch GazeStick.exe. It appears in your system tray. Make sure Beam Eye Tracker is running and tracking.
Look at the center of your screen to keep the stick neutral. Look toward the edges to move the virtual stick in that direction.
All controls are accessible from a compact popup panel in the system tray.
| Setting | Description | Default |
|---|---|---|
deadzone | Circular deadzone radius (0.00–0.50) | 0.10 |
sensitivity | Stick output multiplier (0.1–5.0) | 1.0 |
smoothing | EMA smoothing factor (0.0–0.9) | 0.30 |
invertY | Invert Y-axis output | false |
toggleHotkey | Global toggle hotkey | F9 |
startWithWindows | Auto-start with Windows | true |
startActive | Start with tracking active | true |
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 Controller]
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
GazeStick provides only the right stick output. This is intentional.
GazeStick is designed to be one piece of your input setup. Use controller remapping software like reWASD to merge GazeStick's virtual Xbox controller with your physical controller, keyboard, or mouse. Each tool handles one aspect of input, and a remapping layer ties them together.
This is the standard accessibility pattern: dedicated tools feeding into a unified input layer.
Please read these disclaimers before using GazeStick.
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.
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.
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.