Inspiration

We built Ideun after dealing with headaches/migraines during long screen sessions and realising how easily we'd forget to blink while focusing. Reduced blinking can lead to dry eyes and eye strain, so I wanted a reminder system that encourages you to blink more.

What it does

Ideun is a blink-tracking companion with an animated “pet” that reacts to how long it has been since your last blink. The main product is a Windows desktop app, and this project also includes a companion Chrome extension for a lightweight browser-only experience. Users can start/stop tracking, adjust reminder settings, and switch characters (Angel / Yaong).

How we built it

Ideun has a Windows desktop app (main) and a Chrome extension companion. The desktop app is built with Electron, Vite, React, and TypeScript, and uses MediaPipe Tasks Vision (Face Landmarker) in WebAssembly to detect eye landmarks from the webcam, compute blink events (via EAR), and track metrics like time since last blink and BPM. The pet is shown through an always-on-top transparent overlay window that escalates its animations based on the user’s blink state. The Chrome extension is a Manifest V3 build with Vite, React, and TypeScript, using a background service worker for state and an offscreen document for webcam tracking, plus a content script to render the pet overlay on webpages, with settings and character choice saved via chrome.storage.

Challenges we ran into

Getting webcam access and background processing working reliably. Keeping behaviour consistent across popup -> background -> content scripts (e.g. Stop Tracking should freeze/reset the pet)

Accomplishments that we're proud of

Blink tracking works without requiring a tab to stay open. Character switching updates the pet immediately (Angel / Yaong)

What we learned

We learnt that we should plan ahead, to get the ideas down on paper and think about the feasibility of it.

What's next for Ideun

Smoother onboarding More characters, more animation states Deeper personalisation (custom reminder styles, schedules, break modes)

Built With

Share this project:

Updates