bWIN EEG-001
A runnable research checkpoint for offline EEG continuation: 24 context samples predict 64 future samples across 64 EEG channels at 125 Hz. It has 329,472 trained neural parameters and 64 fitted horizon-variance parameters. Its value is an inspectable mechanistic baseline and reproducible evaluation, not demonstrated clinical utility or state-of-the-art accuracy.
Fifty epochs on 8,576 windows from 67 people selected epoch 18 using 680 validation windows from 17 separate people. The primary test contains 1,000 windows from 25 other people. Training learned context-dependent predictions, but stronger simple/community baselines remain. Only one seed was trained. An earlier ten-epoch community pilot accessed the test set before the final common fifty-epoch budget was fixed; this is disclosed in PROTOCOL_AMENDMENTS.md, not described as an untouched confirmatory test.
| Primary 25-person comparison | Mean participant MSE ↓ | Gaussian NLL ↓ |
|---|---|---|
| EEGNet-style forecasting adaptation | 4.36540 | 2.15594 |
| ShallowConvNet-style forecasting adaptation | 4.42402 | 2.16210 |
| VAR4 | 4.44372 | 2.15332 |
| AR16 | 4.49087 | 2.15465 |
| bWIN EEG-001 | 4.49766 | 2.16987 |
| Zero prediction | 4.95339 | 2.21946 |
| Context mean | 7.24653 | 2.40039 |
| Persistence | 9.01631 | 2.48933 |
These are point estimates, not evidence that every pair differs reliably. EEGNet has lower MSE with a paired 95% interval for bWIN minus EEGNet of [0.06397, 0.20310]. Participant-level paired intervals and WBD-003/004's separate five-person common-test comparison are in evaluation/comparison.json and REPORT.md. Never compare the five-person values directly with this table. Community arms are trained forecasting adaptations, not evaluations of official classification checkpoints. LaBraM, BrainBERT, BENDR and The Virtual Brain are assessed contextually in COMMUNITY.md; incompatible native input/objective contracts are not assigned invented scores.
Run without the private development repository
Requires Python 3.12 or 3.13, CPU PyTorch 2.13.0 and NumPy 2.5.x. Download this repository with hf download brandonin/bwin-eeg-001 --local-dir bwin-eeg-001, then:
cd bwin-eeg-001
python -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -m pip install --no-deps win-0.0.0-py3-none-any.whl
.venv/bin/python predict.py --output predictions.npz
The default input is synthetic; no participant recording is distributed. The included wheel contains the actual source required for inference. This local wheel, not an unrelated package named win from a package index, is required. Training-source snapshots preserve the executed code, while the wheel and manifest bind the final hardened inference implementation. Source and weight hashes are checked on model load; SHA256SUMS.json covers the public files.
Python API:
from pathlib import Path
import numpy as np
from bwin.product_forecast import load_model
model = load_model(Path("bwin-eeg-001"))
with np.load("prepared_context.npz", allow_pickle=False) as data:
mean, variance = model.predict(data["context"])
# mean: (N, 64, 64); variance: (1, 64, 1), broadcastable over predictions
Input must be finite context of shape (N, 24, 64), with channels exactly in manifest.json["channels"] order. The training reader applies 0.5–45 Hz offline filtering, FFT resampling to 125 Hz, average reference, and division by the recording median channel MAD scale. Do not feed volts, arbitrary normalized arrays, another montage or an online stream and assume comparable performance. Preprocessing uses whole-recording information; this result does not establish causal streaming performance. Reproducing the benchmark requires independently obtaining EEGMMIDB and the recorded splits/reader. Inference does not require the training data or historical WBD package.
What is learned
Template electrode geometry and a three-shell forward operator lift context into 256 oriented supports at 128 geometric shell sites and map recurrent activity back to EEG. Two Wilson–Cowan excitatory/inhibitory modes evolve with learned input, recurrent, synaptic, delay, resting, rate and readout parameters. All eight parameter groups received gradients and moved. The geometry is engineered, not subject-specific anatomy, and the latent activity is not validated cortical ground truth. The release does not fit a joint EEG/MEG/fMRI/sleep world model.
evaluation/summary.json includes all 50 epochs, selected epoch, parameter movement, control results and measured CPU/GPU differences. The variance is a training-residual horizon estimate shared across channels and examples, not individualized or validated clinical uncertainty. CPU/GPU roundoff differs slightly; consult evaluation/publication_verification.json for measured portability and metadata-hardening replay.
Scope and reuse
Code and checkpoint are released under Apache-2.0. Training-data attribution obligations are preserved in ATTRIBUTION.md: PhysioNet EEG Motor Movement/Imagery Database, Schalk (2009), DOI 10.13026/C28G6P, and the BCI2000 authors. The source database uses Open Data Commons Attribution 1.0; no source recordings are included. Preserve these acknowledgements when redistributing this artifact.
Read NEGATIVE_RESULTS.md, EVIDENCE.txt, FAILURE_MODES.txt and the complete REPORT.md before interpreting a forecast. Best uses are reproducing this benchmark, inspecting a trainable geometry-constrained recurrent baseline, and testing improved models against its documented failures. No diagnosis, treatment selection, individualized intervention prediction, whole-brain reconstruction or broad out-of-distribution usefulness was evaluated.