Skip to content

Concepts — the ladder

BrainlessLab is a ladder of collectives: the same idea — a population of locally coupled units — appears at two scales, and everything else hangs off that spine.

NodeModel → Reservoir → Body → Agent → Environment → Ensemble → Runner → Run
▲ nodes in ▲ a reservoir ▲ agents in
a reservoir in a body a world

The rungs

  • Node / NodeModel — the atomic neuron-like unit and its (evolvable) parameters. A Falandays node is a homeostatic leaky-integrate-and-fire unit.
  • Reservoir — a population of nodes + wiring (a Connectome) + dynamic state. The contract is step!(r, R) → spikes.
  • Body — the sensorimotor morphology: it turns a percept into receptor currents and effector outputs into actuation (PassthroughBody for single-agent tasks; for the swarm, the vision-based embodied body VENBody, which manufactures receptors from bearing vision and reads its effectors as movement kinematics).
  • Agent — a reservoir inside a body.
  • Environment — the world the agent(s) live in: a TaskEnvironment (wrapping a single-agent TaskWorld like WallEnv) or a TorusEnvironment / ForageEnvironment for the swarm. The contract is observe / actuate!.
  • Ensemble — a population of agents in an Environment.
  • Runner — how it is executed over time: Fixed, Plastic, or Evolve, producing a recorded Run.

What is an Ensemble, exactly?

An Ensemble is a population of 1…N Agents in an Environmentnot necessarily many. A single-agent task is an ensemble of one, driven by the identical step!(ensemble) as a twelve-agent swarm:

simulate(:wall; node=:falandays_base) # ensemble of one
simulate(:forage; node=:falandays_base, n_agents=12) # a swarm

That uniformity is the point: the single agent and the swarm are the same object at different N. The name is the scale-free container — “nodes within a reservoir, agents within an ensemble” made literal.

Source: src/world/Ensemble.jlEnsemble{E,A,B} and step!(::Ensemble).

Capacities & qualities — what we characterise

The ladder says what the objects are; this says what we ask of them. Every rung is the same class of entity, so one class-level question holds at any scale: which capacities for behavioural complexity does a collective have, and which qualities produce them?

  • Capacities — responsiveness, adaptation, coordination, entrainment, individuation, memory. An open, evolving set, not a fixed taxonomy: a capacity is a general way of dealing with behavioural complexity, never a specific task won. Here a task is a test of a capacity, and capacities are carved by the tasks that probe them — we design tasks and refine capacity definitions together, closer to construct-validation than to a leaderboard. (Speculative and programmatic — a frame, not a settled catalogue.)
  • Qualities — the dynamical and structural properties that make a capacity work: criticality, timescale separation, coupling, oscillation. These are the descriptors of Analysis, and they are the real object of study.

Roughly, today’s tasks cluster on responsiveness (wall = avoidance, tracking/pong = pursuit, cartpole = stabilising an unstable equilibrium) and touch coordination (the swarm); adaptation and memory — the capacities this framing is most about — are the frontier no current task yet demands. A task elicits a capacity; a calibrated score indicates it; the sweep, ablation, and diversity search map capacity to quality across the class. We characterise the class; we do not optimise-to-solve.

The sensorimotor contract

Each tick, for every agent, the same pipeline runs — perceive first, then all move:

percept ─receptors(body,·)→ R ─step!(reservoir,R)→ spikes
─effectors(reservoir,·)→ E ─motor(body,·)→ actuation

observe computes every agent’s percept from the current world before any agent moves, and actuate! commits all motions after. So there is no within-tick order-dependence — a synchronous, local update.

Locality & self-organisation (the core limit)

The non-negotiable commitment: local, self-organising, no homunculus.

  • Within a node, coupling is “local without space” — at the level of dendrites and synapses, never a global signal.
  • Between agents, coupling is only through the environment — on the torus, agents influence each other purely by being seen (their sensor geometry is the interaction topology). There is no explicit alignment or attraction term; collective order is emergent.

The two deliberate relaxations are opt-in and documented: physical collision resolution, and the within-agent normalisation of the receptor vector.