Designing ATC RDR Exercises Using Familiar Tools

Can we use the tools we're used to at the workplace (QDM, SEP, drag and drop...) to create an ATC RDR exercise?
Can we iterate on the exercise design without having to switch context between a text editor and a simulator; have real-time situation overview and instant feedback whole time during the editing?

The importance of visual feedback

To create an exercise we start with a plan, depending of training stage, the purpose of the exercise, etc. imagining how it is going to look like. When the goal is defined, initial data prepared; starts the process of running a simulation to validate the data - further refinements to match the initial goal. The goal is a realistic simulation with appropriate sector occupancy matching the training plan. If there's anything wrong, we go back to an editor (it's usually a text one), make necessary adjustments, save, export and re-run the simulation to verify the results. If new ideas come up along the way - we go back to the editor. Most of the time, refining the exercise is spent in the editor working on text without an immediate connection to the impact of the edits. We have to maintain mental mapping and predict the impact of the modifications which can be overwhelming at times, eg. when a simulation includes multiple sectors and a lot of vertical profile changes.

Switching context to edit and run a simulator to validate inputs, interferes with the thought process making a complex simulation time-consuming and imprecise. It causes some of the initial plans to be skipped because of new conflicts occurring; the corners are cut by leaving out some of the elements for the sake of time and resource constraints.


Live editing with an interactive simulator in background

ATCStudio tests the way of designing simulations with an immediate response without the need of running a simulator to see and validate results. It explores the solution of making the process interactive and focused, using the tools ATCO is already familiar with, avoiding the need for switching context in the edit-reload-run loop.

A flight in the app can be created by choosing any location on the display. The clicked location becomes the flight starting position. The pre-populated "New Flight Sheet" will pop up (data can be edited) with the routes sorted by distance from the clicked position, it auto-selects the nearest flight route.
As soon as the flight is created, the simulation is updated and can be tested immediately. A time slider controlling the simulation time is located at the bottom of the display. Dragging a mouse over the time slider moves the simulation time back and forth displaying the traffic situation changes as you drag over the timeline (or rotate a mouse wheel).

Creating FPL and time control

After a flight's been created, the flight position can be modified by dragging and dropping the flight symbol to a new location at any time of the simulation. When the flight position is changed it's reflected immediately. Seeing the changes instantly is crucial for developing the exercise and carrying out the proposed plan.
If the dragging is started when the flight is at its starting position, dragging the flight symbol is going to change the starting position without changing the flight start time.

Changing a flight initial position

A flight position can be modified while the flight is somewhere along its route, not just at the initial position. eg. if you realise you want the flight to be slightly further or back along its route, in the middle of the simulation, you can simply drag the flight symbol along the route and drop it at another position on the route. It allows precise positioning of the flight to a new location along its route at any time.

In the example below, we're at time 00:04:28 of the simulation and we notice TCW502 having short separation with another traffic. We can move to the desired time on time slider, grab one of the flights and drag it back or forth along its route to adjust the separation between the flights at a specific time. The current simulation time will stay the same, but TCW502 position is going to change as you drag the mouse.
In the background, the operation is going to re-calculate the flight plan start time, respecting the aircraft type performance, calculating new start time to reach the specified position at the current time on the time slider:

Interactive retiming along a flight route

A flight plan re-timing can be also performed via Flight List window. The flight list shows the planning map of all the flight plans in the simulation. Sliding a flight strip changes the flight start time/position accordingly. It may be less precise than dragging the flight symbol on the display interactively, but the flight list provides a good overview of all the flights in the simulation and visual overview of the estimated times along the flights' routes and time occupancy. The flights' strips can be arranged vertically or arbitrary sorted. The list is always in sync with the simulation and displays the latest changes. By default, the flights are sorted by the assigned FL, but it can be overridden by drag and drop.

Flights list and sectors occupancy overview

Re-timing a flight or updating the flight position automatically triggers real-time:

  • route recalculation
  • safety net analysis
  • sector occupancy recalculation

Making it easier to get an overview of the occupancy of the sectors and conflicts between the flights at any time of the simulation. This way the simulation can be adjusted to match the initial exercise plan without interrupting the design workflow, without leaving the display screen from start to finish, providing immediate feedback of the changes. If necessary, the flight plan route can be edited on the fly.
Changing and analysing vertical profile changes are the same as we do it at a workplace, where the impact on other flights and sectors can be analysed for each second; there is a real-time display of the sectors occupancy. FL change action is recorded and can be undone at any time during a simulation. The unlimited undo/redo is part of the workflow, any destructive operation can be undone (route, FL, position change...) so there is no fear of making mistakes or starting over.

Changing a vertical profile, route and unlimited undo/redo


Once the exercise plan is fulfilled, the flight plan data can be exported to another format acceptable to another software. For internal use, I wrote BEST exporter module, but with plug-in modules, the simulation data can be exported to a format readable to another system.
We tested using Eurocontrol NEST output, importing the previous traffic data into the app to capture and replay some of the peak hours. The scenario is useful eg. when creating contingency training exercises.


ATCStudio can be used as a learning tool for both OJTI and ATC students. It takes a minute to create a traffic situation and validate possible results (radar vectoring, wind impact, route network, etc.), Different outcomes can be tested fast, with minimal interference due interactive create, edit, undo/redo support, with a minimal learning curve, in the familiar interface used at a workplace.

Further Improvements

Real-time safety net and airspace analysis are computationally expensive. ATCStudio goal is to keep 'close to real-time' interactivity so it doesn't reduce the degree of flexibility or impair thought process during working on an exercise, that is the paramount feature.
Since there can be a lot of elements processing at the same time, offloading a part of the computations to the graphic unit would improve responsiveness since the computational workload would be shared between CPU and GPU. It's significant for RT airspace analysis. I tested it on a small part.
It'd be interesting to connect the app to a real-time system eg. flight-radar to be able to capture and create simulations from real-time data.
Machine learning and analysis can help to automate and prototype new ideas.

A plan is to publish and maintain ATCStudio free for personal and educational use. If you're interested in supporting the development or have a suggestion, feel free to send me an email.

Technical Details

ATCScenario is written in Swift, SwiftUI, it runs on MacOS 10.15+. It's compatible with iPadOS (tested on iPad Pro, iPadOS 13.4) with minimal changes. For the initial release I focused on the desktop version since when editing a simulation on a smaller screen, the display easily becomes overcrowded.
PROJ.4 is used for cartographic projection and coordinate transformations.
Initially, the idea was born after I attended IANS - 'Design of ATC Simulation Exercises' course and working with different systems at SMATSA.


Aviation Formulary