This document states plainly what a ScoreResult is and is not, so the
numbers are used honestly. If anything here conflicts with marketing copy,
this document wins.
cortex-score summarizes predictions from TRIBE v2,
a brain-encoding model trained on fMRI recorded while people watched videos.
For a given clip it estimates a per-vertex cortical response on the
fsaverage5 surface for an average subject, then aggregates that to the
Yeo-17 parcellation and rolls it up into five dashboard groups.
Each network's mean_energy / peak_energy is the mean / max over time of the
within-clip z-scored response magnitude for that group's parcels.
- Not a brain scan. No real brain is measured. These are model predictions.
- Not viewer engagement. They do not measure whether a real viewer paid attention, enjoyed, or remembered anything.
- Not clinically meaningful. Nothing here is diagnostic or medical.
- Not comparable across clips by default. Normalization is
within_video: each parcel is z-scored against its own timeline in that one clip. A0.89"language" score on clip A and a0.89on clip B are not on the same axis. Cross-clip comparison needs a shared reference distribution (the reservednormalization.scope == "reference_distribution"mode).
The five groups (visual, language, faces, attention, motion) are a
product-design grouping of Yeo-17 parcels, recorded in every result as
network_group_source: "cortexia-network-groups-v1" and SHA-fingerprinted in
data/manifest.json. They are not a canonical neuroscientific
localization, and the group names are conveniences, not claims that the
named function is what those parcels do.
| Group | Yeo-17 parcels | Honest reading |
|---|---|---|
visual |
VisCent, VisPeri |
The most defensible group: these are the visual networks in Yeo-17. |
motion |
SomMotA, SomMotB |
Somatomotor networks; "motion" is a loose, content-facing label. |
attention |
DorsAttnA, DorsAttnB, SalVentAttnA, ContA |
A blend of dorsal/ventral attention and a control network - broad, not a single attention system. |
language |
ContB, TempPar |
Not a standard language network. Real language localizers (e.g. the Fedorenko language network) are defined differently; this is a proxy built from a control + temporo-parietal parcel. Treat as exploratory. |
faces |
SalVentAttnB, DefaultC |
Not a face-selective region. There is no FFA/face-localizer here; this is a social-context proxy from a salience/ventral-attention and a default-mode parcel. Treat as exploratory. |
faces and language are the weakest mappings and are labeled "exploratory" in
their result description fields for exactly this reason. Do not present them
as measured face- or language-selectivity.
ScoreConfig(include_schaefer_parcels=True) adds per-Schaefer-2018-parcel
metrics, each tagged with its parent Yeo-17 network. This is finer-grained but
carries the same caveats: predicted, within-clip-normalized, average-subject.
Finer granularity is not more "real."
Every result already carries the caveat in-band, so a downstream consumer never has to trust out-of-band docs:
framing_disclaimer- the "does not measure real viewer engagement" sentence, verbatim, in everyScoreResult.network_group_source- pins the grouping as a versioned product artifact.- each
NetworkScore.description- flags the exploratory groups. normalization.scope- makes the within-clip limitation explicit.
We deliberately did not add a separate free-text "caveat" field: the disclaimer + group source + per-network descriptions already encode this, and a redundant field would be one more thing to drift out of sync.