rishikapadia7 / AvraLabsEyeControl

Mouse replacement software to use computers with your eyes with support of a compatible Tobii Eye Tracker.
Apache License 2.0
11 stars 2 forks source link

This project is so close to being perfect. UPDATE: This project is perfect! #2

Closed jamesmugford closed 4 years ago

jamesmugford commented 4 years ago

This project is so close to being perfect.

A couple of things though.

I think the mouse should not follow you unless you are zoomed in. Once you are zoomed in, there should be a circular reticle in order to see where it is you are about to click.

Talon Voice has quite a good implementation. I prefer yours though because you use native Tobii drivers. Talon uses custom ones (to work on macos and Linux).

I hope this feedback helps. Would love to be able to switch to this project. Neck strain is a real issue with some of the others but this one does not have that problem.

I wonder if you are able to give any pointers on how to implement this? Just vague instructions would be fine. I'm a developer by day so as complicated as you like would be fine, if you have the time.

rishikapadia7 commented 4 years ago

Hi James,

Thanks for your feedback and trying it out. You can click on the Avra logo to access advanced settings, and you can turn off gaze following except when within zoombox, inside the fixation submenu, image

https://github.com/rishikapadia7/AvraLabsEyeControl/blob/master/PrecisionGazeMouse/ConfigManager.cs cursorAlwaysFollowGaze ... can set that to False by default, I think this was a typo in my code. It should have been False.

Within the zoombox, I personally would not recommend drawing a circle or something else, here's why: When you draw a circle on the screen, the eyes will fixate towards the edges of the circle - thereby losing attention towards the original task which is to click their desired button. Instead what I've done is enabled the hovering feature of the mouse within the zoombox so that way you always have an indication as to whether your desired button/input field is selected. However, if you would like to experiment with drawing something, you can do it in this file: https://github.com/rishikapadia7/AvraLabsEyeControl/blob/master/PrecisionGazeMouse/WinzoomUnderlayForm.cs

This allows drawing within the zoombox. Right now, I only draw for a text field since otherwise it becomes difficult to select text.

jamesmugford commented 4 years ago

Absolutely astounding support.

I never realised an advanced menu was hidden under here.

I just noticed that is a grid mode as a reticle. This should do for now.

I also noticed that the refresh rate for the the cursor reticle moving was quite slow, once in zoom mode. I wonder if this is because you are redrawing the zoom panel. On other projects that I have seen, they wouldn't bother doing this, as I suppose it is quite resource-intensive. Potentially this is what is slowing down the reticle? I have found a single screenshot to be more than adequate. I greatly value the added performance boost this offers over live updating. Talon does this and still shows the native Windows cursor as well as your gaze reticle at same time when in zoom mode.

If you are interested, the beta can be downloaded here:

https://talonvoice.com/update/QBIYaCA9S41syMnjflZKpB/talon-windows-89-0.0.8.29-1332-g3068e36.zip

You can see it in action here: https://youtu.be/VMNsU7rrjRI

It's an interesting piece of work. You will need a mic to initiate the zoom mouse as it's done by popping your lips together. Just let me know if you'd like help setting this up.

You will also notice that the reticle only moves half the distance as your eyes rather than, in your project, the reticle is locked onto your eyes. I believe Talon's way of doing it is better, as it allowance an extra level of granularity whilst moving your eyes. You end up looking beyond what you want to click to move the reticle which means that you use your peripheral vision slightly. It gets a small amount of getting used to but I find, in the end, this is is very comfortable on the eyes and very accurate and fast.

I definitely think it's worth a look. The Talon folks use their implementation daily and it's been extremely well refined. I believe the source Code is also available in there are as Python files. The core is closed but the zoom mouse module is open.

Can't wait to ditch Talon's project/horrible drivers for this.

Best, James

rishikapadia7 commented 4 years ago

Hi James, Sorry for the late reply - I assumed you had closed the issue per my email notification and then didn't get a re-open notification.

In the current Avra implementation, we have the cursor that should not follow the gaze (as per your finding above) except when within the zoombox. I found that showing a moving cursor icon can be distracting when trying to make a selection and actually hinders the users focus away from their desired task as they would be waiting for their cursor to "catch up". It's much more effective to let the elements on the screen have a on-hover effect to indicate that the button is currently in focus through their eyes.

User-centered design principle here is that let's say the user wants to click on the minimize icon in the top-right, then the user only cares whether the minimize icon is in eye-gaze focus ... it's irrelevant whether the cursor is focused in the top part of the minimize button or the bottom part of the minimize icon as the clicking effect would yield the same result (minimizing the window).

For when there's no visual hover feedback, that's when I've chosen to provide a visual indicator such as when selecting text or inputting into a text field.

You're most welcome to take this project and extend it however you'd like - right now I'm focused on other personal priorities. Hope that helps :)

jamesmugford commented 4 years ago

Hello, thanks for the update. I'm back on this project, I just couldn't bear Talon's eye tracking any longer. Talon has a few features but I believe cause eye strain. I believe this method of no reticle actually causes less eye strain. So though I was previously a skeptic, now I am a convert 👍

jamesmugford commented 4 years ago

PSA: This project works great with Tobii 4C and the new Tobii 5.

Of course it works much better with the 5, given accuracy and refresh rate improvements