SC-WBD: an integrated whole-brain foundation model across modalities, scales and dynamics
SC-WBD builds a working model of one person's brain and keeps it consistent across every way that brain can be measured — electrical activity, blood flow, stimulation, and what the person actually does. Each kind of signal corrects only the part of the model it can speak to, so a person measured one way still improves it, and what was never measured is left unknown rather than invented.
The World's First Whole Brain Dynamics (WBD) Model
Every way of looking at a brain sees something different. Electrodes read it a thousand times a second but can barely say where the signal came from. An MRI scanner sees the whole brain but reads it once every two seconds, and reads blood flow rather than activity. A magnetic pulse or a beam of focused ultrasound goes the other way, pushing on the tissue instead of watching it — ultrasound reaching structures deep enough that no non-invasive instrument can otherwise touch them. Additionally, what a person looks at, or types, or says is not a brain measurement at all, and yet even that information can inform our understanding of a given brain.
Most people are only ever measured one way, so results from each instrument never quite add up, and almost none of them are about any particular brain. SC-WBD keeps one shared model and lets each kind of signal constrain the part it can actually speak to.
Sorting signals this way is what makes partial data usable.1In the
schema these are stimulus, observation,
boundary_output and context, and the distinction is
enforced: an observation must declare the forward operator it is
measured through, or it is refused. Without that axis, eye tracking and button
presses could only be declared as measurements of neural state, which is a
different and wrong claim. Someone's gaze is real evidence, but it is not a
reading of their cortex, and a model that confuses the two learns the wrong
thing.
400 on the surface + 14 deep inside
each constraining only what it observes
weights, data and code all public
all five claim gates could_not_run
Modelling brain activity
The first thing the model does is the ordinary thing: given what a brain has been doing, say what it does next. Each of the 414 regions carries its own state and its own uncertainty, and they are wired to each other the way the real ones are, so activity in one region moves the regions it is actually connected to.
Show someone a film and you know exactly what they saw, where they looked, and what they said about it — alongside what their brain did. Four different kinds of evidence about one response, all landing on one model.
What each region carries matters more than how many regions there are. Summarising a parcel by one number retains 5.6% of the whitened EEG lead field; carrying its net dipole moment — three numbers instead of one — retains 51.7%. Splitting parcels into eight times as many scalar pieces reaches 16.2%.2Measured on a real boundary-element forward solution, not on the analytic stand-in the trainer falls back to. Cortical folding cancels opposing dipoles within a parcel, which is why subdividing runs into a ceiling — a further 1.29× at most — while keeping the orientation does not. The full table. So orientation buys roughly nine times what resolution buys, and the state is built to carry it.
The prediction comes back with a confidence attached rather than as a bare number, and a value the model could not actually resolve comes back marked unresolved instead of as a plausible guess.
Simulating intervention responses
Once a model can say what a brain does next, you can ask what it would do if you changed something. Magnetic stimulation is already used to treat depression, and where you aim it matters a great deal — but nobody can currently say what a given pulse did to the network, so targeting is done by scalp landmark and the answer arrives weeks later as a symptom score.
For example, sleep: the depth and timing of slow-wave activity is one of the better-characterised things stimulation can push on, and it is measurable the same night rather than in six weeks. A model that predicts what a pulse at a given site and phase does to that person's own network turns sleep optimisation from a protocol applied to everyone into a target chosen for one person and checked against their own recording.
A magnetic pulse goes in; the electrical response, the blood-flow response and the muscle twitch all come back out. The field is computed through that person's own head, not an average one.
Two coil positions produce measurably different predicted EEG here, and the difference is carried by the coil's orientation rather than by how strong the field is.3A 200-permutation shuffled-normal null puts the real contrast above every permutation (p = 0.005). The criterion was committed while the checkpoint directory was still empty. The field calculations are validated.
SC-WBD-003 trains on measured stimulation: single-pulse TMS delivered over one primary motor cortex with 64-channel EEG recording, 704 epochs from two participants. The evoked response is there in the data before any model touches it — trial-averaged global field power reaches 5.4× baseline for left-M1 pulses and 4.6× for right-M1, peaking around 160–170 ms.4The model's fast clock is 8 ms, so components earlier than roughly N45 sit below its temporal resolution and nothing here claims them. The first 10 ms after each pulse is excluded from the likelihood by a mask rather than deleted, so the rollout still integrates through it.
The step from a computed field to a neural response remains unvalidated, and the reason is now a property of the recording rather than of the model. Turning a coil into a drive requires the coil's position and orientation; that release was MRI-navigated but ships no per-pulse pose, so there is no field to validate the map from. The drive 003 learns is anchored only by which hemisphere the muscle response identifies and by that hemisphere's motor parcels. One target site, one intensity, two participants — a pulse somewhere the model has not seen is still untested.
Fine-tuneable for personalized neurotechnology
The last step is the one the whole programme is for. A model of the average brain is a statistic, and no device is worn by a statistic. Because every signal is attached to the part of the model it can speak to, the shared model can be fitted to one person from whatever recordings that person actually has — and the rest is left marginalised rather than filled in with someone else's anatomy.
Reading intent from the scalp to move a cursor. What makes this hard is not decoding once; it is decoding the same way tomorrow, which is a problem about modelling a person rather than a population.
There is also a tool for asking, before anyone is scanned, what a proposed experiment could actually resolve — so a session that cannot separate two hypotheses is visible in advance rather than after. Possibilities sets out what this makes reachable, in the order it becomes reachable.
Artifacts
Stated at the granularity someone could check, with the public artifacts in the same table as the parts they are made of. Every row is a thing you could run or download.
| Component | State | What it is |
|---|---|---|
| Schema and compiler | built | Typed contracts for units, clocks, frames and transform lineage, with eleven refusals (R01–R11) that fail closed rather than warn.scwbd/schema/refusals.py |
| Anatomy prior | published | The 414 regions — 400 Schaefer cortical, 14 Tian subcortical — with the connectome, geometry and cortical normals, carrying receptor density, intrinsic timescale, myelin and thickness. Partitioned into nine families by a rule fixed before the test ran.5Ship the finest candidate partition in which every pair of families separates under a spin null. Yeo-7 separated 6 of 21 pairs and was rejected. The surviving split is binary over cortex — cortex_unimodal (138 parcels) and cortex_association (262) — plus seven subcortical families of two parcels each. |
| Dynamics backends | built | Six generative backends — Wilson–Cowan, Jansen–Rit, reduced Wong–Wang, Stuart–Landau, Kuramoto, Linear–Gaussian — plus an equal-capacity learned control, interchangeable by one config key. |
| Simulated corpus | published | 37,888 trajectories over the 414 regions at 125 Hz, generated from five of the backends.reports/run2_corpus.md |
| Real EEG corpus | built | 109 PhysioNet participants, 64 channels, split 71/11/27 and verified participant-disjoint. Real human recording, kept strictly separate from the simulated corpus.6A simulated corpus can never be evidence that the model has learned anything about biology. Conflating the two would be the most basic error available to this project. |
| Stimulation path | partial | A validated E-field solver joined to the dynamics as an additive drive. The field computations pass their gates. The mapping from a computed field to a neural response is still unvalidated, and the obstacle is now the recording rather than the model: the measured stimulation corpus on disk (704 single-pulse TMS-EEG epochs, CC0) ships no per-pulse coil pose, so no field can be computed for the pulses that were actually delivered.scwbd/intervene/impulse_response.py7Recovering a pose from the data was considered and refused. The release states the target was the first dorsal interosseous representation of one M1 and was MRI-navigated, but a position inferred from that description is an assumption about the study, not a measurement of the coil, and an E-field computed from it would carry a precision nothing supports. |
| scwbd-001-beta | negative result | Run-1 weights, published because they lose to copying the last observed sample forward. Structurally the control arm of our own ablation. |
| scwbd-002-pilot | negative result | 2.5M parameters over the 414 regions, the treatment arm. It loses to every
baseline on both columns, NLL and MSE.8NLL 3.179 against 2.045 for the
best baseline; MSE 36.27 against 4.53. Every paired participant-clustered
interval excludes zero. And 3.179 flatters it: SC-WBD is scored on
target/s with the Jacobian folded into the log-variance while
every baseline is scored on the raw target, so in their units the NLL is ≈
3.75 and the gap ≈ 1.70 nats. Separately, subject_specific_ar is
bit-for-bit identical to ar16 — the participant-disjoint split
leaves no test participant with a fitted model — so read the comparison as
five comparators, not six. The same property of the split means
individualisation could not be measured on this holdout at all:
no held-out person has a fitted person effect, so the between-participant
spread of the applied θ shift is exactly 0.000e+00. That is a
property of the split, not a defect of the run, and it is why nothing here
reports whether fitting to an individual helps. Two reasons, both mechanical: five of six
curriculum gates were named for the previous run's stages, so no gradient was
ever taken on a real recording; and 88.7% of the parameters could not
receive a gradient at all, including the entire family-indexed
regional model that is the treatment arm's whole thesis.9The regional
modules were renamed local → family_local and so on
when the family-padded architecture landed. The permission cards still grant
local.*, and fnmatch("family_local.ports.out_proj.weight",
"local.*") is False. An unmatched glob is not an error —
it is an empty permission set, which is a legal permission set. The 285,083
reachable parameters were enough to fit something, so the loss fell, the run
finished, and five separate audits passed over it. Mechanism and measurement
agree: those modules are bit-identical across every consecutive pair of the
five stage checkpoints. So this result does not say structured regional
state fails to help. That part of the model was a random initialisation
taking part in the forward pass for 8,700 steps. |
| scwbd-003 | training | 26,304,729 parameters over the 414 regions, trained on seven measured
sources through four observation montages: 64-channel
EEG (109 participants), whole-night polysomnography (78), a 70-channel cap (2),
a second 64-channel cap (2), parcel-space BOLD (10), button presses (2) and
single-pulse TMS-EEG (2). Two kinds of signal reach the model that never had a
source before — a boundary output, produced by the participant and
measured outside the skull, and a measured intervention.10The
schema has always declared four attachment kinds — stimulus, observation,
boundary_output, context. Every source in run 2 was an observation, so three of
the four were untested while the schematic above gave them equal billing. Run 3
exercises three; context still has no source and the run's report
says so rather than omitting it. Measured at the end of its founding stage,
step 4,000 of 13,400: the defect run 2 shipped with is fixed.
99.5% of its parameters have moved off their initialisation, against
run 2's 11.3% — including the entire family-indexed regional model
that is the treatment arm's whole thesis, every tensor of it.11Measured
by hashing every parameter before the first step and comparing, so the answer
is a bit comparison rather than a threshold somebody chose. Quoted in
parameters because run 2's figure is: by tensor count run 3 is 243 of
382, which sounds far worse and is not comparable, because the tensors that
never train are small ones. Two groups make up almost all of the 0.5%. The
per-family activity readout cannot be trained by any measured source — scoring
it needs ground-truth activity at the parcel and neither EEG nor BOLD has any
— so it waits for the simulator stage, recorded as a founding exemption
alongside the amortised posterior. And each observation head's
source_proj is bypassed entirely: once a parcel carries a
3-vector moment it is observed through the vector lead field, which is the
whole point of the orientation result above, and the scalar projection it
replaces is left unreachable. No score is claimed yet:
this row gets held-out numbers and a leave-one-source-out result when the run
finishes.12The ablation is leave-one-out specifically because it can
return a null. The identifiability benchmark measured joint multirate
inference as failing to beat isolated modalities in every regime, and
an evaluation unable to reproduce that would be unable to disagree with the
premise it is testing. |
| A model that beats its baselines | does not exist | Nothing on this site should be read as a claim that we have one. |
Licences differ per artifact because the data underneath them differs; each is computed per artifact and stated on its card and on the attribution page. It is a modelling and engineering programme, and nothing here is a medical device.