Inspiration
Inspired by the laborious...glorious…notorious…effort…that hackers end up expending throughout their time at Hack the North. By which we mean: staying up really late, losing all cognizant ability, and living to regret it. Which is to say: what we did while building this.
On a more serious note: sleep deprivation and fatigue have serious effects on both mental and physical health. Did you know some of the worst workplace accidents in history, spanning multiple industries, can be traced back to sleep-deprived workers, night shifts, and human error? As this is an issue that affects a large portion of the population and us on a personal level, especially this weekend, we decided to apply our interest in Adhawk’s eye-tracking technology to this field.
What it does
Zone uses the data stream output from the Mindlink along with the events it tracks (blink actions/durations, pupil dilation, saccades, etc.) to build a baseline of a worker’s “expected” behaviours. Workers on a shift will be continuously monitored via the Mindlink and the data will be periodically summarized for analysis, in which the Zone software will monitor research-determined attributes to determine whether or not the worker’s level of fatigue permits them to continue working. If Zone finds that the user is too sleepy to safely continue working, it notifies their supervisor via text message that a swap-out is necessary.
How we built it
First, we modified a pre-existing program written by the Adhawk developer team with basic features that grants us access to a constant stream of relevant data.
Then, we built an analysis model that compares the average of the rate of change in the data of the current time window to the previous window to estimate the general trend of the user’s level of alertness.
Then, we built an analysis model that compares the average of the rate of change for each attribute between “windows”: 15-minute periods, across which the aforementioned average ROC is determined through all data points collected through set 30-second intervals. The purpose of this data is to estimate the general trend of the user’s level of alertness within that period. If the trend changes significantly from previosly logged trends, the analysis will determine that the user is not fit to continue working in their current state.
As for the materials used: The star of the show was the AdHawk Mindlink, without which we wouldn’t be able to track these metrics; The GUI was built using Python Tkinter, while the event and stream handling was written in Adhawk’s Python SDK. Finally, we sent the text message via a call to the Twilio SMS API.
Challenges we ran into
Since our team has never worked with eye-tracking technology before, we had a lot of issues gauging the specific data we wanted from the Mindlink. We also had issues integrating our front end and back end as they were developed independently without forethought of the application structure as a whole. Luckily, creativity fueled by sleep deprivation has gotten us past those hurdles with maximum frustration!
Accomplishments that we're proud of
Our team really stepped out of our comfort zone to work with technology that we’ve never had experience with before. Coming out of two almost all-nighters with a working product that uses the Mindlink’s core features in an innovative solution is a feat we are all extremely proud of. Aside from the project, we feel that the real accomplishment was ultimately the swag we collected along the way.
What we learned
We learned a lot about eye-tracking technology, application structure and design, as well as Python GUI via Tkinter. Also, virtual environments. Lots of virtual environments.
What's next for zone
As of now, only one of our five collected metrics has a proper analysis method that is functional. Although we have coded analysis algorithms for all metrics, integrating them proved to be an issue that we would aim to resolve in the future to provide accurate data on the user’s level of fatigue. We also hope to set up a database to store user information to provide better comparison to previously logged information for a more accurate and tailored experience with the device.
Log in or sign up for Devpost to join the conversation.