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.