Zero-trust-ready C2/telemetry slice for UAV/UGV/USV swarms with web operator console.
- Resilience: Message backbone (NATS JetStream) ensures buffering and replay during network blackouts
- MOSA-friendly: gRPC + Protobuf contracts, easy integration with ROS2/MAVLink bridges
- Enterprise stack: Rust services, observability-first (Prometheus + Grafana), structured for mTLS/SPIFFE
- Fast evaluation: One command to run; real defence teams can demo in 60 seconds
git clone https://github.com/your-org/aegismesh.git
cd aegismesh
# Set up environment variables
cp deploy/.env.example deploy/.env
# Edit deploy/.env and add your Mapbox token (get free token at https://account.mapbox.com)
# Start the system
docker compose -f deploy/docker-compose.dev.yml up --build
Open http://localhost:5173 to see live telemetry on a map of Turku, Finland.
Note: You need a free Mapbox token. Sign up at https://account.mapbox.com/access-tokens/ and add it to deploy/.env
.
Run these acceptance tests:
- Sanity: See at least two markers moving on the map with headings and unit IDs
- Blackout:
docker stop aegismesh-gateway-1
for 20s, thendocker start aegismesh-gateway-1
; UI resumes without crash - Loss profile:
./scripts/netem.sh dirtyrf on
for 2 minutes, then./scripts/netem.sh dirtyrf off
; UI stutters but recovers (Linux only)
Visit Prometheus at http://localhost:9095 and Grafana at http://localhost:3000 (dashboard preloaded).
Test system scalability with multiple agents:
# Generate config for N agents (e.g., 100)
python3 scripts/generate_loadtest_compose.py 100 > deploy/docker-compose.100agents.yml
# Start load test
docker compose -f deploy/docker-compose.100agents.yml up -d
# View all units on the map
open http://localhost:5173
Performance notes:
- 100 agents: ~500 msgs/sec, works on most systems
- 200+ agents: May require increased Docker resources
- 1000+ agents: Requires production deployment (not docker-compose)
This is a research/testing/training platform. Not intended for weapon guidance or autonomous lethal operations.
swarm
uav
ugv
usv
ros2
mavlink
c2
nats
grpc
quic
opentelemetry
grafana
simulation
mesh-networking
zero-trust
spiffe
prometheus
rust
react
vite
mapbox
protobuf
jetstream
- ARCHITECTURE.md – Component overview and data flow
- SECURITY.md – How to add mTLS/SPIFFE later
- CONTRIBUTING.md – Issues, PR style, DCO/CLA
- CODE_OF_CONDUCT.md – Community standards
- docs/AAR_SAMPLE.md – Example After-Action Report
Apache-2.0