Inspiration
Navigation apps get you somewhere as fast as possible, alone, staring at a blue line. We wanted the opposite: a reason to take the walk, notice the buildings you pass every day, and come back to them. Games like Pokémon GO and Pikmin Bloom showed that people will walk for a creature collection, so we asked: what if your pets were your navigation?
What it does
HuskiesPaws turns walking around campus into a pet-collecting adventure built on real places.
- A squad of pets that navigates for you. Your Scout explores and finds a real nearby landmark (from Wikipedia and OpenStreetMap), walks out to it on the map and comes back with a postcard: a real photo and a real fact, with the source linked. Your Pathfinder plans a walking route there, and your Storyteller reads the landmark's history aloud in a narrator's voice.
- Your trail blooms. Every step leaves flowers on the map; walking earns XP to climb from Bronze to Crystal leagues, each unlocking a new flower trail.
- Eggs hatch from walking only. Meadow, Forest and Crystal eggs hatch after 300 m, 600 m or 1 km; longer eggs hatch rarer pets. Six species, four classes, four rarities, and a hatch reveal. Rare pets are more likely while the ISS is passing overhead, using live orbital data.
- Claim real landmarks. Every real landmark near you is a food bag on the map. Walk within 60 m and leave a pet to guard it, or challenge a rival's guard in a 3D head-bashing battle with HP bars. Guards heal slowly, and each landmark you hold boosts your walking XP.
- AR squad view. Point your phone at the floor and your squad appears in 3D. Turn away and they stay put in the room, then run over to where you're looking.
- Leaderboards for your town, state and country, and an iMessage agent that lets you play by text, using your squad's names.
How we built it
- Phone app: Expo SDK 57 / React Native, running in Expo Go. Maps with react-native-maps (tilted, with 3D buildings), camera capture with expo-camera, step counting with the pedometer.
- 3D and AR: React Three Fiber and three.js on expo-gl. Pets are built from rounded blocks with cel shading and a painted face decal (generated in code). AR uses the phone's motion sensors to move the 3D camera with the phone.
- Server: a dependency-free Node API that holds every secret and serves voice, leaderboards and turf (claims, battles, HP). Bot rivals guard eight real Cornell landmarks so there's always someone to fight.
- Shared game logic in plain JavaScript, used by the app, the server and the iMessage agent, with tests for every rule (leagues, eggs, rarity odds, claims).
- Real data: Wikipedia geosearch and summaries for places and facts, OpenStreetMap/Nominatim and OSRM for regions and walking routes, wheretheiss.at for the ISS.
- Voice: ElevenLabs text-to-speech for stories (from the server, never from the phone); on-device speech for everything else.
- iMessage: a Photon Spectrum agent sharing the same game logic.
- We built it with AI coding tools (Cursor, Claude Code and Codex), and logged key prompts in
CURSOR_LOG.md.
Challenges we ran into
- "Freezes" that weren't freezes. Landmarks seemed to lock the app. We added a heartbeat log and found the JavaScript thread was fine: the landmark screen was reopening itself, because iOS re-selected the map marker after we refreshed it. A one-line guard fixed it.
- 3D on a phone's JavaScript thread. On Expo every graphics call shares the thread that handles taps. We capped rendering at 30 fps, preloaded the 3D code and replaced a dozen face meshes with one painted texture, doubling the frame rate.
- Real places are dense. Campus landmarks sit 20–30 m apart, so one spot could claim several. We spaced landmarks 130 m apart and set a 60 m claim range, so you're only ever in range of one.
- Two people, two coding agents, one repo. We split the work by layer (backend vs. presentation) and merged many times a night. Some merges silently undid each other, which taught us to run tests and lint on every merge.
- Infrastructure surprises: Expo's shared ngrok tunnel was full (we switched to a Cloudflare tunnel), and we hit API credit and key-permission limits mid-demo.
Accomplishments that we're proud of
- A full loop that works on a real phone: explore → walk → hatch → claim → battle, on real campus landmarks.
- 3D battles and an AR squad view running inside Expo Go, with no custom native build.
- Facts that come only from real sources: our pets never make up a fact about a place, and every postcard links to its source.
What we learned
- Measure before fixing: one heartbeat log saved hours of guessing about performance.
- Design for the demo floor: a demo mode with simulated walks, offline fallbacks for every online feature, and secrets kept only on the server.
- Game balance is mostly geometry: claim range vs. landmark spacing decided whether turf felt fair.
What's next for HuskiesPaws
- Deploying the server for everyone, with shared turf across players.
- Real AR anchoring (ARKit/ARCore) so pets stand on detected floors.
- iMessage alerts when an egg is about to hatch or your landmark is under attack.
- Accessibility routing (ramps, elevators) as part of the Pathfinder.
Built With
- asyncstorage
- cursor
- elevenlabs
- expo.io
- github
- javascript
- maplibre
- openfreemap
- openstreetmap
- photon
- react-native
- wheretheis.at
- wikipedia
- xaigrokvoice

Log in or sign up for Devpost to join the conversation.