Back to Projects
CodeIn ProgressFebruary 2026

Augmented Reality

AR Time Capsule Scavenger Hunt

Augmented Reality preview

My Role

AR Lead

Duration

1 week

Team

Team Project

Status

In Progress

Fullstack

The Solution

Capsules is an augmented reality scavenger hunt game built to test AR capability offered by IOS.

Set in the year 2126, players use their iPhones to hunt for 17 AR time capsules placed around the bootcamp venue. Each capsule reveals a real cohort member's story and a letter fragment. Players collect letters, solve an anagram, and enter an escape phrase before time runs out, competing on a live leaderboard.

The game features 12 open capsules (visible in AR, tap to collect) and 5 locked capsules that require combining key fragments from nearby open capsules to unlock, adding a layer of puzzle-solving on top of the physical exploration.

Technical Approach

  • React Native + Swift bridging: The app is React Native (TypeScript) for UI and game logic, with a custom native Swift module for ARKit. Swift handles ARWorldMap (point cloud data) relocalisation and 3D object placement, bridged into React Native so the Javsascript layer controls game state while Swift handles the AR rendering.
  • Pre-mapped AR world: A separate capture tool (Xcode project) was used to pre-scan the venue and save an ARWorldMap. At runtime the app loads this map and relocalizes against it, placing capsules at real-world coordinates stored in a static JSON file.
  • Real-time backend: Express 5 on Bun with Socket.io handles game events — gameStart, gameOver, openCapsule, leaderboardUpdate — giving players a live shared experience.
  • iOS-only, no accounts: Distributed via TestFlight. Every QR scan is a fresh start — no login, no saved progress. This kept the scope tight and the onboarding instant.

What We Learned

  • Bridging native and JS is powerful but finicky. Getting the Swift ARKit module to communicate reliably with React Native required careful work on the bridging header, event emitters, and view managers. Once working, it gave us the best of both worlds — native AR performance with React's UI flexibility.
  • AR relocalisation is the hard part. Placing virtual objects in consistent real-world positions across different devices and lighting conditions was the biggest technical challenge. Careful pre-capturing the ARWorldMap of the venue was essential.
  • Keep scope ruthless. iOS-only, no accounts, no AI-generated content, indoor-only, hand-written capsule stories. Every constraint we embraced made the project shippable in time for Demo Day.
  • A 3-person team can ship an AR multiplayer game when responsibilities are clearly split (system integration, fullstack dev, AR specialist) and the tech choices match the team's strengths.

Interested in working together?

I'm always open to discussing new projects and opportunities.