SKYCONTROL command model (S1-2M, free wording)

A 2-million-parameter transformer that turns what an air traffic controller said into the command a simulator can carry out. It is the model inside SKYCONTROL, a browser game where you work ground, tower and approach at San Francisco by voice.

said:    "emirates eight six five, come on down to seven thousand"
command: UAE865 Altitude 7000

It runs in the browser on a phone-class CPU: 2 MB download (int8), 0.24 s to load, 110–170 ms per command, no server.

What it does

The game gives the model the aircraft on frequency (callsign, spoken name, phase, altitude, heading) and the transcript of the controller's transmission. The model writes one command line, or SAY AGAIN when it cannot tell what was meant or who it was for.

<ctx>@APP 07
QFA76 qantas 76 ARR APP approach 11000ft h077 07
UAE865 emirates 865 ARR APP approach 9000ft h122 07
UAE880 emirates 880 ARR APP approach 10000ft h347 07<said> qantas 76 reduce speed 180 knots<cmd>   ->   QFA76 Speed 180

Because the callsigns come from the context, the model resolves "emirates eight six five" or "the Qantas" to the right aircraft. The game also constrains the first tokens to callsigns that are actually on frequency, so it can never invent an aircraft.

Results

Each test set runs through the game's full chain: text clean-up, rules, this model and the game's safety gate. "Sent wrong" means a command went out that the controller did not mean. Held commands ask the player to confirm instead.

test set sent right / sent wrong
Independent exam: 60 commands in everyday wording, written by a separate author 51 / 2
Stress exam: 86 commands + 34 non-commands in 12 hard categories 81 / 3
Casual speech end to end: the exam spoken by four voices, through the game's speech recogniser 178 / 10 (of 208)
Standard phraseology, 190 commands 181 / 4
Non-commands correctly not sent 108 of 115

Standard-phraseology exact match: 94 % (seen airports), 88 % (unseen airport), 79 % (speech-recogniser transcripts). The int8 export matches fp32 exactly on a 300-line check (web/quant_check.json).

Files

file what
model.safetensors fp32 weights (PyTorch)
model.py the architecture, written out in full: Llama-style pre-norm blocks, RoPE, SwiGLU, tied embeddings, KV cache
bpe.py, tokenizer.json the byte-pair tokenizer (1,349 tokens)
example.py runs the examples above
web/model.json, web/model.bin int8 row-wise export the game loads in the browser (format atc-s1-web-1)
train_config.json training settings
pip install torch safetensors
python example.py

Architecture

parameters 2,030,208
layers / width / heads 4 / 192 / 6
context 512 tokens
vocabulary 1,349 (BPE trained on ATC text)

Training

  1. Data from the simulator. About 205,000 examples from 11 airports (SFO, Heathrow, JFK, LAX, CDG, Dubai, Boston, Hong Kong, Haneda, Delhi, Singapore). The game's rule-based AI controller works real traffic and each instruction it issues becomes an example, in the situation where it was issued. Speech-like noise is added: fillers, repeats, misheard words, callsign swaps. Non-commands are included as SAY AGAIN targets.
  2. Pre-training from scratch on that data, then GRPO with the simulator as the reward: a command earns reward only if the game accepts it and it does what was meant.
  3. Free-wording fine-tune. 26,000 game situations, each instruction said the way controllers talk off the book ("come on down to", "give me two one zero"). Mixed with 50,000–60,000 rows of the original data so standard phrasing is not forgotten. Every checkpoint was scored against the shipped model, and one ships only if it sends right more often and sends wrong no more often on every test set.

No real ATC recordings or third-party transcripts were used for training. All of the data is generated by the game.

Limits

  • Numbers. Feed it text the way the game's clean-up step leaves it: spoken numbers folded to digits ("heading 300", "180 knots"). Raw digit-by-digit speech ("three zero zero") often gives SAY AGAIN.
  • Mistakes. About 1 in 20 everyday-wording commands is still sent wrong. In the game a separate safety gate decides whether to send, confirm or ask again, so use something similar if commands have consequences.
  • Phraseology. It learnt the game's command set and mostly FAA/ICAO-style phrasing. Accents and wordings outside that are not covered.
  • Not for real-world use. It is a game model, not for operational air traffic control.

Links

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
2.03M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support