LeedsHack Digital Pet
About the Project
I built a desktop learning companion: a small Live2D cat that lives on your screen and helps you stay focused in a gentle, playful way. It reacts to your activity, encourages you when you’ve been focused for a while, nudges you when you’ve been idle, and lets you chat when you need a quick boost. It also responds to you in real time—following your mouse with its gaze and reacting to live keyboard input. Instead of a cold productivity timer, it feels like a friendly study buddy.
Use Cases
Use cases: exam prep, writing essays, coding, homework, and any long study session that needs sustained focus. Challenge fit: the prompt asks us to reboot learning systems or improve time management in a playful way. I turned traditional “timers and notifications” into a companion system:
- Time management: tracks focus time, idle time, and typing rhythm to suggest breaks.
- Playful: a desktop pet makes it feel light and approachable.
- Mental health friendly: nudges are warm and brief, not demanding.
How I Built It
- Desktop app: Tauri v2 + Vue 3 + Vite for a lightweight cross‑platform shell.
- Live2D animation: real‑time canvas rendering with mouse/keyboard interaction.
- State & logic: Pinia stores track focus, idle time, and input rhythm.
- AI responses: Bun + Hono + tRPC API streams short supportive messages.
- Focus visualizations: a heatmap view + streak counts for habits.
- Customization: opacity, size, always‑on‑top, pass‑through, autostart, and language support.
What I Learned
- How to integrate system‑level input listeners in a desktop app.
- Live2D animation control tied to real user events.
- Building a consistent bilingual UX with i18n.
- Tuning AI output to be short, warm, and non‑intrusive.
Challenges I Faced
- Non‑intrusive input tracking: listening without disturbing real workflows.
- Timing the nudges: too frequent feels annoying, too rare loses value.
- Performance vs. scaling: Live2D + window resizing required optimization.
- AI tone control: keeping responses friendly and concise every time.
- Memory leaks early on: we initially used React + PixiJS, but the rendering lifecycle caused unavoidable leaks, so we pivoted the stack to ensure stable long‑running performance.
Conclusion
I reimagined time management as a gentle, playful companion instead of a strict timer. The result is a study pet that supports focus, respects your flow, and makes learning feel a little more human.
Built With
- tauri
- typescript
- vue
Log in or sign up for Devpost to join the conversation.