# Andromeda Control Layer — Technical Specification for Model Context

**v4, August 13, 2026**
*From the work of Art Code Outdoors*
*Written by Bryan Carter and Claude Opus 4.6. Errors are Bryan's own.*

**License:** MIT-0

**Purpose:** This document specifies the control layer of the Andromeda cybernetic architecture in terms precise enough for an AI model to understand what is being built, what the control layer computes, and where its boundary is with the layers above it. It is intended to be loaded into a model session's context as a reference document. For the narrative walkthrough — Braitenberg vehicles, boids, the Walter/Brooks/Tilden lineage, and the design philosophy — see the companion document *The Control Layer — A Guide*.

> **Scope:** This document specifies the control layer only — the reactive foundation. An implementation built from this specification alone produces a BEAM nervous net, not Andromeda. The full architecture requires the learning layer, attention layer, MIRROR mechanism, and Universal Constructor described in the Framework document.

---

## 1. Definition

The control layer is a network of NOR-gate relaxation oscillators with fixed wiring that produces reactive behavior through analog signal modulation. It is the bottom layer of a five-component cybernetic architecture (Environment → Sensors → Control Layer → Learning Layer → Attention Layer → MIRROR → Control Layer → Motors → Environment).

The control layer:
- Oscillates continuously without external input (cells fire by default — a NOR gate with no inputs is TRUE)
- Receives sensory input as modulation of existing oscillation, not as a signal source
- Produces motor output as a continuous side effect of oscillation, not as discrete commands
- Contains fixed wiring that does not change during the organism's lifetime
- Has no memory, no prediction, no sequence learning, no internal model of the environment
- Computes only the current state: sensors read values, values propagate through wiring, motors receive values

## 2. Cell Model

Every cell in the control layer (and in all layers) is the same computational element:

**Type:** Generalized NOR-gate implemented as a voltage-controlled relaxation oscillator with threshold and hysteresis (Schmitt trigger dynamics, derived from squid giant axon — Otto Schmitt, 1934).

**State variables:**
- `charge`: continuous value, 0.0 to threshold
- `firing`: boolean — TRUE when charge reaches threshold, remains TRUE for the discharge duration

**Dynamics:**
- Cell charges at `natural_charge_rate` continuously (the heartbeat)
- Excitatory inputs from other cells increase charge rate
- Inhibitory inputs from other cells decrease charge / drain charge
- When charge reaches threshold: cell fires (discharge event of variable width, not a single-tick spike)
- During discharge: cell does not accumulate charge from inputs
- After discharge: charge resets, cycle begins again
- NOR logic: if all inputs are high (inhibiting), output is suppressed; if any input drops, cell fires

**Sensor cells:** Identical to all other cells. The sensor input modulates the charge rate. It does not replace the oscillation cycle. A sensor cell with zero input oscillates at `natural_charge_rate`. A sensor cell with maximum input oscillates faster (excitatory sensor) or slower (inhibitory sensor). The cell has a heartbeat; the sensor nudges it.

**Motor cells:** Identical to all other cells. Motor output is the cell's firing pattern. A motor cell fires continuously at its oscillation frequency. Behavior emerges from inhibition, not excitation — the control layer selectively suppresses motor cells to produce coordinated movement.

## 3. Connection Model

**Type:** Directed edge with fixed polarity and fixed weight.

**Properties:**
- `source_cell`: which cell's firing drives this connection
- `target_cell`: which cell receives the signal
- `polarity`: excitatory (+) or inhibitory (−), fixed at construction, never changes
- `weight`: magnitude of influence, fixed at construction, never changes during lifetime
- `permanence`: gate value (ON if above threshold, OFF if below), determines whether connection is active — in the control layer, all permanences are set to 1.0 (always ON), Hebbian updates disabled

**Computation per connection per tick:**
```
if source_cell.firing AND permanence >= threshold:
    if polarity == excitatory:
        target_cell.charge += weight
    if polarity == inhibitory:
        target_cell.charge -= weight  (clamped at 0)
```

Connection weights do not change during an organism's lifetime. Weights change only through evolution — mutation and crossover modify the tape, and the next organism built from the tape has different weights. Within a lifetime, weights are constants.

## 4. Braitenberg Vehicle Formalism

The control layer implements Braitenberg vehicles at arbitrary scale. The minimal case demonstrates the complete computational model:

**Configuration:** Two sensor cells (L, R), two motor cells (L, R), wiring between them.

**Four canonical configurations:**

| Name | Wiring | Polarity | Motor Rule | Emergent Behavior |
|------|--------|----------|-----------|-------------------|
| Fear | Uncrossed (L→L, R→R) | Excitatory | motor = sensor | Flee, accelerate near stimulus |
| Aggression | Crossed (L→R, R→L) | Excitatory | motor = opposite sensor | Charge, accelerate toward stimulus |
| Explorer | Uncrossed (L→L, R→R) | Inhibitory | motor = max − sensor | Wander fast, slow near stimulus, never stop |
| Love | Crossed (L→R, R→L) | Inhibitory | motor = max − opposite sensor | Approach gently, come to rest near stimulus |

**Key principle:** The "behavior" (flee, charge, explore, approach) exists only in the observer's description. Inside the system, a sensor reads a number and a motor receives a number. The behavior emerges from two local computations running on a body with bilateral symmetry in a physical environment. No cell knows what the robot is doing.

**Scaling:** Biological nervous systems use the same mechanism with more cells, more connections, and more rules. The computational primitive does not change. A Braitenberg vehicle with 2,000 cells and 1.7 million connections produces reflex behavior, obstacle avoidance, phototaxis, search patterns, and escape responses — all from the same "sensor reads number, number propagates through wiring, motor receives number" computation.

## 5. Oscillation as Behavior

The control layer does not compute actions. It oscillates, and actions are a side effect of oscillation.

**Walking:** A bicore (two mutually inhibiting cells) connected to two legs produces alternating extension/flexion. A tricore (three-cell ring) produces a three-phase gait. The circuit does not decide to walk. The oscillation pattern moves the legs.

**Steering:** Asymmetric sensor input produces asymmetric oscillation. A photoresistor on one side changes the charge rate of the cell it modulates. The cell fires sooner, the oscillation timing shifts, the motor output becomes asymmetric, the robot turns. No turn command is issued.

**Reflexes:** Feedforward excitation/inhibition circuits produce stimulus-response chains. A contact sensor fires, inhibits a forward motor, excites a reverse motor. The robot backs away from obstacles without any collision-detection logic.

**Critical constraint:** Remove the oscillation (`natural_charge_rate` = 0) and the robot is dead. Sensors have nothing to modulate. Motors have no signal to produce. Experimentally confirmed: population collapse in 82 generations when oscillation was removed.

## 6. Von Foerster's Sensory Principle

> "The response of a nerve cell does not encode the physical nature of the agents that caused its response. Encoded is only 'how much' at this point on my body, but not 'what.'"

**Implementation constraint:** No sensor cell reports what it is detecting. A sensor cell reports only intensity at its body location. Direction, distance, and identity of the stimulus are computed from differential readings across multiple sensors at different body locations, never given by any single sensor.

**Forbidden sensor types:** Absolute coordinate sensors, binary comparators of positions, any information that a physical transducer at the sensor's body location could not physically measure. No cell has access to the global state of the environment.

## 7. Superposition Principle

Complex behavior arises from multiple simple wirings feeding the same actuators simultaneously. Each sensor pair independently modulates the shared thruster output. The thruster integrates by summation — it receives one combined value, not a per-rule arbitration. No rule has knowledge of any other rule. No priority system resolves conflicts. The physics sums the modulations. Each rule is a primitive reflex. Many reflexes running concurrently on a shared physical substrate produce behavior. (For the Reynolds/boids equivalence — the same principle demonstrated in multi-agent systems — see *The Control Layer — A Guide*.)

## 8. Boundary: What the Control Layer Is Not

The control layer is a necessary but insufficient component of the full architecture. It is the foundation that the learning and attention layers build upon.

**The control layer does NOT:**
- Remember previous states (no memory of any kind)
- Predict future states (no sequence learning, no temporal model)
- Distinguish real sensory input from synthetic input (this is exploited by the MIRROR mechanism)
- Modify its own wiring (connections are fixed at construction)
- Learn from experience within a lifetime (adaptation requires generational evolution)
- Know what its sensors are detecting (undifferentiated encoding)
- Know what behavior it is producing (no self-model)

**The control layer DOES:**
- Oscillate continuously and produce motor output as a side effect
- React to current sensory input by modulating its oscillation
- Produce robust, adaptive-looking behavior from fixed wiring on a physical body
- Survive significant damage (random wiring means one random configuration is as good as another)
- Provide the sensorimotor substrate that the learning layer observes and predicts

**Evolutionary boundary:** The control layer's wiring changes only through evolution. Mutation and crossover modify the tape. The constructor builds the next organism from the modified tape. The control layer is the evolved part — what the organism arrives with. The learning layer is the within-lifetime part — what the organism acquires through experience. Both are doing the same thing (adapting to the environment) at different timescales.

## 9. Relationship to Layers Above

The control layer is observed by the learning layer, which connects to approximately 85% of control layer cells at random. The learning layer does not know which cells are sensors, motors, or interneurons. It sees the entire control layer's activity as a single sensorimotor pattern.

The learning layer's predictions re-enter the control layer through the attention layer and MIRROR mechanism as synthetic sensory input. The control layer cannot distinguish this from real input. It responds identically to both. This is how the learning layer acts on the environment despite controlling nothing directly: it changes what the control layer perceives.

The control layer is the last line of defense. If the learning layer predicts badly and the attention layer fails to squelch, the control layer still responds to the bad prediction using its fixed reflex wiring. The worst case is a wrong reflex, not a system crash. The control layer cannot be corrupted by the layers above it — they can only change what it perceives, never what it does with what it perceives.

## 10. Lineage

The control layer is the well-established BEAM nervous net, descended from W. Grey Walter's tortoises (1948–49) through Brooks' Subsumption Architecture and Tilden's BEAM Robotics. All prior autonomous robot architectures in this lineage are pure control layer implementations. Andromeda's contribution is the learning layer, attention layer, and MIRROR mechanism that go on top. For the complete historical lineage with worked examples, see *The Control Layer — A Guide*.

## 11. Scaling Limit of Hand-Tuning

The superposition principle (Section 7) has a scaling consequence: when N reflexes sum on M actuators, adjusting any single coefficient changes the emergent behavior of all N reflexes. At small N (4 rules in a boids simulation), a human can find working coefficients by manual search. At large N (100+ behavior nodes in Alien: Isolation's Xenomorph), hand-tuning requires months to years and routinely demands automated search (genetic algorithms, simulated annealing) even in commercial game development.

The scaling is combinatorial, not linear. Each coefficient interacts with every other through the shared physical substrate. Adjusting one necessitates rebalancing others. In production systems (RTS economies, competitive multiplayer sandboxes), this manifests as the patch-cascade problem: correcting one imbalance creates others, each patch risks breaking unrelated behaviors, and balance is valid only until contact with players who exploit edge cases.

**Design consequence:** Principle 1.1 ("everything that can be evolvable, should be evolved") is the architectural response to the scaling limit. At the organism scales Andromeda targets (thousands of cells, millions of connections), the coefficient space is too large for manual search. The universal constructor's mutation-selection loop is the search mechanism. Von Neumann's question — "what if the computer could program itself?" — is the practical formulation of this necessity in the absence of training data.

---

*The complete document bundle is available at kitchencloset.com/realstuff/andromeda/. The architecture is the work of Art Code Outdoors; this document is Bryan Carter's record of the designer's disclosures, and errors in it are Bryan's own. For contact information, see the Framework document.*
