From a 1980s physical board game prototype to a real-time multiplayer web app on Ordnance Survey Maps — built in 5 weeks with a team of 3.

In Memory of Kerry Barrett

Oscillation was created by Kerry Barrett, a lifelong Ordnance Survey surveyor who believed that inside every map, a fun and interesting game could be found. He spent years designing the game in the 1980s and 90s, and even presented it to Waddingtons, the game manufacturer. Kerry passed away in 2012. This digital version is a tribute to his creativity and passion for maps — bringing his vision to life on the very Ordnance Survey maps he devoted his career to.

13.7K
Lines of TypeScript
125 source files
107
Total Commits
80 in active development
58
React Components
73 component files
5
Weeks Active Dev
31 Jan — 3 Mar 2026

Project Journey

Phase 1: Prototype (2024)

PeriodJan 2024
Commits27
DeveloperNick
StackReact + Recoil + Remult
FeaturesMaps, dice, grid selection
DeploymentFly.io (Docker)

Phase 2: Full Game (2026)

Period31 Jan — 3 Mar 2026
Commits80
TeamNick, Ben, James
StackT3 (Next.js + tRPC + Prisma)
FeaturesMultiplayer, cards, bots, POIs
LOC Growth+13,700 lines

Contributor Breakdown

Nick 61%
Ben 22%
James 17%
Contributor Commits Lines Added Lines Removed Active Period Focus Areas
Nick (nbarrett) 65 59,536 40,541 Jan 2024 — Feb 2026 Architecture, deployment, multiplayer, auth
Ben (BenmanB) 24 9,727 1,773 Feb — Mar 2026 POIs, cards, game phases, map features
James (James Barrett) 18 2,275 1,298 Feb — Mar 2026 Movement, bots, path building, UI fixes

Weekly Commit Activity

Architecture Metrics

13
tRPC Routers
6
Prisma Models
3
Zustand Stores
53
NPM Packages
37 deps + 16 devDeps
Component Count Details
React Components58Game UI, map, lobby, dice, cards
tRPC Routers13game, auth, admin, locations, cards, etc.
Prisma Models6User, GameSession, GamePlayer, Card, CardDraw, Location
Database Migrations3Initial schema + incremental changes
Server Files17API routers, auth, Overpass integration
Component Files73TSX components + supporting modules

Largest Files

Stack Migration

Before (2024)

FrameworkReact (CRA)
StateRecoil
BackendRemult
MapsLeaflet + OSM
RoutingManual API routes
AuthNone

After (2026)

FrameworkNext.js 14 (App Router)
StateZustand
BackendtRPC + Prisma
MapsLeaflet + OS Maps API
RoutingtRPC type-safe RPCs
AuthNextAuth (PIN-based)

Mapping & Geography

OS Powered by Ordnance Survey Maps API
ProjectionBritish National Grid (EPSG:27700)
TilesOS Maps API (OS Data Hub)
Grid System1km OS Grid Squares with 6-digit references
Coordinate Conversionproj4 for accurate BNG conversion
POI DataOverpass API (OpenStreetMap)
Road NetworkA & B roads from OS Maps
Game FeaturesChurches, pubs, schools, phone boxes on real map locations

Development Timeline

3 Mar 2026
Bot Players & Build Fixes
Configurable bot count, stale session recovery, build stabilisation (9 commits)
24-26 Feb 2026
Card System & Smart Bots
Three digitised card decks from Kerry's original game, mid-movement triggers, smart bot AI with objective arrows (13 commits)
17-22 Feb 2026
Game Phases & Dev Tooling
Full game phase system (lobby/picking/playing/ended), win condition, claude-swarm integration (15 commits)
10-16 Feb 2026
Movement System & POIs
Grid-based movement on A/B roads, 5-type POI system matching Kerry's original categories, bounded game area (16 commits)
3 Feb 2026
OS Grid Overlay
Ordnance Survey grid overlay with 6-digit British National Grid references (1 commit)
31 Jan — 2 Feb 2026
T3 Stack & Multiplayer
Full T3 migration, Fly.io deployment, real-time multiplayer, user auth (26 commits)
Sep 2025
Dockerisation
Docker setup and initial Fly.io deployment
Jan 2024
Initial Prototype
Frontend with Recoil, route calculation, OS Maps integration, dice roller (27 commits)
1980s — 2012
Kerry Barrett's Original Game
Physical board game designed on 1:50,000 OS maps. Presented to Waddingtons. One prototype made, played by family and friends for decades.

Technology Stack

Frontend

Next.js 14
React 18
TypeScript
Zustand
Material UI
React-Leaflet
proj4
Tailwind CSS

Backend

tRPC
Prisma
PostgreSQL
NextAuth
Overpass API
OS Maps API
bcrypt
Zod

Infrastructure

Fly.io
Docker
GitHub Actions
Neon (PG)
pnpm