Skip to content

feat: livelier character animations and improved timing#100

Open
Commandershadow9 wants to merge 1 commit intopablodelucca:mainfrom
Commandershadow9:feat/livelier-animations
Open

feat: livelier character animations and improved timing#100
Commandershadow9 wants to merge 1 commit intopablodelucca:mainfrom
Commandershadow9:feat/livelier-animations

Conversation

@Commandershadow9
Copy link

@Commandershadow9 Commandershadow9 commented Mar 9, 2026

Motivation

Characters currently feel static — they sit frozen for 2–4 minutes between movements, status bubbles vanish after just 2 seconds (too fast to read), the matrix spawn effect is nearly invisible at 0.3s, and idle characters are completely still with no animation.

This makes the office feel lifeless, even when agents are actively working.

Changes

All changes are isolated to constant values and one small animation loop — no architectural changes, no new dependencies.

Timing constants (webview-ui/src/constants.ts)

Constant Before After Why
TYPE_FRAME_DURATION_SEC 0.3 0.18 Faster, more energetic typing animation
SEAT_REST_MIN/MAX_SEC 120–240 30–70 Characters get up and wander more often
WANDER_PAUSE_MIN/MAX_SEC 2–20 1–6 Smoother, more natural roaming
WANDER_MOVES_BEFORE_REST_MIN/MAX 3–6 5–12 Characters explore further before sitting
INACTIVE_SEAT_TIMER_MIN_SEC 3.0 1.5 Quicker idle transition
INACTIVE_SEAT_TIMER_RANGE_SEC 2.0 1.0 Less variance in idle timing
WAITING_BUBBLE_DURATION_SEC 2.0 15.0 Users can actually read tool status text
DISMISS_BUBBLE_FAST_FADE_SEC 0.3 2.0 Smoother bubble fade-out
BUBBLE_FADE_DURATION_SEC 0.5 1.5 Gentler transition when bubbles disappear
MATRIX_EFFECT_DURATION_SEC 0.3 1.8 Sub-agent spawn effect becomes clearly visible
MATRIX_COLUMN_STAGGER_RANGE 0.3 0.4 More dramatic cascading rain effect

Idle breathing animation (webview-ui/src/office/engine/characters.ts)

  • New IDLE_FRAME_DURATION_SEC = 2.5 constant
  • IDLE state now cycles between walk frames 0 and 1 every 2.5s
  • Characters subtly "breathe" instead of standing completely frozen
  • Uses existing walk sprite frames — no new assets needed

Why this matters

The core appeal of Pixel Agents is watching characters react to your development workflow. These changes make the office feel alive even during quiet moments, and ensure that important status information (tool bubbles, spawn effects) is actually visible to the user.

Test plan

  • Open Pixel Agents panel, observe characters wander more frequently (~30–70s vs ~2–4min)
  • Trigger a tool execution — verify status bubble stays visible for ~15 seconds
  • Spawn a sub-agent (Agent tool) — verify matrix rain effect is slower and clearly visible (~1.8s)
  • Leave agent idle — verify character subtly alternates between frames (breathing) instead of freezing
  • Verify typing animation looks natural at the faster speed (0.18s per frame)

🤖 Generated with Claude Code

Characters feel static and lifeless with the current default timing values.
This improves the experience by tuning animation constants for more dynamic
behavior:

- Faster typing animation (0.3s → 0.18s per frame) for more energetic feel
- Shorter seat rest before wandering (2-4min → 30-70s)
- Shorter wander pauses (2-20s → 1-6s) for smoother roaming
- More wander steps per cycle (3-6 → 5-12) so characters explore further
- Quicker transition from inactive to idle (3-5s → 1.5-2.5s)
- Longer speech bubbles (2s → 15s) so users can read tool status
- Slower bubble fade (0.5s → 1.5s) for smoother transition
- Slower dismiss bubble fade (0.3s → 2s)
- Dramatically slower matrix spawn effect (0.3s → 1.8s) making
  sub-agent spawns a visible event instead of an instant flash
- Wider matrix column stagger (0.3 → 0.4) for cascading rain effect
- Idle breathing animation: characters subtly shift between walk
  frames every 2.5s instead of being completely frozen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant