For the first time ever, I've launched a product that I could easily devote the next ten years of my life to. It honestly feels amazing.
I love what it stands for and for what it represents. It's called
Epilepsy Blocker and it's a Chrome extension that automatically blocks flashing GIFs that may cause epileptic seizures to people with photosensitive epilepsy. It's kind of like an ad blocker, but for epilepsy.
It took two months of all-day coding to build. Here's how I did it:
I remember reading articles online about how people with photosensitive epilepsy are having seizures from media content
Things that can make content dangerous:
💥 Flashing
🔴 Transitions involving red colors
‼️ Some geometrical patterns, like stripes
I started building it in the "24hr Startup cChallenge", but it was far more difficult than I expected. Even about a month after the challenge, I quit because I thought it wasn't feasible. I wanted to analyze GIFs in real time but it was taking about four minutes per GIF.
After that, luckily, I stumbled upon one of Andrey Azimov ’s
articles, where he talked about going through a similar phase with 'MacBook Alarm'. Eventually, he pushed through and managed to finish the project. That inspired me, so I decided to give it another go.
I started studying about photosensitive epilepsy in depth. What I found was that the UK is the leader in this field, with the most established scientists in the field and the strictest guidelines for TV broadcasting. This where I found established guidelines and papers.
I started reading numerous scientific papers and studied linear algebra for the first time after Uni. 🎓
By using Python, linear algebra and optimized Python packages written in C, I managed to speed up analysis from four minutes per GIF to just under one second!
Initially, I was looping through every single pixel of the GIF, which is time consuming.
Food for thought: Imagine a simple GIF, 600x600 pixels with 200 frames. That makes for 600x600 pixels x 200 frames = 72 million pixels to analyze. Crazy.
The way I managed to overcome this: A specialized algorithm that switches to Python and Python packages written-in optimized C code and uses specific matrix functions. I will write a longer post in the future where I'll share all those details...
At first I launched Epilepsy Blocker on Reddit, but was taken down very quickly due to "self promotion." However, while it was still up, someone subscribed for $10/month. That meant that Epilepsy Blocker was officially helping someone stay safe online.
Then I launched on Product Hunt and in some closed Facebook Groups.
Building Epilepsy Blocker was unchartered territory for me, but I felt like a scientist while building this.