Swarm Squad: Episode I – Surviving the Jam
A 3D web simulation platform combining behavior-based formation control with LLM-powered decision making for autonomous multi-agent systems.
#Unmanned Aerial Vehicles #Multi-agent Systems #LLM Integration
#3D Simulation #Communication-aware #Formation Control
🔬 Research Evolution
- 🛸 Low-Level Controller: UAV agents with 3D formation control, path planning, and a V2V communication model
- 🤖 High-Level Controller: LLM chat agents that read live telemetry and issue strategic guidance through tools
- 🎯 Goal: Enable swarm resilience and mission completion under jamming, spoofing, and 3D obstacles
🚀 Getting Started
It is recommended to use uv to create a virtual environment and install the following package.
uv pip install swarm-squad-ep1
To run the application, simply type:
swarm-squad-ep1
# or
swarm-squad-ep1 --help
Access points:
- GUI:
http://localhost:5000 - Simulation API:
http://localhost:5001
🛠️ Development Installation
-
Clone the repository and navigate to project folder:
git clone https://github.com/Swarm-Squad/Swarm-Squad-Ep1 cd Swarm-Squad-Ep1
-
Install uv first:
# macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Install the required packages: Option 1 (recommended): Synchronizes environment with dependencies in pyproject.toml and uv.lock
uv sync --extra dev source .venv/bin/activate # .venv\Scripts\activate for Windows cp .env.example .env
Option 2 (manual): Manual editable installation without referencing lockfile
uv venv --python 3.11 # Create virtual environment source .venv/bin/activate # .venv\Scripts\activate for Windows uv pip install -e ".[dev]" cp .env.example .env
-
Start local dependencies (Qdrant via Docker, plus Ollama for chat):
docker compose up -d ollama serve
👨💻 Development Setup
-
Install git hooks:
pre-commit install --install-hooks
These hooks perform different checks at various stages:
commit-msg: Ensures commit messages follow the conventional formatpre-commit: Runs Ruff linting and formatting checks before each commitpre-push: Performs final validation before pushing to remote
-
Code Linting & Formatting:
ruff check --fix ruff check --select I --fix ruff format
-
Run the application:
uv run swarm-squad-ep1
Other useful commands:
uv run swarm-squad-ep1 gui uv run swarm-squad-ep1 services --simulation-only uv run swarm-squad-ep1 services --chat-only uv run swarm-squad-ep1 research list uv run swarm-squad-ep1 research smoke uv run pytest -q
Script-driven control:
from swarm_squad_ep1.client import SwarmSquadClient client = SwarmSquadClient() client.reset_simulation() client.set_algorithm(formation="communication_aware", path_algorithm="astar") client.add_jamming_zone(center=(12, 45, 10), radius=16, jam_type="low_jam") client.start_simulation()
📁 File Tree
📂Swarm-Squad-Ep1
┣ 📂docs // Guides, assignments, research notes
┣ 📂examples // Python client scripts and custom algorithms
┣ 📂src // Source code
┃ ┗ 📦swarm_squad_ep1 // Python package
┃ ┃ ┣ 📂algo // Formation, path planning, attack/defense
┃ ┃ ┃ ┣ 📄formation.py // Formation control
┃ ┃ ┃ ┣ 📄path_planning_3d.py // 3D path planning
┃ ┃ ┃ ┣ 📄v2v_channel.py // Vehicle-to-vehicle channel model
┃ ┃ ┃ ┣ 📄jamming_response.py // Jamming response
┃ ┃ ┃ ┣ 📄spoofing.py // Spoofing attacks
┃ ┃ ┃ ┣ 📄crypto_auth.py // Authentication / integrity
┃ ┃ ┃ ┗ 📄llm_controller.py // LLM controller
┃ ┃ ┣ 📂chat // LLM chat service and tools
┃ ┃ ┣ 📂gui // Browser 3D visualization
┃ ┃ ┃ ┗ 📂static
┃ ┃ ┃ ┣ 📄index.html // Web GUI
┃ ┃ ┃ ┗ 📂js
┃ ┃ ┃ ┗ 📄scene3d.js // 3D scene
┃ ┃ ┣ 📂rag // Qdrant retrieval
┃ ┃ ┣ 📂research // Headless E1-E6 experiment harness
┃ ┃ ┣ 📂simulation // Simulation backend and API
┃ ┃ ┣ 📄cli.py // CLI entry point
┃ ┃ ┣ 📄client.py // Python client
┃ ┃ ┗ 📄runtime.py // Dual-service launcher
┣ 📂tests // API, algorithm, and frontend contract tests
┣ 📄docker-compose.yml // Qdrant (+ optional Postgres)
┣ 📄.gitignore
┣ 📄.pre-commit-config.yaml
┣ 📄.python-version
┣ 📄README.md
┣ 📄pyproject.toml
┗ 📄uv.lock
📚 Guides:
- Getting started:
docs/getting-started.md - Runtime and CLI:
docs/runtime-and-cli.md - Python client:
docs/client-api-reference.md - Algorithms and threat model:
docs/algorithms-and-threat-model.md - Research harness:
docs/research-harness.md
Metadata
Release files for swarm-squad-ep1 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swarm_squad_ep1-0.3.0.tar.gz | 462.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swarm_squad_ep1-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 926.1 kB
Release files / swarm_squad_ep1-0.3.0.tar.gz
| Download URL | swarm_squad_ep1-0.3.0.tar.gz |
|---|---|
| Size | 462.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76cee4376a4048fff1122e2288bd5a4d7cac69ac8e943e72c8fa4e40e1d57a15
|
|
BLAKE2b-256 checksum How to use checksums |
b3fa3b16a62436699bcc1f43f6ebc857caf78c9fd2d3f6414bb94967fafb089f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / swarm_squad_ep1-0.3.0-py3-none-any.whl
| Download URL | swarm_squad_ep1-0.3.0-py3-none-any.whl |
|---|---|
| Size | 463.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e723b4456e2d0bd9be3d4d4b01bdbe9eda109420a6be3e5faa9b046c871a9fbb
|
|
BLAKE2b-256 checksum How to use checksums |
35425be88a0c77733e9e7ad3590e402c1006f47134f8c9ed84f9b400e5135c96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|