Skip to main content

The Digital Twin PyPI version BluebirdATC logo

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.

Getting started

Installation

bluebird-dt is available on pypi, therefore it can be installed using

pip install bluebird-dt

or, if using UV, you can add it to your environment using

uv add bluebird-dt

Making an agent

To 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)
            ]
        )

Running the digital twin as a server.

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.

Documentation

The full documentation for the bluebird-dt package can be found at in https://docs.projectbluebird.ai

ProjectBluebird

Where logs are saved

When a simulation saves its logs (the per-run .log file and the replay .tar.gz archive), they are written to a per-user data directory rather than inside the installed package, so they are not lost when the virtual environment is rebuilt.

The location is resolved with platformdirs, a small cross-platform library that returns each operating system's conventional per-user data directory. The logs live under a bluebird-scenario-logs/bluebird_dt folder inside that directory:

Platform Default log location
Linux ~/.local/share/bluebird-scenario-logs/bluebird_dt (or $XDG_DATA_HOME/...)
macOS ~/Library/Application Support/bluebird-scenario-logs/bluebird_dt
Windows %LOCALAPPDATA%\bluebird-scenario-logs\bluebird_dt

To use a different location, set the BLUEBIRD_LOG_DIR environment variable before importing bluebird_dt; its value is used as the base directory instead of the platformdirs default.

Metadata

Release files for bluebird-dt 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bluebird-dt 0.4.0
File Size Uploaded Provenance
bluebird_dt-0.4.0.tar.gz 218.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bluebird-dt 0.4.0
File Interpreter ABI Platform
bluebird_dt-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 505.3 kB

Release files / bluebird_dt-0.4.0.tar.gz

Download URL bluebird_dt-0.4.0.tar.gz
Size 218.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d3ec60824989e73023eebded33ec37a82bef772a58f64815ad9228cf382509d5
BLAKE2b-256 checksum
How to use checksums
d153a6c208b827091d6b53cbc302331ab0cd841f5986d68a9b0a8c6abaed1259
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bluebird_dt-0.4.0-py3-none-any.whl

Download URL bluebird_dt-0.4.0-py3-none-any.whl
Size 287.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
981f84f464e4d73ad00b8b6f15f34508ac51ac4d7c7991d6445222629ce8e8d3
BLAKE2b-256 checksum
How to use checksums
065e19da3842890b1d41e1199eaccce750e7c0e4721469413be89787511d38cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for bluebird-dt 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page