I started this project in 2017 because there were no other options available at the time, with the hopes that another program would adopt the technique. I can now recommend Talon Voice since it offers good cross-platform support and compatible functionality. It also has native support for both eye and head tracking without using third party software. For example, to enable movement on key press and click on key, the following talon file will work:
key(f3:down): user.mouse_toggle_control_mouse(1) key(f3:up): user.mouse_toggle_control_mouse(0) mouse_click()
I have stopped maintaining this program in 2023. However, it is open source so I will let the community take if forward if you desire. It is looking for a mainainer if you are interested.
To run this software, I recommend you install a gaze tracker, such as Tobii Eye Tracker, and a head tracker such as webcam. It also requires Windows 7 or 10. I’ve tested with the below hardware, but other options may work.
- Tobii Eye Tracker 4C or 5 (~$139)
- A webcam
- Tobii EyeX (~$79)
- NaturalPoint TrackIR (~$149)
- NaturalPoint SmartNav (~$399)
For head tracking my favorite option is Enable Viacam (eViacam). It tracks your head position using a standard webcam. It’s more accurate than the Tobii’s own head tracking, likely because it tracks many points on your face. It also doesn’t require you to wear an IR device.
If you prefer infrared tracking, then TrackIR is really good. It tracks an infrared headset you clip to a hat or your headphones. It works best with contacts instead of glasses because the light from the Tobii Eye Tracker can reflect off your glasses and distract it. It’s also possible to use the SmartNav which tracks a small reflective dot.
You can use the the lower cost original EyeX, but you won’t be able to use head tracking in EyeX Only mode. Head tracking is included in version 4C of higher. The 4C is also compatible with more computers since it supports USB 2 and 3.
You also need a way to click, and there are several choices. A regular keyboard hot key can be chosen to act as a mouse click. Alternatively, you can use a USB switch. I like the Specs switch from Ablenet. Ablenet offers a wide variety of switches for people with different needs. Other options include the Fragpedal to click with your foot, Dragon to click by speaking, or you can use dwell clicking with eViacam if you are unable to use any of these devices.
Install the latest release using our installer. Next, if you have the eViacam, TrackIR or Tobii Eye Tracker, follow the instructions below to set them up. Calibrate each and run them in the background. Lastly, start the Precision Gaze Mouse program. After initializing, the status field should say “Running”.
Some users have reported the need to install the Visual C++ Redistributable for Visual Studio 2012 as well.
Set your X and Y axis speeds so the mouse moves across a few inches of screen when you comfortably rotate your head. Make sure the enable eViacam hotkey is turned on and set to F11, which is the default setting. It is used to turn tracking on when using the On Key Press movement mode.
If you are using the Continuous movement mode, the feature that pauses the mouse automatically when you move it is disabled. Instead, press the pause hotkey to take over the mouse.
Choose “GazePlusMouse” in the titles tab and set it to use the One:One profile. This is the old name for the application before I renamed it. If it can’t connect, it will display an error message. When you point your head directly at the center of the screen, the head position displayed should be close to (0, 0). If not, press the Center hotkey (F12 by default) in TrackIR. Also, if it says “No TrackIR connected” then verify you’re running under the same user account as Precision Gaze Mouse. You may need to run TrackIR as an administrator if you also run Precision Gaze Mouse with those permissions.
If you have any trouble running the software, see the Help section below on how to file an issue.
Here are several settings allowing you to customize the behavior of the mouse.
- EyeX and eViacam – Use Tobii EyeX gaze tracking to warp your mouse pointer quickly, and eViacam webcam head tracking to precisely control the pointer. This is the recommended mode.
- EyeX and TrackIR – Use Tobii EyeX gaze tracking to warp your mouse pointer quickly, and TrackIR head tracking to precisely control the pointer.
- EyeX and SmartNav – Use Tobii EyeX gaze tracking to warp your mouse pointer quickly, and SmartNav head tracking to precisely control the pointer.
- EyeX Only – Use Tobii EyeX gaze tracking to warp your mouse pointer quickly, and EyeX head tracking to precisely control the pointer. Requires Tobii Eye Tracker 4C or higher. Warning: the accuracy is not very good.
- TrackIR Only – Use TrackIR head tracking alone to control the mouse pointer, along with your chosen movement and click modes.
- eViacam Only – Use eViacam head tracking alone to control the mouse pointer motion, along with your chosen movement and click modes.
- Continuous - Will continuously follow your eye gaze as it moves around the screen.
- On Key Press - Moves the mouse when you press a hotkey, which can be less distracting for your eyes. Click the text box to change the hot key. You can also map this key to an input device, such as a USB button or switch.
Click On Key
An optional setting to click the mouse when you press a hotkey. It clicks on key up, so that if you use the same key for movement, you can release when the pointer is on the right spot. To double click, press twice quickly. To drag, do a double click but hold the button down on the second press. You can set the hotkey by clicking on the input box and then typing the key. Escape or Backspace will clear this setting and disable clicking.
Pause On Key
An optional setting to pause Precision Gaze Mouse when you press a hotkey. Normally, Precision Gaze Mouse pauses automatically when you physically move the mouse. However, when using eViacam in Continuous mode, you need to press this hot key instead. You can set the hotkey by clicking on the input box and then typing the key. Escape or Backspace will clear this setting and disable it.
Adjust the sensitivity for the precision mouse pointer, on a scale of 0 to 10. A setting of 0 will disable the precision mouse pointer. This is not active in eViacam mode because eViacam controls its own sensitivity.
Show Warp Bar
An optional setting to draw a bar below the mouse pointer. The mouse will warp to a new location when the bar turns 100% blue.
Show Gaze Tracker
An optional setting to draw a grey circle indicating the warp threshold, and a grey dot where the gaze is currently looking. The mouse will warp to a new location when the dot travels outside the circle.
If you need help running or operating this mouse, please file an issue on GitHub. I’m open to suggestions and requests.
It’s open source and I’m hoping other developers will contribute to improve it. To contribute, please see the GitHub README. I’d also love to see support for this method from commercial vendors like Tobii in the future.