I tried using head tracking adjustments for calibration. It worked, sometimes quite well, but other times made accuracy worse. Calibration is a sensitive thing. If some bad data gets into it, it can be frustrating. Maybe it could be improved, but I took it out.
That left me annoyed with the situation where I need to click the same button often. It sucks to need to use the same amount of head tracking every damn time. To help with this I added snapping, where for the last 50 clicks it remembers the initial eye position and the click position after head tracking adjustment. When the hotkey is pressed, if the eye position is close to one of the stored eye positions, it uses the stored click position rather than the eye position. Now I only need head tracking adjustment on the first click! This also helps when clicking something twice: look, hotkey, hotkey. There is a bit too much jitter to get a double click consistently though.
Another thing I did was inspired by your projects, Tristan Hume. While holding the hotkey, if the gaze position is far from the mouse position, I jump the mouse to the gaze position. This can be nice if I hit the hotkey before looking where I actually want to go.
Does anyone have other ideas for improving the hotkey-based system? It doesn’t have a good way to do double click or click+drag…