Explore by domain
The same engine, applied to three different problems. Each page explains the problem, shows the results and compares the swarm with what people do today.
Hospitality
Hotel operations
Five hotels: cutting peak-hour electricity charges, getting rooms ready for arriving guests, keeping overbooked guests in the group, and filling open shifts.
Energy
Grid batteries
Ten grid-scale batteries on a real Texas grid zone, working together to flatten demand peaks on three months of data they had never seen.
Emergency response
Wildfire drones
Six drones dropping retardant to contain fires they have never seen before, with a replay you can watch step by step.
How it works
One shared "brain", many independent members.
No central bottleneck
Each member decides from its own local view, so the system keeps working when there are thousands of members, or when one drops out.
One model, any size
Every member uses the same model. A battery swarm trained with 10 batteries ran unchanged with 100 and 1,000, and still delivered the same 949 MW peak cut.
Team goal, not selfish goals
Members are rewarded for the team result (a flatter grid, less forest burned, fewer guests waiting), so they learn to cover for each other.
Honest testing
Every result is measured on data or scenarios kept aside while building, and compared with today's practice and the best simple rule. Where the swarm loses, the pages say so.
Two kinds of swarm
Learned swarm
Members learn by trial and error in a simulator (multi-agent reinforcement learning). They can also start by copying a good human rule and then improve on it. This is used for batteries, drones, hotel equipment and room attendants.
Market swarm
Members bid for tasks or resources based on what they are worth to the team, like a quick internal auction. The best combination of bids wins. This is used when a fair price can be worked out directly: walked hotel guests bidding for sister-hotel rooms, and staff bidding for open shifts.
Under the hood
- Python and PyTorch, with one engine shared by all domains, each added as a small plug-in.
- Shared-parameter Q-networks with team-reward mixing (VDN and QMIX-style), Double DQN, n-step returns and action masks for hard rules.
- Optional attention-based messages between nearby members.
- Learning from demonstrations: pre-training on a rule's moves before reinforcement learning.
- Auction and contract-net markets, checked against exact optimisation (integer programming).
- Batched across members and parallel simulators, so training cost barely grows with swarm size.
The engine's source code is private. These pages publish its results.
Scaling test: the same model at 10, 100 and 1,000 members
Each model was trained at its original size, then run unchanged with more members. The battery fleet keeps the same total power, split among more batteries. The forest grows so each drone covers the same area, but all drones still launch from one pad.
| Domain | 10 members | 100 members | 1,000 members | What it shows |
|---|---|---|---|---|
| Grid batteries: peak cut | 949 MW | 949 MW | 949 MW | Identical result at every size. Choosing all 1,000 actions takes under 1 ms. |
| Wildfire drones: forest saved | 83% | 41% | 26% | Drops with size, and the simple rule drops too (79%, 47%, 40%). One launch pad can't serve a huge forest, so the next step is several pads. |