(2025) The Medallion Hunt
Overview
Between June 15th and August 15th, 2025, I built and ran a project called The Medallion Hunt — an interactive, city-wide treasure hunt where players could find animal-themed medallions hidden around Burnaby, BC.
Each medallion was represented by a poster showing the silhouette of a local British Columbia mammal with a QR code. When players scanned the code, it opened a web page that:
- Displayed the animal they had just “collected”
- Shared educational facts and a short video about that species
- Revealed clues and GPS hints to find additional medallions
- Unlocked a new chapter in an ongoing fictional story
As players discovered more medallions, they gradually pieced together a narrative about a mysterious aurora event that allows animals to speak with humans. The more medallions a player found, the more of the story they unlocked.
In total, there were 50 medallions, each linked to a different B.C. mammal — from beavers and coyotes to whales and porcupines.
Inspiration
The idea started when I was looking for a project that combined riddles, exploration, and cryptography. I wanted to create something that encouraged people to go outside and solve puzzles in the real world — a hybrid between geocaching and hide-and-seek.
Originally, I wanted to use cryptographic puzzles hidden across the city, but that scope was too big for a first version. I scaled it down into a simpler, family-friendly version focused on curiosity and storytelling.
The storyline was inspired by a real aurora event that lit up Vancouver’s sky in 2025. That became the foundation of the narrative:
What if the aurora awoke the animals and gave them the ability to talk?
Each animal collected unlocked a short, self-contained fable about this new world. The stories could be read in any order and still make sense.
Story
I wrote 50 story chapters using a fixed template to keep them consistent:
The animal introduces itself → comments on the magical aurora event → explains its perspective or personality → references two other animals → ends with a reason to move on.
This “Mad Libs” - style approach made it possible to finish all 50 chapters in a manageable timeframe while keeping tone and pacing consistent.
Because players could find the medallions in any order, every story needed to be independent while still contributing to the larger narrative.
To keep the story cohesive, every five chapters included a main storyline event that advanced the overall plot.
Example story
Part I: The Sky Splits Open
You’ve seen the Northern Lights before—just wisps of green hanging over the mountains, like nature’s screensaver. But last night? Last night was impossible.
It started after sunset. The sky didn’t shimmer—it roared to life. Sheets of violet and orange streaked overhead like spilled ink. Emerald sparks rained down over rooftops, glowing so bright you could see your reflection on the sidewalk. Every pigeon on your balcony stopped preening and stared straight up, mesmerized. So did you.
You didn’t move. Didn’t sleep. You stood on your balcony until the sun finally broke over the mountains, turning the aurora’s last threads into mist. When you finally stepped back inside, something felt different. Not just in the sky. In you.
You floated through your morning like you’d stepped out of gravity. By the time you pulled yourself together and headed outside, the whole city was buzzing with the same electric weirdness.
Mrs. Takahashi was in the hallway with her poodle, Bijou, tucked under one arm. She didn’t say hello. Just smiled knowingly and said, “You saw it, didn’t you?”
You nodded. “I couldn’t stop watching.”
She chuckled. “Neither could Bijou. The news called it a once-in-a-ten-thousand-year event. Scientists are still baffled.”
The streets were full of chatter—people retelling the aurora like it was a shared dream they weren’t ready to wake up from. You walked your usual path, cutting through Cherry Blossom Park, where the petals had long since fallen. But the birds were louder than ever, like they were gossiping about the sky.
And that’s when you saw it.
A bronze disc, no bigger than your palm, embedded perfectly into the old stone wall by the park exit. It wasn’t there yesterday. You knew this spot—you leaned against this wall almost every morning, sipping coffee, checking your phone.
But there it was. A small medallion, etched with the image of a curled-up squirrel.
You reached out and touched it.
Nothing happened.
You weren’t sure what you expected, but… maybe something. The metal was warm. Familiar. Like it had been waiting.
Then: “Finally!”
The voice came from above.
You jumped.
Perched on a cedar branch was a squirrel, small and twitchy, eyes wide with theatrical frustration.
“Finally,” he repeated. “I’ve been rehearsing this moment all week. Or a month? Time gets weird when solar flares are involved.”
You blinked. “You’re a… squirrel.”
“Technically,” he said, “I’m an Eastern gray squirrel. But you may call me Reginald Tobias Featherstone IV.”
You raised an eyebrow. “That’s a lot of name for a squirrel.”
He puffed up. “My mother had aspirations. My father had a thesaurus.”
Before you could speak, he scurried down the trunk and landed beside the medallion with a showman’s flair. He tapped it with one tiny paw.
“There. You touched it. Now you can hear me. That’s how it works. Touch the medallion, break the silence.”
You stared. “Why me?”
“Because you listened,” he said. “The animals have things to say. Opinions. Histories. Grievances. And now—for reasons I’m sure a marmot could explain in more philosophical terms—you can hear us.”
He darted around the medallion, gesturing wildly. “See the edge? Tiny marks. Each one a clue. This medallion points to others. And you need to find them.”
You crouched. The markings were faint but deliberate—like compass ticks or runes.
“How many are there?” you asked.
“Enough,” Reginald said, tail flicking. “Find one, and more reveal themselves. That’s how the world works now. The more you find, the more the world wakes up.”
You hesitated. “And if I find them all?”
Reginald blinked, twitched, and shrugged. “Some say the universe resets. Some say we ascend to a council of interspecies enlightenment and snacks. Skunk says the atoms explode at the speed of light. I think he’s being dramatic.”
A shadow passed overhead. Reginald screamed, “HAWK!” and bolted halfway up the tree, then peeked down.
“Will I be able to talk to birds too?”
“Birds?” he scoffed. “Feathered thieves. They gossip, they steal, and they poop with intent. No, the medallions are for mammals. Warm-blooded. Insightful. Handsome conversationalists.”
You opened your mouth to ask more, but Reginald was already halfway up the cedar.
“Find the next one,” he called. “It’s waiting. Just like I was.”
Then he vanished into the leaves, leaving you beside a quiet bronze medallion, a rippling sky memory, and a secret you could no longer unknow.
Technical Details
I wanted the project to be free to host and permanently accessible, so everything was done client-side using JavaScript and precompiled data.
The goal was to make the experience self-contained — an artifact that would live on even after the physical posters were gone.
Each medallion page included:
- The animal the player had just collected
- Five kid-friendly facts and an embedded YouTube documentary
- The current chapter of the story, ordered by the player’s discovery sequence
- A map showing discovered medallions and clues to the next ones
- Stats showing total medallions unlocked, remaining, and clues found
Tech Stack
- Leaflet.js — Mapping and marker clustering
- JSON database — Generated from a SQLite database for hosting on the site
- TypeScript — Used to generate HTML and static content
- Vanilla JavaScript & HTML — Simple, framework-free frontend
Full scource code can be found on the medallion-hunt github page.
Posters
I used TypeScript and a template to generate each of the posters, which included the animal name, silhouette, and a QR code.
All animal silhouettes were sourced from The Noun Project.
Each QR code contained a unique URL with an 8-character alphanumeric slug — small enough for compact QR codes but long enough to prevent easy guessing.
The posters were printed in full color and laminated for outdoor use.
Stats
- Total scans: 178 over 3 months (June–August)
- Single-medallion users: 105 people scanned only one
- Most popular animal: Bighorn Sheep (50 scans), followed by American Marten (19)
- Most medallions found by a single user: 32 of 50
- Most medallions found in one day by one user: 4
- Most medallions found in one day (total): 19 (June 17th)
- User locations: 65% Burnaby, 25% Vancouver, 3% Osoyoos, remainder <1%
Feedback
One of the posters was placed near my house. During an evening walk, I saw a group of children and their parents scanning it.
After they finished reading the story aloud, I introduced myself.
They told me it was their third poster, described their favorites, and mentioned that two others they’d searched for were missing.
It was rewarding to see people — especially kids — out exploring and engaging with something I had made in the real world.
What Worked Well
- Limiting the scope — Early versions involved complex cryptography that few would have appreciated. Simplifying it made the project accessible and fun.
- Client-side only — No server, no maintenance costs. While users could technically view the full database, very few did.
- Local storage — User progress was stored on their device, eliminating the need for accounts or logins.
- Community engagement — Every player was local. Seeing real people in my community interact with it made the effort deeply personal.
- Poster design — Clean layout, strong visuals, and a bold call to action helped the posters stand out.
- Mobile-friendly website — The simple, responsive layout worked flawlessly on phones.
- Google Analytics — Event tracking provided valuable insights into user behavior and feature engagement.
- AI-generated logo — I used Gemini to create the project logo. It fit well and saved a lot of time.
What I’d Do Differently Next Time
- Add the website URL to posters. Rookie mistake — some people couldn’t access the project without scanning.
- Include a claim code. A short alphanumeric code would let users manually enter a medallion if they didn’t want to scan the QR code.
- Avoid angled QR placement. Posters on hexagonal lamp posts made scanning difficult.
- Simplify riddles and clues. I spent too much time writing them; most players preferred straightforward exploration.
- Upgrade materials. Future versions should use metal medallions or acrylic plaques for long-term durability.
Final Thoughts
Building The Medallion Hunt taught me how to merge digital storytelling, physical design, and local engagement into one experience.
It reminded me that art and technology don’t have to live on screens — sometimes they work best taped to a lamppost where a curious kid might find them first.

