Treasure Chest Opening. For Free on the Rive Marketplace
Why I Built This
Most gamified reward animations out there either move too fast to land emotionally, or feel too generic to be memorable. I thought it'd be fun to design a reusable interaction that solves for both, and share it openly so anyone can use it, modify it, or just learn from how it's rigged.
No paywall. No license fees. Just a clean file to play with.
The Idea
Turn a simple long-press into a micro-moment of tension and payoff. The kind of interaction that makes a product feel alive.
I designed the animation around anticipation as the core mechanic. The reveal isn't the point, the build-up is.
Design Decisions
Input-driven tension
The longer the user holds, the more the chest strains, shakes, and builds energy. Users control the pacing of their own reward.
Interruptible states
Release early and the chest snaps back to idle, no punishment, no broken state. It's a small detail that makes the interaction feel forgiving and responsive.
Production-first rigging
I built the file the way I'd hand it off to a dev team:
Clean, named state machine
Exposed inputs
Fully modifiable at runtime
Emotional payoff
The reveal uses layered easing, light rays, and a particle burst timed just after the lock breaks, so the payoff registers as earned.
Runtime updates in Flutter
Use It However You Want
This file is free to:
Download and drop into your own project
Modify, reskin it, rewire it, repurpose it
Learn from, open it up, inspect the state machine, see how it's built
The only thing I ask: please don't resell it as-is or as a remix. Other than that, it's yours.
Who It's For
Designers learning Rive
Developers prototyping reward flows, loot drops, or daily bonus systems
Teams who want an interaction they can customize
Anyone curious about how long-press mechanics can be rigged
Want Something Custom?
If you need a tailor-made version of this, or something entirely different for your product, game, or brand, I'm open to work. Let's build something people will actually remember.