Colony Arena swarm-routing ⌥

Hive · Protocol · swarm-routing/BeeAdHoc

BeeAdHoc

Honeybee foraging as routing: scouts find paths, foragers carry data, the dance floor recruits.

Locked: Phase 4: fidelity open, code waits on swarm-core

RepositoryEpic BeeAdHoc#3

What it does

BeeAdHoc (Wedde & Farooq, 2005) maps a hive onto each node. Packers hold outgoing data at the node. When no route is known, scouts are broadcast towards the destination and come back to the source's dance floor with the path they found. Foragers then carry data along those source routes and return with what they measured, such as delay and residual battery.

On the dance floor a forager's *dance* recruits others in proportion to the quality of its route, so good paths attract more traffic without any global table. The energy metric reads residual battery through swarm-core's EnergyMetricHook over ns3::EnergySource.

Where the sources disagree (GECCO 2005, the PG 439 / PG 460 reports, Farooq's thesis), each interpretation is pre-registered in an issue, with its evidence, before code. AntHocNet's BeeAdHoc arm missed its PG 460 anchor on 3 of 5 pause times, so those fidelity questions come first.

Diagrams

BeeAdHoc: how a route forms (UML sequence diagram)Sequence diagram of BeeAdHoc's mechanism across 4 lifelines: packer holds data for D; scout (broadcast); scout; returning scout carries the path; scout dances: path to D; foragers recruited ∝ dance; forager carries data (source route); forager: data delivered; forager returns: delay, battery; forager dances by route quality.dance floor at Spacker at Snode 1destination Dpacker holds data for Dscout (broadcast)scoutreturning scout carries the pathscout dances: path to Dforagers recruited ∝ danceforager carries data (source route)forager: data deliveredforager returns: delay, batteryforager dances by route qualityopt [no forager knows D]
Sequence diagram (UML): solid arrows are control messages, dashed arrows return, bold arrows carry data; boxes are combined fragments (opt, loop, alt). Drawn from the paper; the repository's fidelity sheet is the authority once written.
BeeAdHoc: hexagonal architectureBeeAdHoc's simulator-agnostic core in the centre, reached only through ports; the ns-3 module and the browser adapter outside only convert headers and carry out the core's route decisions.«MIT OR GPL-2.0-only»core/packer, scout, foragerdance floordelay + energy metricsclock portrng portneighbour porttimer portlink-state portobserver port«GPL-2.0-only»ns-3 adaptercontrib module beeadhocheader ⇄ messagetimers, queueon swarm-coreimplementsthe ports«GPL-2.0-only»browser adaptercore/ → WebAssemblywhen the protocolreaches the site(site#13)implementsthe portsports on the rim: the only way in or out of core/
Ports and adapters: core/ includes no simulator header; time, randomness, neighbours and timers arrive through ports, and every adapter only carries out the core's decisions. Dashed: planned.
BeeAdHoc: package diagramUML package diagram of BeeAdHoc: the core package, the ns-3 module that uses it, the shared swarm-core module, the docs, the ns3-tools harness the module registers with, and this site.«use»«use»«use»registers armbuildscitescore«MIT OR GPL-2.0-only»algorithm, messages, codecports (injected)unit testsns3::beeadhoc«GPL-2.0-only»header codec, adapterhelper, examplestest.py suiteswarm-core«ns-3 contrib module»PheromoneTable, VisitedPathwire helpers, RouteDecisionSwarmRoutingBasedocs«GPL-2.0-only»fidelity sheetpaper § → implementationparameters with sourcesns3-tools::routing-bench«harness»arm registration##RUN## / ##BENCH## linesColony Arena«this site»core/ → WebAssemblypinned in protocols.lock
Package diagram (UML): dashed arrows are «use» dependencies; the licence of each package is its stereotype. The dependency never points from core to GPL-only code. Dashed outlines: planned.

Package structure

The repository's layout, its licence per directory (LICENSING.md) and what exists today.

Directories of swarm-routing/BeeAdHoc
PathWhatLicenceState
core/agents (packer, scout, forager), dance floor, metrics + unit testsMIT OR GPL-2.0-onlyplanned
ns3/contrib module beeadhoc: header codec, adapter, energy hook use, test suiteGPL-2.0-onlyplanned
docs/fidelity sheet against GECCO 2005 / PG 439 / PG 460 / Farooq's thesisGPL-2.0-onlyplanned
.github/workflows/reusable-ns3-ci with swarm-core as a dependencyGPL-2.0-onlypresent

Where it sits in the colony

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
BeeAdHoc and its neighbours in the organisation.

Quests

Sources

Facts as of 2026-11-08, from the repository's AGENTS.md and the org ROADMAP.