The dataset
The first open-access, harmonized multi-machine benchmark for fusion equilibrium — curated for Thomson-diagnostic availability, feature completeness, and EFIT-reconstruction quality.
The challenge releases 7,915 DIII-D shots (7,041 train +
874 public test) and
1,206 MAST shots (zero-shot transfer set) —
9,121 shots, 98 GB total,
each filtered so that the inputs and EFIT ground truth a model needs are actually present and
reconstruction-quality. The full corpus is hosted on Hugging Face; the datasets library
supports streaming.
Every shot is one row of a Parquet file. Each time series and profile is a nested array
inside that single row — so df['efit_psirz'].iloc[0] is a list of 2D flux grids, not a
column of scalars. Always take .iloc[0], then index into the nested array.
Six sample shots (3 DIII-D, 3 MAST) ship in the starter kit so you can explore the schema immediately, without downloading the full corpus.
Every plasma in the dataset is diverted
A tokamak plasma's boundary is set one of two ways: by a magnetic X-point X-point The point where magnetic surfaces cross in a figure-of-eight. Its presence means the plasma is diverted (exhaust steered to a target); its absence means limited (plasma resting against a wall).
(diverted), or by physical contact with a material surface (limited).
This release contains diverted frames only — limited frames were removed from
efit_times, and from every column that lives on it, on both machines and all
splits.
That is what makes the problem well-posed. On a limited plasma the last closed flux surface is determined by the wall, and wall geometry is not contained in ψ(R,Z) Poloidal flux ψ(R,Z) The 2D field you are asked to predict. Its contour lines are the magnetic surfaces that hold the plasma in place — so a map of ψ is effectively a picture of the plasma’s shape. — so a boundary extracted from the flux map alone systematically overshoots. Scoring a boundary you cannot infer is not a useful test, so those frames are gone rather than quietly down-weighted. One consequence for scoring: no shape scalar is skipped for being on a limited frame any more, because there are none.
efit_times is no longer contiguous. Dropping frames
leaves gaps in the target time base, so do not assume a uniform timestep. The full-rate inputs
(magnetics_*, thomson_*) are not subset — you still get
the complete discharge and resample it onto efit_times exactly as before.
What differs between DIII-D and MAST
The differences below are load-bearing for any code touching the data.
| DIII-D (conventional) | MAST (spherical) | |
|---|---|---|
| Type | Conventional tokamak (D-shaped) | Spherical tokamak (low aspect ratio) |
| Facility | DIII-D · General Atomics, San Diego | MAST · UKAEA Culham, UK |
| Shots (released set) | 7,915 | 1,206 |
| Training data | 7,041 shots | None — zero-shot by design |
| Target flux grid | 65 × 65 | 65 × 65 |
| Shaping coils | 18 F-coils (F1A–F9B) + ECOILA, bcoil | 10 P-coils (P2L–P6U) + sol, tf, efps |
| Magnetics time base | Shared magnetics_time, length varies by shot (480k @ 20 kHz, or ~49k @ 2 kHz); Ip on its own ADC | Shared magnetics_time (~30k samples) |
| Typical flux value | ≈ −0.25 V·s/rad | ≈ +0.05 V·s/rad |
Signals & targets
Target — EFIT ψ(R,Z)
Predict thisefit_psirz: a sequence of poloidal flux maps Poloidal flux ψ(R,Z) The 2D field you are asked to predict. Its contour lines are the magnetic surfaces that hold the plasma in place — so a map of ψ is effectively a picture of the plasma’s shape. (one per
efit_times slice) — the ground truth your model reconstructs, kept exactly as
EFIT EFIT Equilibrium Fitting — the standard code that reconstructs a tokamak’s equilibrium from its sensors. Its output is the ground truth you are scored against; the whole point of the challenge is to reach it without the magnetic sensors EFIT relies on. produced it. The EFIT scalar labels are additional target quantities,
withheld on the test splits; you submit only q95 and betaN — the
geometric ones are derived from your flux map at scoring.
Magnetics — coil currents
InputIp Ip (plasma current) The total electric current flowing through the plasma itself — of order 10⁶ A, roughly 100× the coil currents. Given as an input. ). Sampled at tens of kHz on per-signal (DIII-D) or shared (MAST) time
bases. Shaping-coil currents are in ampere-turns (kA·turn) on both machines, so
they are directly comparable across machines. ( dsep dsep EFIT-derived context shipped in train and withheld on test — not an input, and not scored. On DIII-D it is EFIT’s a-file DSEP, a separatrix-to-limiter clearance whose sign encodes the configuration (> 0 diverted): it is the criterion that defined this diverted-only corpus. On MAST the same column is a different physical quantity — esm/dr_sep_out, the upper/lower divertor balance — and its sign is not a diverted/limited indicator. Because the two machines’ columns do not mean the same thing, dsep was dropped from the scored metric. is
EFIT-derived and is context, not an input — and it is not scored.)
Thomson scattering
InputTe (eV) and
density ne (m⁻³) profiles, on their own time bases. DIII-D's core laser is vertical
and MAST's is a horizontal midplane chord.
coil_R, coil_Z, coil_width, coil_height, plus
skew angles for the six DIII-D parallelogram F-coils) and the Thomson chord positions
(thomson_chord_R, thomson_chord_Z). Join geometry to currents on
coil_input_column. These are inputs — nothing here is withheld on the test splits.
Modeling rules the data treats as load-bearing
Align time bases — but only the inputs
Split by shot, never by timestep
Normalize your inputs
Compress the target
efit_psirz is a
65×65 poloidal flux map on a physical (R, Z) grid in metres
(efit_grid_R, efit_grid_Z) — the same shape for DIII-D and MAST, so a model transfers
across machines without reshaping.
Open by design
License
Format
datasets. Identifiers
source column — DIII-D
or MAST. Machine shot numbers are not part of the release; shots are identified by
their position in the config, and submissions are keyed in that same order
(shot_0000_psirz, …).