Inspiration

We noticed that children today are exposed to videos with extremely fast cuts, flashing colours, and overstimulating visuals that can reduce attention span. We wanted to create a tool that helps parents and kids quickly check whether a video is “attention-safe” before watching.

What it does

FocusFilter analyses a video’s visual saturation and motion intensity to determine if it might be overstimulating. Users can upload a video, and the app returns a simple verdict: “Safe to watch” or “Potentially Overstimulating.”

How we built it

Frontend: HTML/CSS forms for uploading files and displaying results. Backend: Flask handles requests, receives video files, and runs analysis. Analysis: OpenCV processes frames, calculates average saturation and gradient RMS, and computes a weighted score to determine overstimulation. File handling: Temporary uploads are uniquely named, and old files are cleaned to prevent caching errors.

Challenges we ran into

Ensuring OpenCV reads only the correct video, especially when multiple temporary files exist. Handling large video uploads efficiently without freezing the browser. Designing a simple interface for children and parents while keeping results clear.

Accomplishments that we're proud of

Built a working prototype that accurately analyses videos for overstimulation. Ensured that the app works reliably with uploaded videos and avoids analysing the wrong file. Created a lightweight, user-friendly interface that shows clear results.

What we learned

Learned how to process videos frame by frame efficiently using OpenCV. Learned to manage temporary files safely to prevent caching and conflicts. Gained experience with Flask web apps, file uploads, and integrating analysis logic with a web interface.

What's next for FocusFilter

Add support for YouTube links, allowing users to check videos and watch videos without downloading manually. Improve analysis speed using smarter frame sampling or multithreading. Enhance metrics, such as motion intensity, brightness changes, or flashing frequency, for more accurate safety scoring. Better UI/UX, including loading indicators, file name display, and mobile-friendly design. Parental control features, like user profiles and video history tracking.

Share this project:

Updates