Technical Documentation¶
This section covers the internals of DeepFlyer: architecture, APIs, simulation stack, and deployment.
Pages marked In Progress are actively being written.
Section Status¶
| Page | Status |
|---|---|
| Architecture | In Progress |
| API Reference | In Progress |
| Simulation Stack | In Progress |
| Deployment | In Progress |
Platform Stack at a Glance¶
| Technology | Role |
|---|---|
| React + Vite | Browser UI and activity pages |
| TypeScript | Type-safe component code |
| Recharts | Reward graph and telemetry charts |
| WebSocket | Live two-way connection to the simulation |
| MJPEG stream | Live drone camera video feed |
| Technology | Role |
|---|---|
| FastAPI (Python) | REST API: auth, sessions, results, leaderboard |
| PostgreSQL | User accounts, activity results, badges, sessions |
| Docker Engine | Launches and destroys per-user simulation containers |
| JWT tokens | Authentication with 8-hour expiry |
| Technology | Role |
|---|---|
| Gazebo Harmonic | 3D physics simulation environment |
| PX4 SITL | Real flight controller firmware running in software |
| ROS 2 | Middleware connecting nodes to PX4 |
| offboard_control.py | Sends velocity and position commands, handles arming |
| pid_tuner.py | Applies gain changes and runs the straight-line test path |
| crash_detector.py | Monitors IMU data and flags crashes |
| WebSocket bridge | Forwards browser commands to ROS 2 |
| Component | Details |
|---|---|
| GPU acceleration | NVIDIA Container Toolkit, CUDA 12+ |
| Docker network | Isolated network named dronesim-net |
| Port ranges | API ports 9000-9099, Video ports 9100-9199 (one pair per user) |
| Idle timeout | Containers destroyed after 5 minutes of inactivity |
Want to contribute to the technical docs?
See the Contributing page for how to submit a pull request.