Skip to main content

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

  1. Clone the repository and navigate to project folder:

    git clone https://github.com/Swarm-Squad/Swarm-Squad-Ep1
    cd Swarm-Squad-Ep1
    
  2. 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"
    
  3. 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
    
  4. Start local dependencies (Qdrant via Docker, plus Ollama for chat):

    docker compose up -d
    ollama serve
    

👨‍💻 Development Setup

  1. Install git hooks:

    pre-commit install --install-hooks
    

    These hooks perform different checks at various stages:

    • commit-msg: Ensures commit messages follow the conventional format
    • pre-commit: Runs Ruff linting and formatting checks before each commit
    • pre-push: Performs final validation before pushing to remote
  2. Code Linting & Formatting:

    ruff check --fix
    ruff check --select I --fix
    ruff format
    
  3. 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)

Source distribution for swarm-squad-ep1 0.3.0
File Size Uploaded
swarm_squad_ep1-0.3.0.tar.gz 462.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for swarm-squad-ep1 0.3.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page