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 worldThe 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 isstep!(r, R) → spikes. - Body — the sensorimotor morphology: it turns a percept into receptor currents and effector outputs into actuation (
PassthroughBodyfor single-agent tasks; for the swarm, the vision-based embodied bodyVENBody, 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-agentTaskWorldlikeWallEnv) or aTorusEnvironment/ForageEnvironmentfor the swarm. The contract isobserve/actuate!. - Ensemble — a population of agents in an Environment.
- Runner — how it is executed over time:
Fixed,Plastic, orEvolve, producing a recordedRun.
What is an Ensemble, exactly?
An Ensemble is a population of 1…N Agents in an Environment — not 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 onesimulate(:forage; node=:falandays_base, n_agents=12) # a swarmThat 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.jl — Ensemble{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,·)→ actuationobserve 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.