Inspiration We’ve all been there: you have to finish coding an important task, but suddenly you open your phone, start doomscrolling on social media, or just stare into space. Loss of attention and context switching kill developer productivity. We wanted to combat this in a unique way that combined gamification, extreme accountability, and a touch of humor based on brainrot culture. We were inspired by the idea of our own IDE visually "punishing" us if we get distracted, forcing us to look at the screen and get back into the "flow" state.

What it does BrainCode is an ecosystem that strictly monitors your concentration level and syncs it directly with your code editor. Using the webcam, it detects where you are looking in real-time. If you stop looking at the code for too long:

  • Your brain pet starts to rot.
  • If the distraction is very prolonged, an integrated Telegram bot notifies your mobile phone alerting them that you are procrastinating. Additionally, it allows you to control and clear these alerts using simple hand gestures, without needing to touch the keyboard.

How we built it We divided the project into two main pillars and linked them in real-time:

  • Computer Vision Engine: Created in Python using Google MediaPipe. We implemented algorithms based on the .task models for Face Landmarking (calculating head pose and gaze direction) and Hand Landmarking (gesture recognition for interaction).
  • IDE Plugin: Developed natively in Kotlin for the JetBrains IntelliJ platform. We used deep IDE components to paint visual interfaces over the editor, manage the "Focus" state, and interrupt the user by rendering heavy icons in the UI.
  • Finally, we connected both using fast local communication and linked the Telegram messaging API for external notifications.

Challenges we ran into

  • IntelliJ Platform SDK: Understanding the complex underlying JetBrains architecture to modify the code editor, detect caret/tab events, and paint overlays (DimOverlayPainter) without breaking the programmer's usual workflow was a steep learning curve.
  • Real-Time Accuracy: Interpolating MediaPipe facial landmarks to decide mathematically—and without false positives—whether the programmer is truly looking at the screen or at a second monitor/mobile phone.
  • Synchronization: Managing to connect a continuous external Python script with the Java Virtual Machine (Kotlin) with minimal latency so that the screen dimming felt completely fluid and responsive to the user's gaze and hand gestures.

Accomplishments that we're proud of We are very proud to have successfully connected the physical world (human gaze and gestures) with the digital world of an IDE at such a deep and native level during a time-limited Hackathon. Managing to inject just the right dose of humor (Brainrot images) working flawlessly in a highly technical development environment like IntelliJ is undoubtedly our greatest achievement, alongside the robust setup connecting Artificial Intelligence with the Kotlin ecosystem and messaging.

What we learned

  • We learned to master MediaPipe to extract advanced facial and gestural context at high frame rates without sacrificing computer performance.
  • We dove deep into JetBrains plugin development, understanding the lifecycle of editors and the creation of custom UIs.
  • We discovered the power (and how effective it can be) of behavioral conditioning through software by graphically penalizing the user who loses their rhythm.

What's next for StaticChupos The potential to keep annoying/helping programmers is endless!

  • We want to create a version of the plugin for the VS Code ecosystem, expanding our user base.
  • Implement advanced and local productive telemetry, offering graphs to the programmer about what times of the afternoon they lose focus the most, plus a log of all completed sessions.
  • Positive rewards and customization: The possibility of adding auditory punishments (funny sounds) or allowing the user to customize their own penalty images.
  • Explore pairing it with smartwatches (wearables) to add heart rate or stress levels to the overall "Flow" metric.

Built With

Share this project:

Updates