Five synthetic cortical oscillators (delta, theta, alpha, beta, gamma) are summed into one raw scalp signal, then decoded back out with five real 2nd-order IIR bandpass (RBJ cookbook) filters run at 256 Hz — the same class of filter used in real EEG front-ends before band-power estimation:
H(z) = (b0 + b1 z⁻¹ + b2 z⁻²) / (1 + a1 z⁻¹ + a2 z⁻²)
power_band(t) = EMA[ y_band(t)² ], EMA update: p += (y² − p) · (1 − e^(−dt/τ))
A neurofeedback-style engagement index and fatigue index are computed from the five band powers:
engagement = P_beta / (P_alpha + P_theta + ε)
fatigue = (P_theta + P_delta) / (P_alpha + P_beta + ε)
adaptLevel = sigmoid( sensitivity · (engagement − 1) )
- Mental state / mix — sets the target amplitude of each oscillator band that the raw signal is built from.
- Noise level — additive white noise mixed into the raw signal before filtering, degrading the band estimates exactly as electrode/movement noise does on real EEG.
- Eye-blink artifacts — periodic large low-frequency transients, the classic EEG contamination source, injected into the raw signal.
- Adaptation sensitivity — the gain of the sigmoid that turns the engagement index into a 0–1 UI adaptation level, which the mock panel (top-right of the 3D view) uses to shrink/grow its font size, dim/brighten its contrast overlay, and hide/show interface elements — a closed loop from brain signal to interface change.
Real-world relevance: this is the pipeline (bandpass filter → band power → attention/fatigue metric → interface change) behind neuroadaptive systems that enlarge text when EEG indicates visual fatigue, or simplify a dashboard when workload indices spike.