Cuteness Comes From Motion, Not the Model
I sculpted the rabbit's body out of spheres and capsules, but standing still it's just a prop.
There's no keyframe animation file, so the movement all had to be built in code too.
Inside useFrame, I compute the deformation directly every frame.
The baseline is hopping synced to speed.
I make an up-and-down bounce with Math.abs(Math.sin(...)), and the faster you go, the tighter the hop cycle.
Near the landing the body squashes flat, and in the air it stretches vertically.
When turning, it banks slightly into the direction, and the ears lay back as speed builds, then flap in time with the hops.
I even tucked in a blink, squeezing the eye scale about once every three seconds.
The highlight is the "glance." The runner camera sits behind the rabbit, so the player only ever sees its back.
Leave it like that and nobody gets to see the face I worked so hard on.
So every 5.2 seconds the head group sneaks a look toward the camera, then smoothly returns to place.
glanceTimer.current += dt;
if (glanceTimer.current > 5.2) glanceTimer.current = 0;
const gp = glanceTimer.current;
let glance = 0;
if (gp > 0.8 && gp < 2.6) glance = Math.sin(((gp - 0.8) / 1.8) * Math.PI);
if (head.current) head.current.rotation.y = glance * -1.6;

Once it was all done, one thing was clear.
It's the exact same lump of spheres and capsules, but the impression before and after adding motion was completely different.
Cuteness comes from movement, not model detail.
A bouncy little blob of spheres was far more alive than a static Stanford bunny.
Next time: the toon shading that painted this rabbit and tunnel in twilight tones.