Glow Ghost, a looping mascot animation built in Rive
A personal motion study, not client work. I recreated the motion of a reference glowing-ghost animation in Rive, to learn how far careful measuring can get a character to feel alive.
The idea
A small, friendly ghost that floats, blinks and glows. I wanted it to feel soft and cute, and to loop forever without a visible seam.
What I made
A purple ghost mascot with a glowing body, a simple face, a gentle floating bob and a waving hem.
A seamless 5.6 second loop, built as a single Rive animation.
A bigger scene with 24 ghosts at three depths, a different face on each one, and a "HAPPY HALLOWEEN" title that appears through a dither effect.
Glow Ghost scene with a purple hero ghost floating over smaller ghosts
How the motion was built
Measured, not guessed: I measured the reference frame by frame: the body width, how far the body bobs, how often it blinks, and how the hem moves. My first versions did not match, and the numbers fixed that.
The hem: a smooth wave that rotates around the rim, with a darker layer behind it that peeks out where the hems cross. That is what makes the bottom look like moving cloth.
The glow and grain: a soft feathered glow around the body and a light film grain on top.
The face: two dot eyes and a small smile, with a blink every few seconds.
The scene: each ghost has its own timing and face, so the crowd never moves in sync.
How it was made
The scene was written and built with the Rive CLI, and the frames were rendered and assembled into video with FFmpeg.
What I learned
Measuring a reference beats eyeballing it. Small things, like a hem that rotates and a blink that is slightly late, are what make a simple shape feel like a character.