Three years ago, I embarked on an interesting effort where I needed to help my wife with an issue she was having with her University studies. As part of her research in studying Autism and Child Psychology, she makes extensive use of a program known as Tobii Studio Pro to analyze eye tracking data. Individuals watch videos on special eye tracking hardware and all their eye movements are captured for analysis. It is quite an incredible technology to watch and I recommend looking into this on the likes of YouTube if you’re intrigued.
My wife uses this extensively, so much so that on occasion, she’s taken the program to its sheer limits in terms of the number of AOI’s (Areas of Interest, capture windows for eye movement) that you can use in a project.
After spending months collecting data, an oversight was encountered where Tobii Studio would not allow the AOI data to be transferred from one project to another. In this instance, given the number of AOI’s, the exact XY placement for a frame and the moving of frames, many per second as the videos progresses, meant that recreating these AOI’s was quite simply in-practical.
My wife had many projects, all with the same videos, all with many participants and data, and, all essentially needing exactly the same AOI’s for statistical analysis. In Tobii Studio, we found that there was an export functionality but, strangely, no way to import. A support case with Tobii yielded no solution and although this is a niche software offering, there were some threads outlining similar issues encountered (with no resolution).
It was time to put the ethical hacker hat on :-)
Tobii Studio project leverages SQLite to store the project information and with some simplified captures and a small subsection of AOI’s, a good weekend of tinkering and lots of trial and error, I was able to decode the process that Tobii studio used for managing Areas Of Interest.
Off the back of this, a Python utility was created to facilitate the missing Tobii Studio AOI export/import functionality that the product desperately needs.
Naturally, I put this on Github and with this, I really didn’t expect there to be that much (if any) interest, on such a specific piece of commercial software, on a specific problem, yet alone a product as niche as this is.
…. 3 years later …
Recently, I had to enhance this project with a ‘feature request’ from my wife with the ability to also transfer what is known as AOI groupings, buckets of AOI’s for analysis as part of the migration process. Again, this followed a similar path to the previous effort and eventually the pieces fell into place providing that satisfying eureka moment.
It was then that I noticed, this project and the previous efforts, had been starred by six individuals and those predominately appear to be based in China…
Given that many individuals frequent Github, and naturally, some consume without necessarily giving stars, it’s quite satisfying to find out that a couple of random weekends of effort, may have significantly helped individuals in far away countries with issues, where there was, literally no resolution but this.
Throughout my career and my life, I’ve leant on OpenSource software and this for me is a great moment, albeit small, to see contributions as part of my ‘give back’ etiquette, appreciated :-)
The link to the utility is here on GitHub