2026年7月1日
FLL Desktop Pet
A Windows desktop pet built with Vue 3, Tauri and Live2D, with cursor tracking, six-part hit-area calibration and AI chat.
#Vue 3#TypeScript#Tauri#Live2D#PixiJS
FLL is a Live2D pet that lives on the Windows desktop: the character sits in a transparent window, turns its head to follow the cursor, opens a radial menu on right click, and can hold a conversation.
What I built
- Live2D rendering: PixiJS + Cubism 4 driving the model, with model3 / moc3 / physics / expression assets. Falls back to the Hiyori sample when the real assets are not in place.
- Cursor tracking: eyes, head and body track in three separate layers, and it keeps following even when the cursor leaves the window. Turning tracking off resets every parameter immediately with no leftover inertia.
- Hit-area calibration: four points each for head, torso, both hands and both legs, plus the centre of both eyes. The calibration decides which pixels respond and which let the cursor pass through.
- Dynamic click-through: the transparent window passes the cursor through by default, and only reacts on the character body. The radial menu opens on the body only, and click-through resumes the moment it closes.
- Interaction feel: a short tap plays an action; the window only becomes draggable after holding for about 90ms, so you don’t drag the window when you meant to tap.
- Service layer: conversation, notes and personality are separate services, so logic and UI are maintained independently.
Stack
Vue 3 + TypeScript + PixiJS + Live2D Cubism 4, with Tauri and Rust for the desktop shell.
What it left behind
Every step is archived as a dated log — asset placement, four-point calibration, click-through, a white-screen fix and the radial menu extension — each one recording the symptom, the root cause and how it was verified.