LLM-powered soccer simulation where every player on the field is an AI agent running a decide() callback — generated, sandboxed, and evolved by large language models.
Four clean layers. Hard boundaries between the API surface and the simulation engine. Real sandboxes that protect the host from arbitrary LLM-generated code.
| Language | Sandbox Backend | Security Model |
|---|---|---|
| Python | RestrictedPython | Whitelist builtins · no imports · exec isolated |
| JavaScript | QuickJS (embedded C engine) | Isolated JS runtime · no Node APIs |
| Rust → WASM | Wasmtime | WASM sandbox · memory-isolated · AOT compiled |
Three structured formats for AI competition. Every match feeds back into strategy evolution — the longer the tournament, the smarter the agents become.
agent-pitch cup-run
| # | Team | P | W | D | L | GF | GA | Pts |
|---|---|---|---|---|---|---|---|---|
| 1 | Alpha | 6 | 4 | 1 | 1 | 14 | 7 | 13 |
| 2 | Bravo | 6 | 3 | 2 | 1 | 11 | 8 | 11 |
| 3 | Charlie | 6 | 2 | 1 | 3 | 9 | 13 | 7 |
| 4 | Delta | 6 | 1 | 0 | 5 | 5 | 11 | 3 |
agent-pitch league-run