All projects

Tool · 2025 – present Project 8 of 20

Grace

A pixel-art cat that wanders across a stream.

Visit the site

Verified site status: Up, 37 ms response,

The pixel-art cat Grace next to her food and water bowls and a scratching post

At a glance

Role
Author
Period
2025 – present
Status
Live
Technologies
6 technologies

Grace is an OBS overlay: a pixel-art cat that wanders across the stream, sleeps, scratches a post and meows at her bowl when she gets hungry. She can be fed and petted with a click or with commands in the Twitch chat.

Technically interesting

  • One file. The whole overlay is a single HTML file with a canvas and one dependency, tmi.js for reading the chat. The animation runs on requestAnimationFrame, and pixels stay sharp when scaled up.
  • Sound without files. The meow is synthesised with the Web Audio API, so the overlay needs no sound files.
  • A state machine. The cat walks, sits, eats, drinks, scratches, begs, jumps and sleeps. As she gets hungrier she looks for her bowl, and when it is empty she begs for a while and then gives up, so she never gets stuck.
  • Chat. Once a channel is set in the configuration, she responds to !feed, !water, !pet, !jump and !sleep.
  • Sprites from code. I generated the bowls, the scratching post and the sleeping pose with Python scripts (Pillow).

Built with

  • JavaScript
  • Canvas
  • Web Audio API
  • tmi.js
  • Python
  • Pillow

Keyboard shortcuts.

Keyboard shortcuts for this site. They stay quiet while you type into a form.

This site

?
This help
g
12-column grid, components and page metrics
d
Appearance: system, light, dark, Linkin Park
Ctrl P
Print the CV instead of the website
Esc
Close the dialog or the grid

The blue dot after the name can be grabbed and thrown.

Linkin Park

l setlist lp
The setlist, songs by album
papercut
The page tears like paper
numb
The site goes numb for a few seconds
faint
The page faints and comes round
meteora
A meteor shower and a direct hit on the dot after the name
fromzero emily
The site fades down to zero and is reborn, with thanks to Emily Armstrong
concert koncert
Concert: the site runs through the colours of every album
castleofglass
The page turns to glass, cracks and shatters
iridescent
Headings and dots shimmer in rainbow colours
breakingthehabit
Whatever is on screen falls apart and snaps back
intheend
End credits, like at the cinema
victim morethevictim
The site breaks up in a glitch and stays distorted (until a reload, another word or Esc)
finalmasquerade
A masquerade mask over the whole site, the camera flies through an eye
lost
Off to the 404 page

Type the words anywhere outside the form; case and spaces do not matter. With reduced motion you get a short note instead.

On a phone, five taps on the blue dot after the name open the setlist.