A modern web client for the BlueSky Air Traffic Management (ATM) simulator. WebATM provides a standalone web interface with interactive aircraft visualization to control air traffic management simulations from the Web.
- Intuitive Aircraft Interaction: Single-click to fly to any aircraft, double-click to activate follow mode
- Customizable Aircraft Display: Toggle visibility of labels, icons, trails, routes, and shapes
- Flexible Aircraft Styling: Choose from chevron, drone, triangle, or aircraft icon styles and customise colors
- Smart Command Input: Tab completion for BlueSky commands with autosuggestion
- Flexible Map Projection: Switch between Web Mercator and 3D globe view powered by MapLibre GL
- Custom Map Sources: Configure custom tile sources to personalize your base map layer
- BlueSky Integration: Seamless connection to BlueSky ATM simulator servers
- Modern TypeScript Architecture: Fully type-safe, maintainable client-side codebase
Looking for more advanced features? WebATM Pro includes additional capabilities not available in this open source version:
- Server Development Environment: Modify and develop BlueSky server code directly from the web interface
- 3D Visualisation: Advanced 3D aircraft and terrain visualization
- Enhanced Server Management: Full control over BlueSky server lifecycle (stat/stop/restart)
- Multi-Server Support: Connect and manage multiple BlueSky simulation servers
- Flexible Deployment: amvlab can provide managed hosting or deploy on your local network for full data sovereignty
Visit amvlab.eu for Pro Version
- Python 3.13 or higher
- Node.js 22+ and npm (for TypeScript development)
- BlueSky ATM simulator (amvlab fork recommended) or TUDelft-CNS-ATM/bluesky version 1.1.0
WebATM works best with the amvlab fork of BlueSky, but is also compatible with the latest BlueSky from TU Delft.
-
Clone the repository
git clone https://github.com/amvlab/WebATM cd WebATM -
Install Python dependencies
pip install -r requirements.txt
-
Build TypeScript assets
script/build_ts.sh
-
Start the application
script/run_webatm.sh
-
Access the web interface
Open your browser to: http://localhost:8082
-
Build the Docker image
docker build -t webatm:latest . -
Start with Docker Compose
docker compose up -d
-
Access the web interface
Open your browser to: http://localhost:8082
-
View logs
docker compose logs -f webatm
| Variable | Description | Default |
|---|---|---|
WEB_HOST |
Web server bind address | localhost |
WEB_PORT |
Web server port | 8082 |
BLUESKY_SERVER_HOST |
BlueSky server hostname/IP | localhost |
WebATM connects to BlueSky servers using the standard BlueSky network ports (11000 and 11001).
Important: These ports are currently not configurable. Ensure your BlueSky server runs with default port configuration.
Python:
# Linting with Ruff
ruff check .
# Format code
ruff format .TypeScript:
cd WebATM/static/ts/
npm run type-checkCopyright (c) 2025 amvlab
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE file for details.
This software incorporates BlueSky - The Open Air Traffic Simulator technology developed by TU Delft (Delft University of Technology). We acknowledge and thank TU Delft for their contribution to the open aviation simulation community.
For inquiries and support, please contact amvlab.