Post #0
2/7/2025
The past two weeks have really been me trying to get my feet under myself. So far, I've gotten my website in a place that I am pretty happy with. It will still need a little bit of polishing throughout the semester, but from a structure/layout standpoint I'm happy with where it's at. As for the eye-tracker, I've had to do a lot more decision making than coding recently. I decided to use C# and Visual Studio to write my program in. I chose C# because it seemed like the best of my three options for the type of program I will be writing (my other options were Python or C). I landed on Visual Studio because it is the IDE with which I have the most experience, and because the Tobii website only outlined how to set up their files in Visual Studio. Finally, I have chosen to make use of Windows Forms to handle the GUI component of the project. As for the programming side of the project, I've made a few test programs to better acclimate myself with the eye-tracker functions and with Windows Forms. As of right now I have a program that detects the eye-tracker, and fails gracefully if it does not, a program that captures and displays/saves tracking data from the eye-tracker, and a program to test out Windows forms. My next step is to try to combine them all, and make a program that can capture and display tracking data in a Windows Forms environment. Overall, I'm pretty pleased with the amount of progress I have been able to make thus far.
Post #1
2/14/2025
This week I met my goal of integrating the eye tracker into a windows forms application. Although this is about all of the progress I made in terms of programming, it is a big step towards being able to begin a first version of my final project. Outside of a programming environment, I also made some progress in designing the flow and look of my final program. I have a sketch/flow chart of how the user is going to interact with the program, and a high/mid level plan on what my files will look like, and how I will organize them. This weekend, my team is taking a trip out to Michigan to play a few games, so I will have a lot of bus time to make some more progress. Though, I will not be bringing the eye tracker, since I am not certain how well it will work on the bus. But, I will be saving some data from the tracker into a file before I leave so that I can run some tests on the road (Like a little to-go bag of eye data). So my next steps are likely going to be translating the eye tracker coordinates into windows forms coordinates, and trying to start implementing my plan for the GUI in windows forms.
Post #2
2/20/2025
This week I worked solely on my GUI. I made a couple revisions and additions to my
original design, and am very pleased with the design. Obviously a lot of it is still
open to change, but I am pretty happy with this structure as my baseline. In addition
to my GUI, I had a very productive meeting with Dr. McVey to show her my progress, as
well as discuss next steps and future implementations. Following our meeting, I now feel
like I have a much firmer grasp on how to proceed with working on the project, and feel
much more confident that I am making good progress. For my next steps, I plan on continuing
to flesh out my GUI, and start giving it a little bit of functionality. For example,
having it interact with files, and working on the functionality of the test (without
any data collection). Overall, I am very pleased with the progress I was able to make this
week. I have another long bus ride this weekend, which means more time to work on the GUI.
Plus, I had exams in my other classes this week, so my only homework this weekend is to
work on my project. Below I have included a screenshot of my current "View Results"
page (featuring Bennett)...
My idea for this screen is that someone would be able to select a user, then select a test
result folder from that user, and see the results of the test. They could use the "Rewatch"
button to watch how the user's eyes moved across the image during their test. They could toggle
the heatmap, which would overlay the heatmap onto the image on the screen. Finally, they can use
the arrow keys to navigate between images.
Post #3
2/28/2025
This week has been quite eventful for me, as I've spent a majority of it nursing a sinus infection.
Though like the absolute warrior that I am, I was still able to make some really pleasing progress.
This week, I was able to basically finish the test taking functionality of my program. I have yet to implement
the eye-tracking aspect, but that shouldn't take too much additional work (famous last words). This is a
really good step for me, and means that one large piece of functionality for the final project is essentially complete.
For anyone interested, here is a more in-depth breakdown of what "finishing the test taking functionality" actually entailed:
- Gathering image and info files from various directories
- Dynamic sizing and placement of image element on the screen based on the dimensions of the image file
- Functional keyboard input
- Exporting results of the test into an output file
- "Failing gracefully" / error handling
Post #4
3/7/2025
I had a meeting with Dr. McVey and Dr. Diederich at the beginning of this week, and we collectively decided that some good next steps would be to add the eye-tracking functionality to the test-taking GUI. This would allow my program to perform the data collection aspect of the project, and would open up the door for me to start working on the data visualization aspect of the project. Currently, I am still in the process of implementing this. I have the eye-tracker connecting and interacting with the test form, so my next step is to start working on the data collection/file writing. I have the logistics on how to do this worked out in a separate code file, so this weekend I will be trying to integrate this file writing logic into the test form. This would also be the step in the development process where I would really like to get this part ironed out, and try to get this form ready for presentation. I expect that I will be continuously adding and changing parts of it up until demo day, but it would be really nice to get it in a nearly completed state.
Post #5
3/14/2025
This week I've been working on getting a start on how viewing a user's test results is going to
work. The goal for this section is to allow the user to view a heatmap of where they looked, as
well as rewatch where their eyes traveled across the screen. But for now, I only have it drawing
points on the image based on the data from the test files. Here is an example of what I am
talking about:
This should really help me to fine tune the data collection portion of my program, since I now
have a way to visualize the data I collect. At this moment, the data collection is pretty good,
but I do have an issue with it. This being that there aren't nearly as many data points as I had
anticipated. I do have a few debugging things going on in my data collection function, which is
definitely eating up some of the CPU, so I will have to retest the data collection without these
lines of code. On the bright side, all of the data that IS there appears to be pretty accurate.
Post #6
3/21/2025
SPRING BREAK BABY LET'S GO!!!!
Post #7
3/28/2025
Over this past week, I have completed a version of the heatmap feature of the project. As I have
discussed with Dr. McVey, this is kind of a 1.0 version of the feature, seeing as I have some more
ideas on things to add or alterations to make. But, in an overarching sense, I would say about 95%
of the heavy lifting for this section of the project is finished. I wouldn't say it is at a point
yet where I would be ready to present it on demo day, but I am super happy with the progress I've
made so far. Here is an example of what it looks like right now:
I presented this feature in class today and got a lot of really good feedback from my classmates
and the faculty. One of the recommendations was to implement a way to change the colors of the
heatmap, so that the user can choose colors that best fit the specific image. Another point of
feedback I received was to possibly add a way for the heatmap to incorporate multiple different
colors into it. For example, a lot of heatmaps you might see consist of a gradient between blue,
green, yellow, and red. All of these ideas would be really great additions, and I would like to try
to fit them all in. Hence why I stated that this is somewhat of a 1.0 version. I still have a lot
of ideas I'd like to play around with.
Post #8
4/4/2025
This week I have been pretty hyper-focused on working my way up to a heatmap version 2.0. Using
some of the ideas presented to me from Dr. Meyer and Dr. McVey, I've been able to implement a couple
new features. The first and most important of which being the ability to allow for more than two
colors in heatmap generation, as well as allowing users to choose the colors. I am still working
on getting the UI for this feature up and running, but the feature itself is fully implemented.
Next, I added the ability for the user to increase the "fluff" length. Essentially, this makes
each individual point on the heatmap larger, giving the map a fuller and larger look. The final
feature that I have implemented is more of a fun little addition. That being the "reveal" mode
for the heatmap. This mode will color all of the pixels black, but make the "hotter" pixels more
transparent. This means you can only see the parts of the image that were most frequently looked
at. I also added a couple of heatmap preset color palettes for users to pick from. Here are a couple
screenshots of these features:
So what are my next steps going to be? Firstly, I would like to get a functioning UI that allows users
to select the colors they want for the heatmap. After that is all fleshed out, I think I am going to
put a heatmap v3.0 on the backburner while I focus more attention onto the rewatch feature. I have more
ideas on things to implement with the heatmap, but I would really like to get the redraw feature into
a presentable state before I continue fleshing out other aspects of the project.
Post #9
4/13/2025
This week I've really been focused on trying to get a solid UI down for the custom color selector for the heatmap.
Right now, I've implemented the "add" button, which allows the user to select a color to add to the list of heatmap
colors. I've implemented a "clear" button, which clears all of the users selected colors. Finally, I've implemented
a visual that displays all of the colors the user currently has selected. Currently the user is capped off at 5 colors,
but this can be easily changed. Additionally, duplicate colors are allowed.
Somewhat tangential to the custom color feature, I also added a gradient area that shows the user how the selected heatmap
colors transition from "cold" to "hot". My next step is to try to fully flesh out the UI for the custom colors. I'd really like
to add a way for the user to easily remove individual colors from the list, and shift around the order of the colors. After this,
I am going to really try to hammer home the rewatch feature.
Post #10
4/19/2025
As of this moment, I have officially completed every requirement of my project. This past week, I completed the "rewatch" feature of my project, which allows you to watch the path a user's eyes took while looking at the image. As of right now, I have implemented the ability to pause and resume the rewatch, as well as alter how long the "tail" is. (The tail is how many points drag behind where the user's eyes actually were, which gives a little bit of a laser pointer effect and makes the point much easier to follow). I plan on adding a progress bar, which shows the viewer how long the rewatching should take. Additionally, I plan on adding a bit more customization such as the ability to change the size and color of the dot. Here is a video of how the feature looks so far: In some less interesting news, I also finished the custom colors UI for the heatmap feature, so now the user can easily shift the order of their colors, as well as remove individual colors.
Post #11
4/25/2025
At this point, I am primarily focusing on adding some final details, and cleaning up the UI. I am not planning on making any drastic changes or doing any kind of functionality overhaul. With demo day being about a week away, my primary focus is to get the project looking and feeling smooth to use. This past week, I implemented a way for users to change the color and size of the rewatch dot. Additionally, I got the progress bar up and running smoothly. My next steps are to make the results portion of the project more user friendly, and hopefully help to declutter the screen. I also plan to polish up the test taking portion of the test, and include some instructions on how taking the test actually works. Outside of that, the only real thing left to do is to start drafting up what I plan to say and present about on demo day. I have some more ideas on smaller improvements to make to the project, but preparing to present is my top priority right now.