bluebird_dt encodes a digital twin of an airspace, including classes that represent:
- The geometry of the airspace - Sectors, Volumes, Airways, Fixes, ...
- Aircraft, with properties such as location, heading, flight level, ...
- Predictors, to model how the aircraft parameters evolve with the simulation.
- Action, defining the schema by which agents can interact with the simulation.
- Infrastructure classes such as Simulator, ScenarioManagers, EventHandlers, logger, to allow the user to define and run simulated ATC scenarios.
bluebird-dt is available on pypi, therefore it can be installed using
pip install bluebird-dtor, if using UV, you can add it to your environment using
uv add bluebird-dtTo run your first simulation, run the following script which issues a single instruction to an aircraft.
from bluebird_dt.core import Action
from bluebird_dt.simulator.simulator import Simulator
# Use Simulator
sim = Simulator.from_category("Artificial", "I-Sector Two Aircraft")
# Evolve for 60 seconds, in 6 second radar sweeps
for _ in range(0, 10):
sim.evolve(6)
# List all the aircraft in the airspace
print(sim.manager.environment.aircraft)
# Issue an action to one of the aircraft
sim.manager.receive_actions(
[
Action("AIR0", "change_flight_level_to", 200)
]
)
This example is very simple - various examples of using the bluebird-dt package can be found in the form of Jupyter notebooks in the examples directory.
A FastApi app is available as bluebird-api, allowing the simulation to be run as a server, with the user (or an agent) interacting via a REST API. For information on this, see GitHub or Pypi.
The full documentation for the bluebird-dt package can be found at in https://docs.projectbluebird.ai

