vectors
An air traffic control game: vector arrivals onto runways, launch departures, and keep the sky separated.
What it is.
vectors is a single-player air traffic control game that runs in the browser. Arrivals appear at the edge of the airspace, departures queue at the gate, and you are the tower. Click waypoints to route each arrival onto a runway, launch departures toward their assigned exits, and keep everyone apart.
There are four schematic airports: Heathrow, Haneda, San Francisco, and a fictional Island Field. Each has its own runway layout, crossing runways, restricted airspace, and airline mix. Traffic comes in quiet stretches and two-minute rushes. Every 30 or so handled flights, an operational review either hands you a perk or imposes a constraint: taxiway works, a runway inspection, a surge of business jets.
Why it exists.
Air traffic control is a planning problem that doesn't hold still. Every clearance you give changes the picture for every other aircraft, and the picture keeps moving while you think. I wanted a game that captured that feeling without pretending to be a simulator: simple rules, honest physics, and pressure that builds until one mistake ends the shift.
It is also a test of how far a small, carefully specified codebase can go. vectors has grown feature by feature, from one airport and a handful of aircraft to thunderstorms, emergencies, altitude separation, and a controller career, and the simulation still runs as a single pure engine that the UI only observes.
How it works.
The simulation is a pure TypeScript engine that advances in bounded substeps, independent of rendering. Aircraft turn through realistic arcs at a fixed rate, so faster aircraft need more room. The dotted route you see for the selected aircraft is predicted with the same movement model the aircraft actually flies: turn limits, waypoint capture, takeoff roll, go-arounds. Conflict warnings, fuel checks, and route rejections all run on that forecast, so what the map promises is what happens.
The world around the engine makes the shift feel alive. Airliners come in three sizes plus business jets and turboprops, each with its own speed and runway roll, and every flight carries a hidden fuel and passenger load that nudges its takeoff distance. Thunderstorms drift across the scope like weather-radar returns and close runways and exits under their red cores. Emergencies give you five minutes to get an aircraft on the ground. A daily challenge serves the same seeded traffic to everyone, and a career of per-airport ratings takes you from Trainee to Supervisor.
Everything is drawn from code: maps, aircraft silhouettes, weather. Sound cues are synthesized in the browser. There is no account and no backend state. Saves, personal bests, and career progress live in your browser.
Stack.
- Simulation
- Pure TypeScript engine with bounded substeps and a shared route-prediction model
- Interface
- React, with the airspace rendered on Canvas 2D (static terrain cached offscreen)
- Audio
- Web Audio, synthesized cues with no audio files
- Hosting
- Cloudflare Workers, built with Vite
Status.
Live and free to play at vectorsatc.com. It works best on a wide screen with a mouse. First-time players start with ATC School, a guided tutorial that teaches routing, departures, and conflict resolution before the first real shift.