Cameo
- My Role
- Design and engineering
- Timeline
- 2025 – 2026
- Links
- Playground · npm
Where it started
About a year ago, talking to an AI felt like reading a wall of text. I thought it could have far more personality than that, and I kept coming back to the robots in WALL-E, who show who they are with little more than a pair of eyes.
I designed a character along those lines in Figma, and there it sat for a long time. What got it moving was a post from Benji Taylor, who had animated a character for Grok entirely in code. It was only a circle with eyes, but it expressed everything the product needed. That was the push to build mine the same way.
The goal was a system, not a mascot: one face that can show everything an AI product now shows with spinners, icons and text, and with enough personality that it is not boring. The four at the top of this page are the real thing running, not a recording.
Three ways to direct it
A product should not have to animate a face. It only says what is happening, and the character works out how to show it. There are three things a product can say.
- A state is what the product is doing right now. It stays until the product changes it: thinking for as long as a request takes, speaking while the answer plays.
- A gesture is one movement that plays once and ends by itself, like a nod or a wink.
- An event is something that just happened, such as a success or an error. The face reacts for a moment, and then goes back to the state it was in.
Try each one below. The lever is a state, the keys are gestures, and the lamps at the back are events. The paper strip along the front draws what the face did, which shows the difference at a glance: a step that stays up, a short spike, and a bump that comes back down.
Stateheld
Gestureplays once
Eventreacts, then back
What it notices by itself
The tank below is that number. Press an event to fill it, then leave it alone and watch it drain.
Eventfills to its mark
Leavingempties it
Attentionnow
70% idle
Two details here are deliberate. An event fills the tank to its own mark and no higher, so a hundred clicks cannot make the character more alert than one. And it falls asleep slowly but wakes at once, which is what makes it seem eager.
It reacts to what is being said
“Oh no, something went wrong.”
- 1Words written–
- 2Read: the face changes–
- 3Voice finishes–
How a mood is picked up
- 1The words are written. The voice model sends a transcript of what it is saying, about a second ahead of the sound. On the deck, that is the tape reaching the reading head.
- 2The sentence is read, and the face changes. Each finished sentence goes to Jev, and its mood comes back in about a third of a second. The strongest mood picks the face, and how sure the reading is sets how big the reaction is.
- 3The voice finishes the sentence. By then the face has already changed, usually more than half a second earlier. That gap is the tape still travelling to the playing head.
The tape is PIP's real voice from a live session, and every lamp lights at the moment its reading came back. In the tour the same reading also picks which photos come to the centre. The reactions are short and silent on purpose: a guide should look attentive, not like a puppet show.
How it moves
Most animation moves forward one frame at a time. Cameo's engine works differently: give it any moment in time and it works out the face for that moment directly. So it can pause, skip ahead or run backwards without losing its place, and a face scrolled off the page costs nothing.
The disc below is one change of expression, cut like a groove in a record. Drag the slider to any moment. Then switch off one of the five details that make the change feel alive, and watch its groove go flat:
- Anticipation. The eyes squint for a moment before they open wide.
- Eyes lead. The eyes move first and the body follows.
- Blink. A quick blink as the change begins.
- Settle. The eyes go slightly too far, then come back.
- Head arc. The head travels in a curve, not a straight line.
Momentturn to any
Change tofrom rest
Carried bytap to remove
Those five are how a change is carried. A second set of controls covers what the character does without being asked: blinking, glancing around, breathing, and how long its attention lasts. And if a visitor has asked their device for reduced motion, the character respects that, always.
One family, many faces
Designed for the people building with it
In use: PIP gives a tour
To see what the character adds to a real conversation, I built a spoken tour of my own background. PIP, one of the four characters, answers questions out loud. Its face follows its own voice and the mood of each sentence, and when it mentions a real moment, the photo of that moment comes to the centre of the stage. Point at a photo and it tells you the story behind it.
Try it yourself
Ask PIP about me.