## 1. Your prompt, rewritten > "Animate my attached bot (a white sphere with two slanted black capsule eyes) using as many FX (effects) techniques as possible. Draw from early gaming through modern real-time 3D, film, video and painting. Think like an animator, director, game developer and fine artist. First give me the full catalog, ordered by sequence. Then build one bot at a time as a live, interactive demo. Keep the character consistent across all demos. Pause after each one. Flag any technique that needs an external API before you use it."
## 2. What option 19 shows
- **The face turns in 3D, not just sideways.** Each eye outline is placed on the sphere, rotated, then projected. When the bot looks far left, the eyes squash as they curve round the edge.
- **Eyes lead, head follows.** Two springs chase the same target: a fast one for the eyes, a slow one for the head. The eyes arrive first; the head catches up. Tick "Show gaze vectors" to watch three dots: target (coral), eyes (teal), head (purple).
- **The light never moves.** The highlight stays top-left while the face turns underneath it, which sells the rotation.
- **Four personalities, same machinery:**
| Personality | Head speed | Special behaviour |
|---|---|---|
| Curious | Quick | Leans toward you, happy squint when close |
| Shy | Medium | Looks away and leans back when you get close |
| Grumpy | Very slow | Half-lidded; rolls its eyes every few seconds |
| Cat | Very fast | Wide eyes, locks on; pounces when you move fast then stop |
- **Tap the bot:** it squints and hops.
## 3. Less obvious details
- **Blinks come with big glances.** Humans usually blink during large eye movements. Here, any target jump over about 30° triggers a blink. It's one of the strongest "alive" signals you can add.
- **Idle behaviour matters most.** When you stop interacting, the bot doesn't freeze. It follows the firefly and glances at random spots about a third of the time. A character that only reacts feels like a machine.
- **The cat pounce reads your speed.** The code tracks how fast your finger moves. Fast movement then stillness for a quarter-second triggers the pounce, like a real cat waiting for prey to stop.
- **Shy is defined by distance, not direction.** The same gaze system with one rule ("inside this radius, look away") creates a readable emotion.
## Examples
**Eyes lead, head follows**
```
angle
▲ target ─────────────────
│ eyes ╭────────────────── fast spring (k 500)
│ ╭╯ head ╭────────── slow spring (k 55)
│ ╭╯ ╭─╯
└──────────┴───────┴────────▶ time
face = head + clamp(eyes − head, ±lead)
```
**Pointer → gaze angles**
```
pointer ●
╱│ dy
╱ │
bot ●──────── dx
yaw = atan(dx ÷ 2.2R), pitch = atan(−dy ÷ 2.2R)
(closer pointer → bigger turn)
```
**Attention state machine**
```
pointer active? ── yes ─► TRACK ─► close? ─► curious: squint
│ shy: avert + lean back
no cat: still after fast? ─► POUNCE
▼
IDLE: firefly (65%) ⇄ random glance (35%) · blink on big jumps
grumpy: every 5–9 s ─► EYE ROLL
```
Stack mention: option 19 does not name an implementation (SVG, canvas, three.js, etc.) in the original Claude writeup.
D. Modern real-time 3D