Inspiration
Most students walk the same few buildings for four years. Maps tell you how to get somewhere, but not why you'd go. I wanted navigation to feel like exploration: a reason to walk to Malott at 9pm or the clock tower at midnight, and to learn the campus along the way.
What it does
Big Red Dex is a location-based creature hunt. Creatures live at real spots on campus and in Collegetown, each tied to a Big Red Hacks sponsor, a Cornell club or a local favorite.
- Follow the clue Each creature has a riddle and a warmer/colder signal pointing you to its spot. By day the map is a Field Journal; after sunset it flips to a Radar, following the real Ithaca sunset.
- Get close Walk into a creature's habitat and an alert pops up, then opens the encounter automatically.
- Catch it Face the creature in a full-screen battle arena themed after its company. Flick the Big Red ball to throw. Catches are logged in your Journal with where and when.
How we built it
Map & Navigation React + TypeScript + Vite, Leaflet on OpenStreetMap tiles, restyled per theme. On-device geofencing: the phone decides when you enter a zone, so GPS never streams to a server. SunCalc drives the day/night switch from the real sunrise and sunset. Spawns & Rarity Each creature has a time window plus a per-20-minute spawn roll (common → ultra rare), shared by every player so rare sightings are campus events. If a player fails to capture a creature, there is a 3 hour cooldown before the player is allowed to attempt another catch. Encounters Full-screen sponsor logo arenas that react to throws, misses and catches. Supabase sync; without it, progress stays on the device.
Challenges we ran into
GPS is noisy for tight zones Laptop and indoor fixes are off by 30m or more, but catch rings are 25–35m. Solution: count up to 20m of the phone's reported GPS error toward reaching a ring.
Camera AR felt flat Web AR can't anchor objects in the world on iPhone Safari. I tried a live camera backdrop and a compass-based camera search, but neither added much to the hunt. Solution: dropped the camera and put the effort into full-screen sponsor arenas, so arriving at a spot leads straight into the battle.
I cut my own 3D view I built a first-person walk mode (OpenStreetMap buildings, Google 3D Tiles) but the map was clearer and more fun. Solution: archived it (archive/walk/) and doubled down on the map and encounters.
Testing without walking across campus Solution: a demo mode that spawns everything, moves you by tapping the map, and can script an encounter.
Accomplishments that we're proud of
A day Field Journal and night Radar that switch with the real sun. Sponsor-themed battle arenas built from each company's logo.
What we learned
GPS is fuzzier than the map makes it look. On paper, a 25m catch ring around McGraw Tower is plenty. In practice, phone fixes near buildings drift by 20–30m, so you can stand in the right spot and never trigger anything. I learned to design around the error instead of ignoring it: the app counts up to 20m of the phone's own reported accuracy toward reaching a ring. Testing on a laptop isn't testing a location game. Real GPS and the phone's motion sensors only work over HTTPS, so I had to deploy early just to try it on my phone. Walking to McGraw at 1am showed me problems that never appeared on my desk. Build tools that make testing repeatable. Walking across campus every time I changed something wasn't realistic. So I added test links: one that guarantees a creature spawns, one that scripts the fight (miss five times, catch on the sixth) and one that wipes progress. They turned a 20-minute walk into a 10-second check, and the same links let me record a reliable demo. Cutting features is part of building. I built a 3D first-person walking mode, a live-camera battle background, and a compass-based camera search where you turn your phone to find the creature. All three worked, and all three got cut. Once I tried each one in person, the simpler version (a pop-up, then straight into the battle arena) felt faster and more fun. Archiving work that wasn't helping was harder than writing it, but it made the game better. Mobile browsers have their own rules. iPhone Safari only allows compass access after a tap, can't anchor AR objects in the world, and keeps an old version of a page open until you fully close the tab. Each of these changed how I built things. Small systems make a world feel shared. Spawn chances are rolled from the creature and the 20-minute time slot, not per player, so everyone sees the same rare spawn at the same moment. That one decision turns Kiln's ultra-rare appearance into a campus event rather than a private coin flip. Privacy can be a design choice, not an afterthought. Checking whether you've reached a creature happens on the phone, so your location never streams to a server. The only things the database ever sees are the catches you save.
What's next for Big Red Dex
Club event creatures: clubs drop limited-time creatures at their events. Orientation quests: a first-week route for new students. Friends & raids: catch rare creatures together at a set time and place. Any campus: new spots and creatures without code changes.
Built With
- canvas-confetti
- css3
- geolocation-api
- html5
- leaflet.js
- node.js
- openstreetmap
- react
- react-leaflet
- suncalc
- supabase
- svg
- typescript
- vercel
- vite
Log in or sign up for Devpost to join the conversation.