This project was inspired by a series of conversations I've had with friends over the years about productivity apps and techniques, and how many of them aren't very effective, at least in their experience. Since then, I've been wondering about the viability of a system that could detect when you're losing focus, and gently remind you to resume work. I hypothesized that if we could use eye tracking as a proxy for focus, we could automate this system and help people stay more focused and productive with their time, so I decided to work on a proof-of-concept here at Bitcamp.
What it does
The project is a chrome extension that tracks user eye motion, mouse, and timing patterns to identify when users are losing focus, and gently nudge them back into focus through alerts. I'm also working on fine-tuning user settings, which is currently a work in progress.
How I built it
It builds off of the webgazer.js library,
Challenges I ran into
The webgazer.js library, which comprises the core of the eye-tracking functionality, had some compatibility issues on the current version of Firefox, so I decided to work primarily on the chrome extension. Also, the library wasn't built for web extensions, and had some compatibility issues with the web extension standards, that I had to modify for compatibility purposes. Finally, I wasn't able to commit as much time to this project as I would have liked, and working on it alone, was only able to produce a rather bare-bones proof of concept. I also discovered that the webgazer library continuously streams all of the video data into temporary local memory (after accumulating over 20gb of footage from leaving a test open for a couple hours), which still needs to be addressed before this is practical in real use scenarios.