Page counts
Every page here loads a GoatCounter script from playschmear.com,
another game of ours running on the same server. It sends the page path, the
referrer, the page title, and your screen size. The game adds a few counters of
its own: a session started, a session ended, and which airport you picked.
There are no cookies. Your IP address and user agent are salted and hashed so
repeat visits can be counted as one visitor, and the raw values are not stored.
High scores, and what a record carries
Beat your own previous best at an airport and the game posts that record to our server by itself. No prompt, no notice. It fires on a personal best, not only on a global one. What goes with it:
- a stable anonymous player id, generated in your browser
- your callsign, the score, and the airport
- a context block: browser user agent, the sim seed, a session code, your theme, and the build commit
- the full session tape: the seed plus your complete command log, up to about 60 KB
That last line deserves saying straight. The tape is a keystroke-level record of the session you just played: every command you issued, in order, with its timing. It exists because the sim is deterministic. Feed the tape back in and it reproduces that session move for move and lands on the same score, which is how a leaderboard claim gets audited instead of taken on faith. A score with no tape behind it is a number somebody typed.
The radio voices
The voices are a Kokoro model, 88.6 MB, fetched from
huggingface.co the first time you arm the radio and cached by your
browser after that, so it happens once. Individual voices are about 510 KB each
and come down as they are needed. Hugging Face therefore sees your IP address
and user agent. If it is unreachable, the same files come from
vectorheavy.com/models instead. Leave the radio off and none of it
is fetched.
The email box
If you type an address into the notify box and press the button, it goes to our server so we can mail you when the next thing ships. Nothing sends it for you, and nothing else on the site asks you for anything about yourself.
Bug reports
Sending a bug report is something you start: you open the box, type it, and press send. A checkbox there attaches your session tape, checked by default and yours to uncheck, and it rides along only with bug reports; the report itself carries the same context block a record does, browser user agent, sim seed, session code, theme, and build commit, plus your email if you type one.
What is not here
No web fonts loaded from someone else's server, no ad network, and no third-party tracker beyond the page counter above. Nothing is sold or handed on. The only two places anything goes are our own server and Hugging Face for the voice model.
Credits and licenses
- Voices: Kokoro-82M v1.0 ONNX, run in the browser through
kokoro-jsand Transformers.js. The model weights and both libraries are Apache 2.0. - Scope rendering: PixiJS, MIT.
- Airports, fixes, procedures, and phraseology: published FAA products, the FAA CIFP cycle, FAA Order JO 7110.65, and the AIM. Works of the US government, in the public domain.
VectorHeavy is an independent game, not affiliated with, sponsored by, or endorsed by the FAA. Airport and procedure data are derived from publicly available FAA products, and where the game simplifies a real rule the Fidelity Ledger says so and names the paragraph it departs from.
If anything on this page is wrong, out of date, or unclear, write to hello@vectorheavy.com and it gets fixed.