Each electrode on the simulated cortical array (modeled after Utah-array BMIs such as BrainGate) records one neuron with a fixed preferred direction. Its firing rate follows a cosine tuning curve: it fires fastest when the intended reach matches its preferred direction, and slowest for the opposite direction — a well-established property of primary motor cortex (Georgopoulos et al., 1982).
rate(θ) = baseline + gain·cos(θ_target − θ_preferred) + noise
decoded = normalize( Σᵢ (rateᵢ − baseline) · [cos θᵢ, sin θᵢ] )
Summing every neuron's preferred-direction vector, weighted by how far above baseline it is firing, is the population vector algorithm — the decoding method behind early BMI robot-arm and cursor-control demonstrations. A single noisy neuron says little about intent, but the population average cancels much of the independent spike noise.
The raw population vector still jitters frame to frame, so a recursive Kalman filter — the same estimator used in real BMI decoders — fuses the noisy measurement with a smooth motion model, trading responsiveness for stability. The robot arm's shoulder and elbow use inverse kinematics to reach for the filtered decoded direction.
- Recorded neurons — more simultaneously recorded units improve the signal-to-noise ratio of the population vector roughly as √N, directly lowering decode error.
- Neural noise — spike-count variability per neuron; higher noise widens the gap between the true intended direction and what the array reports.
- Kalman filter — toggle it off to see the raw, jittery population-vector estimate the arm would have to follow without temporal smoothing.
Real-world relevance: this is the same sense → decode → act pipeline used by clinical BMI trials (e.g. BrainGate) that let paralyzed participants move a robotic arm using only recorded motor-cortex activity.