TOTOWEROPS / AIRSPACE LAB
SYNTHETIC TRAINING
PYTHON SOURCE ↗

DECISION SUPPORT / RESEARCH SIMULATION

Hold the gap.
Prove the move.

Two flights are on a collision course. Ask the planner for a fix, approve it, and watch the gap reopen. Every step is checked against a fixed separation rule.

  1. 1Run planner
  2. 2Approve
  3. 3Accept readback
01APPROACH
SECTOR
5 MIN
XY PLANE / NAUTICAL MILESAPPROACH 04
SIM TIME00:00
TRACKPROJECTED CONFLICT5-MIN PROJECTIONRANGE 24 NM

GO DEEPER

Explore an encounterchoose a pair, inspect separation, seek through its forecast

HORIZONTAL SEPARATION · NM
VERTICAL SEPARATION · FT

Minutes ahead · dashed line: configured minimum · orange band: simultaneous intrusion interval

HORIZONTAL AT CURSOR
VERTICAL AT CURSOR

Below horizontal minimum
Below vertical minimum
Simultaneous interval

Intervals use the continuous policy calculation. The 81 plotted samples are a visual guide; they do not decide conflicts. Equality meets a minimum. Times and distances shown here are rounded.

Shape the trafficinject, build, perturb, time scale, safety envelope
BUILD A FLIGHTYOUR INPUT → LIVE WORLD

0° = north; 90° = east. Select a flight in the traffic register to edit it, or inject a new track.

Adjust the safety envelope

These values feed the planner and safety gate.

Every marker advances from its velocity vector. Add, edit or perturb traffic; the solver recomputes the live world.

Save or load a scenariotraffic, policy and clock in one local file

Save the traffic and complete separation policy in a local JSON file. Choose a file to review it before loading.

No scenario file selected.

Inspect or load a WorldStatethe raw JSON the solver sees

Paste a TowerOps state to run the same conflict detector and bounded planner on your own traffic. Export any live state to keep iterating.

One to 60 aircraft; finite numeric fields and unique callsigns required.

Under the hoodtraffic register, separation watch, hash-chained decision trace
LIVE REGISTERTraffic
0 FLIGHTS

Search callsigns only. Search and order change this list; traffic keeps its course.

0 of 0 flights shown

POLICY CHECKSeparation watch
CONTINUOUS MODEL
HASH-CHAINEDDecision trace
0 EVENTS

    Review and save the decision trail

    Check the recorded screening, approval, readback and actuation sequence. Pause traffic before a review. Opening a trace reads its history without loading aircraft or applying decisions.

    No trace file opened.

    Review up to 2 MiB of JSON and 5,000 events. Downloads preserve the original native trace.

    Reviews the recorded gate sequence and world links. It does not rerun the safety policy, recreate aircraft movement or authenticate an approval.

    THE RULES

    Deterministic by design.

    Tune the active separation envelope. The Python policy solves unsafe time intervals analytically; it does not sample a decorative path.

    5.0NM
    1,000FT
    5MIN