Blog
04/29/2024
I am currently wrapping everything up with my project. I was able to create a handful of graphs to include in my
presentation to display the data that I collected. Going forward I may create an application that allows someone to
replay a search path, given a trial number so that they don't need to have the eye tracker in order to see what my project does.
Other than that, everything else is done, I am just working on getting all of the required documents created and up on the website!
04/22/2024
My application is ready to go! I have worked out all of the bugs and have ensured that I am obtaining data correctly
in my text files. This means that I am ready to start collecting data. My plan is to ask students in CSCI 460, CSCI 205,
CSCI 373, and my friends that have not seen the application to test it for me. I hope to have all data collected by Tuesday
so that I can analyze the data I get and make some visuals of the results.
04/15/2024
I have gathered coordinates for a handful of target objects for both the easy and medium levels. These coordinates
are able to be multiplied by the user's screen width and height in order to work on any screen size. I have also set up
flags and counters to start counting how often the user looks at the timer, reference object, and target object. Currently
these counts are pretty high. I am not sure if that is because the eye tracker is still gathering coordinates after the game
is over, or if the user slightly looks off of the object and back on it is getting counted as two or more glances rather than one.
My next steps are to get the game flowing how I want it to, and make the UI functional. I want all of the buttons to be working, where
they at least bring the user where they expect to go. I will also be working on getting the path redrawn at the end.
I got rid of the ability for a user to select a background file at the beginning of level, since I only have one background image for each level,
it made more sense to just hard code the text file in. I will have to make all of these file paths (text files and images) relative eventually so
this application can work on another laptop.
04/07/2024
Now I am able to read in the game information from a file and randomly select the reference image and get the corresponding
values for the borders of the target in the background image. Currently, I have one test file with two different
reference objects, but I will eventually have more created. I want to have three background files, one for each level
and then have a handful of different target objects for each. I also have the picture box that contains the green dot moving
around the screen based on the coordinates that my eye tracker is recieving (these are multiplied by the user's screen height
and width to put the coordinate in the correct spot on the screen). Next, I want to set up a couple of flags and counters to indicate
when the user looks at the timer, at the reference object, and past the target object without actually finding it. These will
help answer my research questions. I plan to write all of this information to a file separate from the coordinates, and I may
even display this information at the end of the game.
04/01/2024
I discovered that the coordinates that I was reading were not actually the eye coordinates on the screen. They were
where the user's head was positioned. The eye coordinates are given from 0-1, and then I am able to multiply that value
by the screen width or height depending on if it is the x or y coordinate to get the screen coordinates. So now, all
of the data that I am getting makes sense. I am not able to move the picture box on the screen to follow my search path
during the game because of a threading issue, that Dr. McVey is helping me fix. We have tried a couple of different ways to
fix this and have yet to be successful. I am also working on reading the information for my game in from a text file. I am
able to read each line into an array, but am getting stuck when passing it to the game form. I have set up a separate application
for calibration, but need to figure out the threading issues first, as I believe those will be a problem here as well. My biggest
concern right now is getting the threading issues fixed, because majority of the rest of my project revolves around needing to access the coordinates
from the eye tracker.
03/24/2024
I have rearranged the main game screen so that the picture is anchored on the left and then the timer and reference
object can be found on the right. I am trying to keep this page very simple so that a user's eyes don't have much to look
at. I have started creating files with image names and coordinates to read from. There will also be a feature that allows
the user to pick their own image and I am working on implementing that as well. Now that everything on the game screen is in
place, I am working on merging the project that has the eye-tracker features with the game application.
03/19/2024
Currently I have a very basic game set up that works with a mouse click. I am going to rearrange my main screen
so that the user won't have to scroll to see the timer or the reference image of the target object. Once this is
working well, I will be able to work on implementing the eye-tracker into my application. I also have an idea of how my files
will be set up so that I am able to get a random "game" for the user to play. After I manually create one file, I plan on
developing a simple application that allows me to very easily create more. Each background image will have its own coordinate
file that holds coordinates of different objects for the user to find, which again, I will be able to randomly pick from. I also have
a good idea of what my research questions will be at this point and will use those to guide how I set up the different levels.
03/03/2024
This week I worked on developing an interface for my application. Most of it is not functional as of now because I
have been spending most of my time making the actual game screen in the mouse click project functional. Plus, some parts like the calibration and
path retracing require that the eye-tracker is connected and functioning properly. Other parts will be based on my research
questions so I have a couple of buttons as placeholders right now. I like the structure of my UI, however, once my
application is further along and useable I will update it to work smoothly. My next steps are to get coordinate information
for objects in an image in a file. I want to be able to randomly choose an object in an image to have the user find. Rather than hard coding this in
I want to be able to read the information in from a file so that I can set up the randomization.
02/25/2024
After testing out different properties on the form and picture box, I was able to get the form to maximize on load as well
as have the image fitted properly. I also set up some mouse movement functions that print out the coordinates that the mouse is on
in a command prompt window. This allowed me to hard code in a range of coordinates to identify an object. When the user clicks, the function
checks if the coordinates are on the object. If they are, a message-box appears that says object found, the timer stops and
the time is written to a file. If they did not click on the correct object, a message-box appears the timer continues to run. Once
the user clicks "ok" on the message-box they are able to return to the game to try and find the correct object. From here, I want to
start working on my interface and making the application feel more like a game. I need to add a main screen, as well as a screen
for the end of the game.
02/18/2024
Currently in my windows form app I have a basic I Spy image pasted in the background. I am struggling to fit the
image to show the entire thing. The auto size function allows me to fit it all on the screen, however, then I
do not know where anything is, so I have been trying to hard code the size myself. Keeping track of where everything is
is important for when I am trying to match the coordinates of the object to where the user is clicking. Something is off
in the windows form app, because when I try to use the dimensions of my image as the size of the form, chunks are
being cut off, which I obviously want to avoid. While struggling with this, I decided to take a break and try to implement
the timer. I have a running timer going, just no event to stop it yet, however, it does reset each time the form is reloaded.
My next steps are to get the image fitted correctly, so that I can start obtaining the coordinates of an object that I want the
user to find.
02/11/2024
Now that I have the eye tracker connected, I am working on developing the I Spy game
that will work with a mouse click event. I have found a very simple photo to upload to my
windows form app, and I am currently working on getting that into the app properly. My application
is supposed to support all file types, however, I plan to start with a bitmap because I think that
will be the easiest to work with. I have been thinking about how I want to set up the app, and I have decided
that I am going to store the coordinates of whatever the object is that I am asking the user to find, and then
I want to check their mouse click coordinates against those of the object to then see if they match.
This way I don't have to store every single pixel, only the ones that I care about. I considered adding in lives
to the game, but I think that would only be practical with the mouse click event. When I change everything over to the
eye tracker, I don't think that would make much sense as it would require the user to be continuously moving their
eyes. If they were staring off into space for a bit, I don't want that to cost them a life. My next goal is to get the
image uploaded, and be able to match the mouse click coordinates to those of the image that the user is looking for.
I plan on having either a word on the screen or a small picture in the corner to indicate what object the user should
be looking for to win.
02/04/2024
I decided to give connecting to the eye tracker another shot because it has been driving me crazy.
Dr. Meyer suggested that I start with a project template that didn't have much to it. After researching and testing
a few different templates, I found that the Empty Project was probably going to be my best bet for implementing
the Tobii example code. After doing a lot of digging on the Tobii website, Microsoft website, and Stack Overflow,
I was able to get the eye tracker information to display in the console! Now that I have the connection, I plan
to research what to do next in order to be able to use the eye tracker in an application. I still plan on
creating the separate application that works with a mouse click, so starting that will be my next step.
02/02/2024
Lately I have been struggling with implementing the example setup code in Visual Studio.
There is no documentation included with the setup code examples, which has been really frustrating.
I have met with Dr. McVey multiple times to try and work out the code, but we haven't gotten too far.
As frustrating as this is, instead of letting this stop all progress, I have decided that I am going to
set up an application that works with a mouse click. So, instead of the user looking at the object, they
will find it by clicking on it. I will have another project going to work on connecting the eye tracker,
but for now I plan on keeping them separate. Once both are working, I will merge the two together by replacing
the mouse click with the eye tracker functions.
01/25/2024
Today I got the Tobii Eye Tracker set up on my device. Dr. Diederich and I were able to
get the Tobii Pro SDK installed in Visual Studio. Everything is set up to be
compatible with C#, as that is the language that seems most fitting for this project. To get a feel for
how the eye tracker works, I downloaded the Tobii Pro Eye Tracker Manager
that allows me to calibrate the device and track my eye movement. This application shows
how accurate this eye tracker is. After messing around with that for a while, I read through the
SDK reference guide to see if I could figure out how to get the eye tracker working
in Visual Studio. I found some useful set up code so my next steps from here are to figure out how to implement
it and get the eye tracker running in my application. I also got my website up and running, so I will be continuously
enhancing its design, as well as updating it with requirements throughout the semester.
01/23/2024
Last night we received our project assignments! My task is to build an application similar to
I Spy or Where's Waldo that works with the Tobii Eye Tracking Device. The department has purchased a
new device that supposedly allows us to do more, especially when it comes to data collection. Because of
this, I will be able to use the data I collect to explore a couple research questions of my choice. I have
started to think about some questions I may want to research, and how I can implement the data analysis
techniques that I have learned throughout other coursework at SNC. I was able to have a brief meeting
with Dr. McVey and Dr. Diederich to discuss the project and ensure that I had the right idea before diving into
it.