AeroMesh 3D is a next-generation swarm coordination and digital twin platform built to automate multi-agent drone operations. It pairs a highly concurrent backend routing engine with an interactive, browser-based 3D cockpit.
Working directory: /home/deu/Coding Repos/AirSwarm-3D
Integrity mode: development
- Develop a FastAPI (Python) backend that runs a concurrent simulation of a drone swarm (supporting 10+ drones).
- Each drone has telemetry state: 3D position (
$x, y, z$ ), velocity, battery (decaying over time), and current mission status. - Implement a WebSocket server that streams the complete swarm telemetry to connected clients at 20Hz.
- Implement an API/WebSocket endpoint to receive a new "Swarm Target Goal" (
$x, y, z$ ) and dynamically spawn, delete, or move obstacles in the environment.
- Implement an Artificial Potential Field (APF) model in Python using NumPy/SciPy.
- The pathfinder must calculate attractive forces toward the target goal and repulsive forces away from obstacles and other drones.
- Prevent collisions: Ensure the distance between any two drones or any drone and obstacle remains above a safety threshold (e.g., 0.5 units).
- Build a React/Next.js dashboard incorporating Three.js / React Three Fiber.
- Render a 3D environment including:
- A grid or terrain landscape.
- Drones represented as 3D meshes (e.g., low-poly drone models or distinct spheres/shapes).
- Visualized obstacles (e.g., spheres or boxes) that can be dynamically placed, moved, or deleted by the user via the UI.
- Visualized target goal point.
- Historical flight paths/trails for each drone.
- Allow the user to:
- Click on the 3D floor/grid to set a new target goal.
- Click/toggle to place new obstacles in the 3D space.
- View real-time status of each drone (battery, coordinates, state) in a HUD/sidebar.
- Adjust flight parameters in real-time using UI controls (sliders for speed, swarm size, target altitude).
- A verification script (Python/Pytest) that:
- Connects to the WebSocket server.
- Asserts that telemetry updates are received at >= 18Hz over a 5-second window.
- Spawns a swarm of 10 drones, a start coordinate, a goal coordinate, and multiple dynamically placed obstacles in their path.
- Commands the swarm to the goal.
- Verifies that all 10 drones reach the goal within a reasonable time.
- Checks telemetry logs to ensure the distance between any drone and any obstacle, or between any two drones, never falls below the safety threshold of 0.5 units.
- Visual inspection of the 3D web interface:
- Dynamic target updating via click.
- Creating and moving obstacles dynamically in the 3D viewport, observing the drones pathfinding around them.
- Slider controls dynamically updating swarm size (up to 15+ drones) and speed.
- HUD displays updating coordinates, battery levels, and connection status.
- WebSocket telemetry streams at 20Hz (tolerance: >= 18Hz average under load).
- Backend routes calculations run at a high enough rate to maintain smooth movement.
- Drones successfully reach a set target goal from any starting point (excluding impossible/blocked spaces).
- Zero collisions: The minimum distance between any drone and any obstacle is >= 0.5 units at all times.
- Zero drone-to-drone collisions: The minimum distance between any two drones is >= 0.5 units at all times.
- Responsive 3D scene displaying drones, dynamic obstacles, path trails, and target goal.
- Interactive viewport: Operator can set swarm target by clicking in the 3D space.
- Dynamic Obstacle Placement: Operator can add and position obstacles in the 3D scene, which are immediately sent to the backend.
- Control dashboard: Sidebar controls (speed, swarm size, altitude) successfully update the backend simulation.
- HUD displays real-time telemetry metrics (
$x, y, z$ , battery, status) for all drones in the swarm.
Hi! The user has provided a design system in DESIGN.md at the workspace root for the UI styling and design aesthetics. Please ensure the Frontend Dashboard Track uses the exact styles, typography, spacing, and colors specified in DESIGN.md (e.g., canvas #090909, surface-1 #141414, accent-blue #0099ff, primary #ffffff, buttons as pills, and vibrant gradient spotlight cards/panels like violet #6a4cf5, magenta #d44df0, orange #ff7a3d, and coral #ff5577 to represent visual metrics and controls).