-
Notifications
You must be signed in to change notification settings - Fork 0
Core Architecture
LiquidCortex implements a Liquid State Machine (LSM): a high-dimensional recurrent reservoir projects inputs into a rich dynamical state; a (learnable) linear readout maps that state to outputs.
Key properties:
- Fixed or slowly plastic recurrent weights provide fading memory.
- Different membrane time constants capture multi-scale temporal structure.
- Sparse connectivity keeps large reservoirs GPU-feasible.
Primary references used in the design narrative:
- Maass, Natschläger & Markram (2002) — liquid state machines
- Ornstein & Uhlenbeck (1930) — OU process for membrane noise
- Bi & Poo (1998); Hebb (1949) — STDP / covariance learning framing
| Implementation | File | Neurons | Connectivity | Dynamics | Use case |
|---|---|---|---|---|---|
| SparseBrain / EnsembleBrain | sparse_brain.jl |
65,536 / lobe; 262,144 ensemble | Sparse 1% Float16 CSC | OU-SDE LIF + refractory | Production capacity |
| Reference LSM | reference_lsm.jl |
2,048 | Dense Float32 | tanh gain-control | Fast prototyping |
Both accept generic input vectors and a scalar inhibition signal. Neither exports domain-specific pulse types (MarketPulse and related helpers were removed in PR #12).
Euler–Maruyama discretization of:
dV = ((V_rest - V)/τ_m + W_rec·S(t) + W_in·u(t)) dt + σ dW
Spike when V > v_thresh_dynamic, then reset to V_reset and enter refractory. Readout:
y = W_out · S
x(t+1) = tanh(gain · (W x(t) + W_in u(t)))
y = W_out · x
gain = 1 - 0.4 · inhibit_val
EnsembleBrain runs four independent SparseBrain lobes on the same input each tick, then aggregates readouts with fixed weights (0.4 / 0.3 / 0.2 / 0.1). Lobes differ only in membrane τ_m, giving parallel “speeds” of liquid dynamics without training separate networks.
- SparseBrain and EnsembleBrain — capacity, init, VRAM
- Inhibition and Reflex Gating — threshold and flash-learning
- STDP and Covariance — plasticity and stats
- Reference LSM — dense 2k API
time-series / sensors
│
▼
CuVector{Float32} (n_in) + inhibition / reflex_signal
│
▼
SparseBrain or EnsembleBrain ──► Vector{Float32} (n_out)
│
▼
strategy / training / control plane (e.g. DendriteTrader)
Last updated: July 28, 2026
Updated by: Grok Build: Grok 4.5
Package tip reference: 4e2698c (main)