@jacobolus: I agree with what you are saying, but I must also say that the EyeX tracking is surprisingly accurate (within 3 mm radius raw, much better with accumulating smoothing), the problem just being that when you move your head from the position it was calibrated, the mouse becomes 'offsetted'. After some testing I realize that the offset is directly related to the amount your head has moved relative to the device, and since EyeX allows for physical eye position tracking as well, it should be fairly easy to come up with an equation to properly offset the mouse back where it should be, relative to eye (or head) position. If that doesn't work, then I'll just make multiple manual calibrations that stores the physical eye position as well to compute the proper displacement coefficient on the fly.
The term "gesture" in this case might not be quite accurate. What I did is not complex eye motions for actions, instead there are blue-tacks around the bezel of my screen, and when I stare at one, it makes an action. So far this is what I have:
I imagine that if this system was to be integrated in an actual device, we could use dim LEDs that pulsate as they activate. Of course the LEDs being the kind that don't disturb the eyes.
Each point has a relatively low tolerance, and a slight activation timer depending on how drastic the action is. Also there are varying repetition timers etc. The scrolling happens dynamically, so that the higher you look the faster it scrolls. It's pretty good when reading through long PDFs. It's almost impossible to make accidental actions as the activation has to be really deliberate to work, simply eye-balling these points will have no affect as the system is sensitive to non-deliberate stares. At the same time it works very reliably, given there is no offsetting, in which case you just have to figure out the right place to look at. I also plan on adding visual tactility to tell when my eyes are over such a point and pulse each time it activates.
The eye-mouse works so that you stare at a point for 0.5s and the cursor appears there. You can make small adjustments to it by looking around the cursor. Since the cursor doesn't have to follow the eyes all the time, I can take many data-points for highly accurate smoothing, and when you look away to for example perform a click, the cursor stays in place effortlessly. The entire action over-all takes little time.
I also tried using left and right eye blinks to perform clicks, and while I managed to make it fairly reliable, it was a bit too tiring in the long run and there were occasional accidents, but I may revise this. The alt+tab system works really well. While it is in action you can still blink normally without a problem, to select the window you look at it and make a more deliberate blink.
Of course a mouse is still overall faster, but it's not like this system is that slow either when you get the hang of it.
As I mentioned before, the point here (for me at least) isn't to replace the mouse entirely, but I do find it useful at times. For example I can read the news, while holding coffee in one hand and bread in the other without constant switching around. It also allows my hands to relax for while, or keep me from taking my hand off the keyboard for some quick basic action here and there. I still do use my mouse primarily of course, that's not going to change (my mouse might change however).
Ah, a wonderful wall of text.