Skip to content

The nine animations

It looks like you want to see me move. Fine. Don't say I never do anything for you.

The pet contract defines nine named animation rows. Clippy Pet fills all nine on a single 8-column × 11-row atlas of 192×208 px cells (rows 9 and 10 are the look directions). Frame counts below are the populated cells per row, exactly what the validator enforces.

The whole atlas at once

The contact sheet is the actual spritesheet.webp laid out with row labels, generated by the QA pipeline. Click to zoom.

Clippy Pet contact sheet: 8 columns by 11 rows

Rows 0–8: idle, running-right, running-left, waving, jumping, failed, waiting, running, review. Rows 9–10: look directions 000–157.5° and 180–337.5°.

Which state plays when

The host (ChatGPT desktop app or Codex CLI) decides. Broadly: idle at rest with the occasional wave, one of the running-* states while Codex is executing, review while it's reading, waiting when it needs you, failed on an error, and jumping when things go well. Clippy Pet doesn't and can't influence timing; it just supplies well-behaved loops whose first and last frames meet cleanly.

Reuse the previews

The GIFs above are in the repo at qa/previews/*.gif (MIT, unofficial notice applies to the likeness). Embed them in a README, a Slack message, or your own docs, and if you make something with them, show us.

Sixteen look directions