AUS-Lab

A project by Roman Slack — Lead AI Platform Engineer

AUS-Lab — a project by Roman Slack

Programming · October 2025 - Present · 15 hours · built by Roman Slack

View on GitHub →

AUS-Lab (Autonomous UAV Swarm Laboratory) is an experimental research platform created by Roman Slack for investigating LLM-driven cognitive control of UAV swarms. It links agentic reasoning with swarm simulation to explore the connection between swarm structures, hardware-in-the-loop (HIL) testing, agentic systems, and large language models, enabling autonomous coordination and adaptive behavior.

The platform provides a complete ecosystem for UAV swarm simulation, built around a high-performance Rust physics engine, a React and Three.js web visualization frontend, and an agentic controller that translates natural language commands into structured drone operations. A FastAPI server exposes REST endpoints and a WebSocket stream for real-time state updates, while the Rust engine (with PyO3 bindings) handles physics for swarms of drones. A floating chat interface in the web frontend connects to a separate agentic API that uses the Google Gemini API to interpret operator commands.

Operators can control the swarm in plain English through either the web UI or a CLI, issuing commands such as taking off to a set altitude, forming circles, lines, grids, or v-formations, sending individual drones to coordinates, or enabling a hivemind mode that moves the entire swarm as a single entity. The agentic controller supports a structured set of action types including takeoff, land, hover, goto, velocity, formation, and hivemind toggling, and offers a dry-run planning mode. As a notable research effort by Roman Slack, AUS-Lab bridges natural language agentic reasoning with real-time multi-drone physics simulation.

Key Features

Tech Stack

Python Rust FastAPI React Three.js TypeScript Google Gemini API PyO3 maturin WebSocket Node.js uvicorn

Designed and built by Roman Slack, Lead AI Platform Engineer. See more of Roman Slack's work on the projects page or get in touch via the contact page.