Claude Companion

A tiny pixel roommate. 190 moves, 134 looks, drawn live from code.

scroll to dig deeper

190 moves

Every tile is alive. Click one and your companion in the corner tries it right away.

134 looks

Colors, hats, glasses and a few questionable outfits. Click to put it on, click again to take it off.

Dressing room

Build an outfit, pick a move, then share the link or take the pixels home.

How it works

       .------------.
  [==] |  ▌      ▌  | [==]   arms
       |   eyes     |
       |            |
       '------------'
         ▌▌ ▌▌  ▌▌ ▌▌        legs
  48 × 40 pixels, no image files

There are no sprite sheets. The companion is a little rig of rectangles: a body, two arms, four legs and two eyes, redrawn twelve times a second.

Every move is one small function that bends that rig over time. Hats, glasses and scarves are tiny pixel maps pinned to the right spot.

neu("Moonwalk", "Unterwegs", (p, t) => {
  gehen(p, t, 1.5);
  p.augen = "zu";
  p.fx.push(fx("noten"));
}, { laeuft: -6 });

The ASCII world behind this page is generated too. Keep scrolling, it gets deep.