Inspiration

My inspiration for the project was that I have found myself constantly falling victim to doomscrolling; however, doomscrolling is often easy to snap out of once you realize that you doing so. However, all the applications that I tried offered no such solution and merely had pseudo-intelligent solutions like blocking apps at certain times. I thus aimed to create an app that had the ability to detect in real time doomscrolling and combat it in order to make a more productive society.

What it does

Using OpenAI's o1 model it analyzes multimodal input of the screen recording frames of a user's screen and detects whether the user is doing something productive or scrolling through social media in a negative manner. It is designed to really just bring to the forefront of a doomscroller's mind their action since that is often the most effective way to snap out of it

How I built it

I built the app using PyQt6, win32gui, psutil, asyncio, Pillow, and openai. It used pyqt6, specifically qasync, to create a desktop application and Pillow to grab screenshots which were detected using win32 APIs periodically using qtimers. It then converted these screenshots into base64 encoded chunks and sent a 15 frame video to openai to analyze the video and detect doomscrolling

Challenges we ran into

I ran into several challenges along the way ranging from threading issues to even the conceptual idea. This is actually the 4th iteration of an idea that I had to recode practically from the ground up. However, I did use openAI's o1 model api throughout and the most pressing issue was the speed of the model which I had to run asynchronously otherwise it would not effectively function and thus I had to introduce coroutines into my code which sometimes caused lock problems.

Accomplishments that I'm proud of

I'm really proud of the fact that I designed a piece of code that effectively uses openAI without overloading credits, treading the line between effectivity and cost efficiency as well as creating a tool that I would and probably will use in my daily life in trying to curb those nasty habits

What I learned

Throughout the project I learned tons of new things like using window's api in several applications ranging from simple detections to automations as well as using asyncopenai and base64 encoding of images. I also learned how to use PyQt which was really fun and I will definitely use it in the future

What's next for FohcuhsAI

Depending on time constraints I make it more robust with a website

Built With

  • asyncio
  • openai
  • pillow
  • psutil
  • pydantic
  • pyqt6
  • python
  • qasync
  • win32
  • win32gui
Share this project:

Updates