Colony Arena swarm-routing ⌥

swarm-routing · 5 protocols, one colony

Colony Arena

Swarm-intelligence routing for wireless networks, built in the open: ants, bees and termites as network protocols, one shared ns-3 module, a protocol-agnostic test bench, tested simulator images, and reproducible data. Explore the colony; every place is a repository.

Play AntHocNet Explore the colony Read the docs How it runs

The game runs AntHocNet's original C++ routing core, compiled to WebAssembly and checked byte for byte against the native build (the pipeline).

Colony level

7/ 33 milestones

Counted from each project's quest list (as of 2026-11-08).

The colony map

Unlocked places are live; scaffolding means under construction; a padlock waits on its phase. Ants walk the trails between projects that depend on each other.

Protocols: the colonies

Foundations, tools and infrastructure

Package structure: the public repositories

Every public repository of swarm-routing, what it ships and under which licence. Private repositories are never listed.

The public repositories as a package diagramUML package diagram of the organisation's twelve public repositories in four rows: the five protocols; swarm-core and ns3-tools; .github, ns3-containers and benchmarks; this site and skills. Arrows show the main dependencies: protocols use swarm-core, the bench and swarm-core run in the ns3-dev images, the bench writes verdicts into benchmarks, this site builds AntHocNet's core, skills drives org-sync.«use»«use»«use»armbuilds inruns inverdictsbuilds core/drives org-syncextractsAntHocNet«protocol»core/ns3/anthocnetns3/routing-bench, ns3/baselinesARA«protocol»core/ns3/ module aradocs/fidelity.mdBeeAdHoc«protocol»core/ns3/ module beeadhocdocs/ fidelity sheetTermite«protocol»core/ns3/ module termitedocs/adr/, MakefileHOPNET«protocol»core/ns3/ module hopnetdocs/adr/, Makefilens3-swarm-core«foundation»core/ primitivesmodel/ ns-3 gluetest/, examples/swarm-core-seedns3-tools«tooling»ns3/routing-benchpython/ns3_toolns3/arms/<name>ns3-containers«tooling»docker/Dockerfile, docker/scripts/tools/ns3_matrix.pytest/ stages + fixturesbenchmarks«data»runs/<date>-<campaign>/verdicts/schemas/.github«commons».github/workflows/tools/checks/check-headers.pytools/org-sync/, templates/skills«commons».claude-plugin/marketplace.jsonplugins/org-repo/tools/checks/check-plugins.pyswarm-routing.github.io«site»site/hub/site/anthocnet/tools/
Package diagram (UML) of every public repository; the stereotype is its layer. Dashed outlines: planned, nothing but the bootstrap yet. Highlighted: this site.
Public repositories of swarm-routing
RepositoryLayerRolePackagesLicenceState
AntHocNetProtocolsthe reference protocol: ant colony routing, the org's origin
  • core/ (anthocnet::core)
  • ns3/anthocnet (module anthocnet)
  • ns3/routing-bench, ns3/baselines
  • docs/, api/, results/, tools/
core/, tools/: MIT OR GPL-2.0-only; rest GPL-2.0-onlylive
space · AGENTS.md
ARAProtocolsAnt-Colony-Based Routing Algorithm (Güneş et al. 2002)
  • core/ (planned)
  • ns3/ module ara (planned)
  • docs/fidelity.md (planned)
core/: MIT OR GPL-2.0-only; ns3/, docs: GPL-2.0-onlyplanned
space · AGENTS.md
BeeAdHocProtocolshoneybee routing (Wedde & Farooq 2005)
  • core/ (planned)
  • ns3/ module beeadhoc (planned)
  • docs/ fidelity sheet (planned)
core/: MIT OR GPL-2.0-only; ns3/, docs: GPL-2.0-onlyplanned
space · AGENTS.md
TermiteProtocolsstigmergy routing (Roth & Wicker 2003/2005)
  • core/ (planned)
  • ns3/ module termite (planned)
  • docs/adr/, Makefile
core/: MIT OR GPL-2.0-only; ns3/, docs: GPL-2.0-onlyplanned
space · AGENTS.md
HOPNETProtocolsants + zone routing (Wang 2007)
  • core/ (planned)
  • ns3/ module hopnet (planned)
  • docs/adr/, Makefile
core/: MIT OR GPL-2.0-only; ns3/, docs: GPL-2.0-onlyplanned
space · AGENTS.md
ns3-swarm-coreFoundationthe shared ns-3 contrib module swarm-core
  • core/ primitives (planned)
  • model/ ns-3 glue
  • test/, examples/swarm-core-seed
core/: MIT OR GPL-2.0-only; rest GPL-2.0-onlybuilding
space · AGENTS.md
ns3-toolsTooling and infrastructurecomparison harness, probes, arenas, readers
  • ns3/routing-bench (module routing-bench)
  • python/ns3_tool (readers, statistics)
  • ns3/arms/<name> (planned)
  • tools/checks/
python/, tools/: MIT OR GPL-2.0-only; ns3/: GPL-2.0-onlybuilding
space · AGENTS.md
ns3-containersTooling and infrastructureghcr.io/swarm-routing/ns3-dev images
  • docker/Dockerfile, docker/scripts/ (ns3-build-contrib)
  • tools/ns3_matrix.py
  • test/ stages + fixtures
tooling: MIT OR GPL-2.0-only; rest GPL-2.0-onlylive
space · AGENTS.md
benchmarksDataimmutable datasets, manifests, verdicts
  • runs/<date>-<campaign>/ (planned)
  • verdicts/ (planned)
  • schemas/ (planned)
GPL-2.0-only (data)planned
space · AGENTS.md
.githubSite and commonsorg defaults, reusable CI, labels, templates, org-sync
  • .github/workflows/ (reusable-*)
  • tools/checks/check-headers.py
  • tools/org-sync/, templates/
  • ISSUE_TEMPLATE/, labels.json, ROADMAP.md
MIT OR GPL-2.0-only (tooling); docs GPL-2.0-onlylive
space · AGENTS.md
skillsSite and commonsClaude Code plugin marketplace (org-repo)
  • .claude-plugin/marketplace.json
  • plugins/org-repo/
  • tools/checks/check-plugins.py
MIT OR GPL-2.0-only (tooling)live
space · AGENTS.md
swarm-routing.github.ioSite and commonsthis site: Colony Arena
  • site/hub/ (hub, projects.json)
  • site/anthocnet/ (AntHocNet's web/)
  • tools/ (build, render, checks)
  • protocols.lock
tools/: MIT OR GPL-2.0-only; site/: GPL-2.0-onlylive
this site · AGENTS.md

Quest log: the roadmap

The org's phases, from the ROADMAP. A phase is complete when its exit criteria are; each project's space lists its own.

  1. Phase 1Foundationsorg defaults, reusable CI, licence gate, ns3-dev imagescomplete
  2. Phase 2swarm-corethe shared contrib modulein progress
  3. Phase 3ARAfirst protocol on swarm-core, through the three gatesin progress
  4. Phase 4BeeAdHoc, tools, datasecond protocol, the harness, the dataset formatin progress
  5. SiteColony Arenathis site: every protocol in the browser, the leaderboardin progress
  6. Phase 5Termitestigmergy without control antsin progress
  7. LaterHOPNETants + zone routinglater

How the colony is built

Four rules hold the whole organisation together. Each diagram below is the rule drawn.

1. One algorithm, many adapters

Each protocol's core/ is simulator-agnostic C++ that receives time, randomness, neighbours and timers through ports. The ns-3 module and the browser adapter only convert headers and carry out the core's decisions, so the game on this site runs the very code the benchmarks measure, compiled to WebAssembly (the pipeline).

2. The licence boundary goes one way

core/ and standalone tools are MIT OR GPL-2.0-only; ns-3 modules, this site, docs and data are GPL-2.0-only. GPL code may use the dual parts, never the reverse.

3. Determinism, then pairing

A fixed seed gives byte-identical output, natively and in WebAssembly. Comparisons pair runs by seed over at least twenty seeds, and a script, not a reader, makes the noise call.

4. Pinned, never vendored

This site builds each protocol from its own repository at the commit in protocols.lock; simulator images are tested by digest and published numbers pin an immutable tag.

The swarm-routing organisation: who depends on whomDependency graph of the swarm-routing organisation. The five protocols link against swarm-core and register as arms in ns3-tools; swarm-core and ns3-tools build and run inside the ns3-containers images; ns3-tools writes verdicts into benchmarks; the Colony Arena site builds AntHocNet's core to WebAssembly and will render the benchmarks leaderboard; the .github repository provides every repository's reusable CI.linkslinkslinkslinksextractsarmarmarmbuilds inruns inverdictscore/ → WASMleaderboardCIAntHocNetprotocol · liveARAprotocolBeeAdHocprotocolTermiteprotocolHOPNETprotocolswarm-coreshared modulens3-toolsharness · readersns3-containersns3-dev imagesbenchmarksdatasets · verdictsColony Arenathis site.githubreusable CI · templatesdashed arrow: «use» dependency (UML); highlighted: this project and its neighbours
The organisation as a dependency graph (UML «use» arrows): protocols on top, the shared module and the bench in the middle, images, data and the org commons below.
A protocol's hexagonal architectureThe pattern every protocol follows: a simulator-agnostic core reached through ports, with an ns-3 adapter and a browser adapter outside.«MIT OR GPL-2.0-only»core/routing logicpheromone mathwire codecIClockIRngINeighborProviderITimerSchedulerILinkStateIRouterObserver«GPL-2.0-only»ns-3 adaptercontrib moduleon swarm-coreheader ⇄ messageimplementsthe ports«GPL-2.0-only»browser adaptercore/ → WebAssemblybyte-identical tracethis siteimplementsthe portsports on the rim: the only way in or out of core/
Ports and adapters, as every protocol repository lays them out (AntHocNet's ports shown).
From code to evidenceThe evidence chain: a protocol commit is pinned, built inside a tested ns3-dev image, run by the routing-bench harness over twenty or more seeds, judged by the ns3_tool scripts, stored with a manifest in benchmarks, and rendered on this site.protocol commit40-char SHAprotocols.lockns3-dev imagetested by digest-<sha7> tagrouting-bench≥ 20 seedsmarker linesns3_toolpaired Δnoise verdictbenchmarksruns + manifestverdictsColony Arenagame, docsleaderboard
The evidence chain. Every step is pinned or scripted, so any number can be rebuilt from its manifest.