Position: Developer needed for a small educational program where an eye-tracker is used as an input device
Company: University of Oslo
Category: .NET
Experience required: no_exp

You must create a small and a very simple program using Windows Gaze Input APIs. This program will be used as a proof of concept to demonstrate (and explore) potential benefits that eye tracking technology can bring to the sphere of education by helping users to learn foreign languages.

I need a program that will contain just 5 texts in English (325-350 words each). The whole text will be displayed at the same time, so a user doesn`t have to scroll up and\or down. These 5 texts are already written, so they will be provided to software developer before he will start working on the project. Some words (around 20) in each text are replaced with fictional alternatives (so nobody knows them for sure). It is done in those parts of the text where it is impossible to guess the meaning of the word based on the context – to ensure that all users are in equal conditions, regardless their level of English proficiency (users are not native English speakers, but it`s supposed that all of them speak English at least at Intermediate level). For example, a word “flower” is replaced by a fictional word «billiquate». Software developer will also be provided with the translation of such fictional words.

Software must provide users with translation of unknown (fictional) words when users are reading any of those 5 texts and clicking on any of those 20 fictional words with a mouse (translation should pop-up in a small window that should be placed directly above or under the target word while the rest of the text should be clearly visible). And now is the most interesting part: it should work the same way as if a user is clicking on the unknown (fictional) word with a mouse, but without actual click of a mouse – when a user is fixating his gaze on one of those 20 fictional words and is looking at this word during certain period of time that could be adjusted in advance (for example, 2 seconds).

The accuracy of an eye tracker depends on the model. This program will be used with Tobii Eye Tracker 4C (that will be provided to software developer as well). The accuracy of this eye tacker allows to use interactive elements with the dimensions 1.9 centimetres x 2.35 centimetres (0.748 inches x 0.925 inches). It is enough to place 20 interactive zones on one screen, while ensuring that they do not overlap with each other. Please follow the link to see the example of how interactive zones could placed in the text: https://drive.google.com/file/d/1OmHEfMgf_6T5vuIkLmA2eU_ocV6TAVDk/view?usp=sharing

Edges of such interactive zones should not be visible for users. There is no need for them to be visible because every interactive zone will have one underlined word inside of it and users will be instructed that they should fixate their gaze on underlined words (or click on them with a mouse) if they want to get the translation of these words. Please follow the link to see the example of what users should see: https://drive.google.com/file/d/1Wb_YVzfHkEjc8Xi6ntT6Y7fT6dPB3u0J/view?usp=sharing

An example of what users should see when they focus their gaze on one of underlined words: https://drive.google.com/file/d/1S4OB2wVLZZgYtzDi443-TCM0djHgDV6r/view?usp=sharing

The translation of any underlined word should pop up when a user is looking at the area of the interactive zone for at least 2 seconds and it should disappear when a user does not fixate his gaze on the interactive zone and looks elsewhere during minimum 1 second. However, users should be able to easily adjust it by changing number of seconds for the translation to pop up (when a user is fixating his gaze on a particular word), and also number of seconds after which the translation disappears from the display (when a user looks away from the interactive zone).

Users will read texts from the laptop with the diagonal of 15.6″. When the whole text made of 325-350 words is displayed on one screen (that has aforementioned diagonal) with no need to scroll – text will have such density that even the smallest possible interactive zone that Tobii Eye Tracker 4C can correctly work with (1.9 centimetres x 2.35 centimetres) will contain not just an underlined  word, but also parts of other words standing around it. It is not a problem, it is acceptable. In pixels 1.9 centimetres x 2.35 centimetres are equal to 107 pixels horizontally and 134 pixels vertically if diagonal of a display is 15.6″ and resolution is 1920х1080. In practice the program won`t be used with displays that have other diagonal and/or resolution. Hence, the ability of the program to correctly work when Tobii Eye Tracker 4C is combined with displays that have other resolution and\or diagonal is not necessary.

It could be developed using Windows Gaze Input APIs (https://docs.microsoft.com/en-us/windows/communitytoolkit/gaze/gazeinteractionlibrary) and Tobii SDK (https://developer.tobii.com/consumer-eye-trackers/).

It is does not matter what programming language is used to create the program. For example, if it is more convenient for a software developer to code in Python – it could be done using “PyGaze: Open-source toolbox for eye tracking in Python” (http://www.pygaze.org/).
It is does not matter how the user interface will look like.

A keyboard and mouse will be used in order to launch the program and to switch between the texts. Eye tracker functionality will be used only while reading text (as described above).

There is no need to add any other features.
For more detailed description of the project, please follow the link: https://drive.google.com/file/d/13CB1h5tuaHcd5uZZNnYGstWyXnAHuoSB/view?usp=sharing