/tangram

An open platform for modular, real-time aviation research

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Tangram

Tangram is an open framework that aggregates and processes ADS-B and Mode S surveillance data for real-time analysis. It provides a flexible plugin architecture where users can easily implement custom analyzers for their specific needs.

The system consists of a JavaScript frontend and a Python backend built with FastAPI. The backend efficiently aggregates data from multiple receiver streams and exposes a WebSocket interface, enabling real-time data visualization and analysis in the browser-based frontend.

Quick start

1. Install just - a command project-sepcific runner

2. Install podman - a container runtime

3. create a .env file from the template:

cp .env.example .env

4. pull and run a Redis container

This container is used for message caching between different services:

just redis

5. build the tangram and jet1090 container:

just build
just build-jet1090

6. run the jet1090 container:

Set the JET1090_PARAMS. For example, here you can use an example web socket provided by us:

JET1090_PARAMS=ws://feedme.mode-s.org:9876/40128@EHRD
just jet1090

You should be able to see the jet1090 console, which contains the data that is being received from the source, for example:

jet1090 console

7. run the tangram container, in a new terminal:

just run

You should be able to see the process composer console, which contains difference processes that are running in the background, for example:

process composer

8. visualize the live data:

Visit http://localhost:2024 in your browser.

Here is an example screenshot of the tool running in real-time:

web interface

Funding

This project is currently funded by the Dutch Research Council (NWO)'s Open Science Fund, OSF23.1.051: https://www.nwo.nl/en/projects/osf231051.

History

In 2020, @junzis and @xoolive published a paper Detecting and Measuring Turbulence from Mode S Surveillance Downlink Data on how real-time Mode S data can be used to detect turbulence.

Based on this method, @MichelKhalaf started developing this tool as part of his training with @xoolive in 2021, which was completed in Summer 2022. After that, the project was then lightly maintained by @xoolive and @junzis, while we have been applying for funding to continue this tool.

And in 2023, we received funding from NWO to continue the development of this tool. With this funding, @emctoo from Shintech was hired to work alongside us on this open-source project.