A small interactive Rive toy inspired by the classic 80s Magic 8 Ball, designed to feel physical and replayable while staying fully vector-based.
Goal
Translate an iconic physical toy into a digital micro-interaction
Keep the visuals clean, vector-based, and scalable
Add real replay value by generating random answers (without feeling repetitive)
What I built (interaction)
Click / tap triggers a “shake” animation
A reveal moment shows a new oracle response on the internal cube
The experience can be repeated endlessly, producing a fresh answer each tim
To avoid fixed outcomes, I added Rive scripting that listens to a reveal trigger and updates a ViewModel text property (cubetext) with a randomized answer, including a simple no-immediate-repeat check.
Tools/Tech: Rive (vector + feathering), animation/state machine, Rive scripting (random answer generator).