A university project for Advanced Programming (2024-2025) at the University of Trento, designed to manage and monitor a simulated drone network. This controller offers a Rust + Tauri backend and a React (Tauri) frontend for real-time visualization, network controls, and statistical analysis.
Welcome to the Simulation Controller — a tool that coordinates a network of drones, clients, and servers by:
- Loading and editing network topologies (via
.tomlfiles). - Sending and tracking packets in real time.
- Simulating disruptions (e.g., crashed drones, adjustable Packet Drop Rate).
- Analyzing delivery metrics and logs.
- Interactive Graph
- Observe the entire network as a node-link diagram.
- Click to see details or edit neighbors and links.
- Easily add or remove nodes and links with a few clicks.
- Node Details Panel
- Quickly change PDR, add/remove neighbors, or crash a drone.
- Real-time stats (packets sent, dropped) for each node.
- Live Logs
- A continuous stream of packet events—sent packets, flooding responses, etc.
- Filter by node ID, type, or packet category for fast diagnostics.
- Advanced Statistics
- Simulation Metrics like total packets sent, NACKs, or bytes transferred.
- Detailed breakdowns (heatmaps, host vs. drone comparisons) for performance analysis.
- Load/Save Configurations
- Upload
.tomlfiles or choose from built-in templates (like double-chain or tree). - Maintain a history of your configurations for quick rollback or comparison.
- Upload
- Global Parameters
- Set intervals for polling and discovery, define maximum logs, or enable Strict Mode.
- Customize the UI theme or endpoint URLs to fit your environment.
-
Initialization ✨
- Select/upload a
.tomlfile describing drones, clients, servers, and their links. - Configure simulation parameters (PDR, intervals, strict mode, etc.).
- The welcome screen provides quick steps (e.g., “Go to Settings,” “Open Simulation”)
- Select/upload a
-
Simulation Start 🚀
- The Rust backend spawns simulation threads.
- The UI displays the network graph and begins receiving updates in real time.
-
Real-Time Interaction ⚡
- Observe packet flow, logs, and stats.
- Crash drones or raise PDR to simulate failures.
- Send custom packets to test network reliability.
-
Data & Analysis 📈
- Use Logs to view hop-by-hop routing.
- Inspect performance metrics in Stats for latency, throughput, or drop rates.
-
Conclusion 🏁
- Pause or stop the simulation anytime.
- Export logs, switch configurations, or re-run with different parameters.
- Install Dependencies
bun install
- Run the Application
bun run tauri dev # or cargo tauri dev - Explore the UI
- Load your chosen
.tomlin Settings. - Open Simulation to see the live network.
- Start simulation using the Play button.
- Check Logs for packet events, use Stats for in-depth analysis, or head to Send to create custom packets.
- Load your chosen



