Description: Smart-Fly is a simulation framework for multi-timescale control in Flying Ad Hoc Networks (FANETs). It provides algorithms and tools for relay positioning, bandwidth assignment, and rate adaptation. The framework is designed for researchers, engineers, and students interested in wireless communications, UAV networking, and resource allocation. It aims to facilitate reproducible experiments and rapid prototyping of new algorithms.
What the project does: Simulates and analyzes relay positioning, bandwidth allocation, and rate adaptation in FANETs.
Who it is for: Researchers, engineers, and students in wireless communications and UAV networking.
The problem it solves: Provides a reproducible, extensible platform for evaluating and developing algorithms for multi-timescale control in drone-based networks.
This project is currently in active development. Core functionalities are working, but improvements and new features are ongoing.
- Language: Python 3
- Libraries: numpy, pandas, scipy, matplotlib, joblib
- Standalone simulation framework (no web UI)
All dependencies are listed in requirements.txt:
Clone the repository:
git clone https://github.com/INESCTEC/smart-fly.git
cd smart-fly/
wget -c https://drive.inesctec.pt/s/ikDAwbr9imC2acR/download -O configs/channel_data.zip # retrieve channel_data.zip compressed file from INESCTEC drive
unzip configs/channel_data.zip -d configs/Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtRun the main simulation with default simulation parameters:
python sim.pyTo use the optional plotting and parsing scripts:
python scripts/parser.py #change global variables adjusting to your needs
python scripts/plotter.py #change global variables adjusting to your needsSimulation parameters can be adjusted in variables.json.
This project is licensed under the GNU General Public License v3.0.
For support or inquiries:
- Rúben Queirós – ruben.queiros@inesctec.pt
If you use Smart-Fly in a scientific publication, please cite the project (citation details will be updated after publication).
