Goal
Add an on-screen avatar to CortechOS, similar to DMarcus (the themed mascot on dmarc.mx) — reactive to what's happening on the page. Could reuse DMarcus directly or design a cortech-palette sibling.
Reference
DMarcus has states like: building, scared, sleeping, thinking, etc. He's page-color-themed (adapts when the theme switches).
Desktop placement ideas
- Small (64–96px) animated sprite anchored to the bottom-right of the desktop area, above the taskbar.
- Doesn't intercept clicks, doesn't land in the window-manager z-stack.
- Optional "click to pet" interaction that cycles through a couple of easter-egg states.
Reactive states (initial set)
- idle / building — default loop
- sleepy — after ~60s of no interaction (mousemove/keydown)
- excited — when a window opens
- scared — when a window is dragged off-screen or force-closed (Cmd+W)
- proud — when the Support app opens or a sponsor link is clicked
Implementation sketch
src/components/os/Mascot.tsx as a small React component, subscribed to the zustand store for state transitions.
- Sprite: either a multi-frame SVG with CSS keyframes, or a spritesheet. Respect
prefers-reduced-motion — reduce to a static pose.
- If reusing DMarcus, extract the sprite from the dmarc.mx repo; re-theme palette via CSS variables so the cortech colors (amber/cyan/hot on void background) apply naturally.
Acceptance
- Avatar renders on desktop; does not render on mobile (MobileShell).
- At least 2 state transitions are visible in normal use (e.g. idle → excited on window open).
- Respects
prefers-reduced-motion: reduce (static pose, no animation).
- Click interaction is unobtrusive (no modal, no focus steal).
Additional reactive state (added 2026-04-13)
- dizzied — pseudo-LLM "tokens" rain in from above and bounce off the mascot; after enough hits (or 3 windows opened in <1.5s) the mascot wobbles with stars circling its head for ~3s, then returns to idle. See research comment for design.
Goal
Add an on-screen avatar to CortechOS, similar to DMarcus (the themed mascot on dmarc.mx) — reactive to what's happening on the page. Could reuse DMarcus directly or design a cortech-palette sibling.
Reference
DMarcus has states like: building, scared, sleeping, thinking, etc. He's page-color-themed (adapts when the theme switches).
Desktop placement ideas
Reactive states (initial set)
Implementation sketch
src/components/os/Mascot.tsxas a small React component, subscribed to the zustand store for state transitions.prefers-reduced-motion— reduce to a static pose.Acceptance
prefers-reduced-motion: reduce(static pose, no animation).Additional reactive state (added 2026-04-13)