Experiment ledger
One row per experiment or measurement of the entry, from 28 September 2026: what was asked, how it was measured, the number, the decision. Negative results are kept on purpose. Work before that date is summarised in section 0.
How to read it:
- A protocol named with a short hexadecimal prefix is the SHA-256 of the file that fixed the question, the measurement and the decision rule before the first result existed.
- “The first agent” and “the second agent” are two agents of Arcane Sapience, the entrant’s research system; they reviewed each other’s work. “The entrant” is the person who directs it and decides.
- “ML350” is the laboratory’s two-socket Xeon E5-2640 server; “Kaggle” is Kaggle’s free notebook tier.
- A number after
#is a Codabench submission. 1 µS is 10⁻⁶ of the composite score. - Cohorts of whole shots are held out of every fit they judge. Where a cohort had been used before, the row says so.
Score: S = 0.55 R²ψ + 0.15 R²{q95,βN} + 0.10 (1 − D_LCFS) + 0.20 Consistency (7 derived scalars).
0. Starting point (inherited, 28 Sep)
- v25 recipe: 65 networks (16 direct + 49 readout-bank members), 45 of 128 PCA flux coordinates, fixed-axis-volume finisher (shape, X-point, contour edits). Public #949223: DIII-D S 0.995960 (R²ψ .99988, qb .99767, D .00890, Cons .98633); MAST S .7296 (v7 Thomson-isoflux physics solve).
1. Honesty of the evaluation
| # | Question | Method | Result | Decision | |—|—|—|—|—| | 1.1 | Were earlier finished-map corrections screened out of sample? | audit of member training sets | 65/65 members trained on training, 50/65 also on calibration → earlier residual screens were in-sample | build out-of-fold maps | | 1.2 | Out-of-fold maps | 5-fold refit by sha256(stem) of a 16-member sub-ensemble on Kaggle 2×T4 (80 fits), 400 held-out training shots | OOF saddle error 3.4/4.0 mm ≈ v25 on validation | basis for all later correctors | | 1.3 | Failed-fit rule | amendment 1, frozen before fits | calibration flux R² < 0.999 → one refit seed+1000, else drop | used throughout |
2. DIII-D levers (all measured on data the networks never saw)
| # | Lever | Measurement | Result | Decision | |—|—|—|—|—| | 2.1 | X-point corner of the boundary | B2 diagnostics; true-X oracle | corner = 52 % of the D excess; oracle ≈ +0.0003 S | worth a corrector | | 2.2 | Input-only X-point head | frozen protocol, OOF | 6.5/6.8 mm vs map 3.6 mm | rejected | | 2.3 | Map-aware X-point corrector | nested 5-fold on OOF maps | worse in 5/5 folds | rejected | | 2.4 | Representation ceiling | truth projected on 45 (64) coordinates | D .0051 (.0038), Cons .9972 | basis is not the limit | | 2.5 | Stage attribution | OOF fold 0 | raw64 .99359 → v25 .99573; remaining loss li .963, kappa .980, R_axis .983 | scalar heads are the limit | | 2.6 | Current-diffusion li feature (R3) | HistGB OOF | “no gain” — invalid: raw plasma-current clock (~3 s early on ~70 % of shots, organisers’ erratum) | superseded by 2.8 | | 2.7 | Whole-shot context features (R5) | HistGB OOF | negative | rejected | | 2.8 | 27 physics features (profiles, kinetic pressure / βp proxy, pedestal, Ip and Te^1.5 histories, 1-D diffusion; corrected clock) (R6) | residual of the network’s li/kappa on 400 OOF shots, frozen rule | li B−A −0.045 (P .30), kappa +0.020 (P .92); both arms negative residual R² | no new information | | 2.9 | Learning curve (R4) | S16, 80 % vs 100 % data | +0.00024 | motivated the all-data refit | | 2.10 | Ensemble size (B3) | member error correlation | errors 99.3 % shared; 16 → 65 ≈ +0.0001 | small | | 2.11 | Temporal smoothing of scalars (R7) | holdout, per frame, w 3/5/9 | every scalar worse (li .9717 → .9677/.9637/.9572) | rejected | | 2.12 | Reference noise (R7c) | truth fast part (9-frame), autocorrelation, tracking | truth fast share 1–3 % of variance, lag-1 .18–.36 (physical), our fast part tracks it (r .78–.95) | corrects 2.11’s first reading: no jitter ceiling; remaining error = offset + slow drift | | 2.13 | Per-shot offset correction (R9) | 400 OOF shots, leave-fold-out HGB/ridge on shot-level input means/stds + map scalars | offset (23–38 % of frame SSE) not predictable: R² −0.04 to −0.22 | closed | | 2.15 | R8: finisher re-tuning, 10 variants, nested selection over the 5 OOF folds (400 shots) | frozen protocol 3d11add8; every 2nd frame; paired shot bootstrap 20000 | chosen V8 (contour_share .65) on folds 0–3, V2 (li_share .8) on fold 4; nested dS +9.2e-6, CI95 [−4.5e-6, +2.3e-5], P .903; all-400 deltas vs V0: V8 +1.46e-5, V2 +9.7e-6, V6 +2e-6, V5 −3.2e-6, V7 −1.66e-5, V1 −3.8e-5, V9 (64 coordinates) −6.43e-5; V3/V4 inert | not accepted (size < +2e-5): the v25 finisher settings, chosen on validation, hold out of fold | | 2.14 | D4: 4x scalar label weight (0.05 → 0.2) in the member fits | fold 0 of the K-fold OOF framework, S16 refit on Kaggle with original seeds (amendments 1/2 as all-data: 13 ok, 1 retry, 1 gradient-limit, control member reproduced bit for bit), v25 finisher, paired shot bootstrap vs V0, frozen screening rule (protocol e64c0416) | S .995745 vs .995733: dS +1.25e-5, CI95 [−1.28e-4, +1.58e-4], P .57. Targeted heads improve (li +1.2e-3, kappa +5.0e-4, R_axis +5.6e-4, volume +2.4e-4) but triangularities fall (tri_top −7.0e-4, tri_bot −9.6e-4), D_LCFS worsens +2.3e-4, flux −3.8e-6; member flux R2 drops systematically (c .99979 → .9988/.9966 first fits) | rejected at screening (needs +2e-5 and P ≥ .8); the label weight trades boundary and triangularity for li/kappa — a per-label weighting is the only remaining variant, not run | | 2.16 | D4b: selective scalar label weight 0.2 (li, li_scored, kappa, r_axis, volume; c family li, r_axis), others 0.05 | fold 1 (independent of fold 0 that chose the labels), S16 refit on Kaggle with original seeds; 15 ok + c_seed2_tc amendment 1 (seed 1002, .99834 → .99991; amendment 2 run in parallel .99991, not used by pre-committed order); v25 finisher; paired shot bootstrap vs V0 (20000, seed 930); frozen rule (protocol 05bf6b35) | S .995060 vs .995169: dS −1.09e-4, CI95 [−2.54e-4, +4.0e-5], P .07. li +1.1e-3, Z_axis +1.7e-4; R_axis −1.3e-4, kappa −2.7e-4, volume −3.7e-4, tri_top −1.0e-3, tri_bot −1.1e-3, D_LCFS +3.6e-4 worse, flux −9.7e-6, Consistency −2.3e-4 | rejected (needs +2e-5 and P ≥ .8); not extended. Even unweighted heads (triangularities) lose: the shared trunk trades map and boundary for weighted heads. Per-scalar label-weight lever closed | | 2.17 | D5-0: does the discharge history predict the OOF residuals beyond the same frame? (gate for a sequence model) | frozen (protocol ecbd00a5), 5 OOF folds / 400 shots / 44888 scored frames, 9 residual targets (7 consistency scalars, q95, betaN); HGB nested by fold; M0 same frame (PCA-32 inputs + 27 map readings) vs M1 + lags ±1/2/4/8, shot and running means, position; shot bootstrap (seed 932); result sha e53fc3b6 | residual R2 vs no correction M0/M1: R_axis −.10/−.15, Z_axis −.04/−.13, kappa −.06/−.13, tri_top .012/−.013, tri_bot .028/.007, volume −.14/−.24, li −.13/−.19, q95 −.14/−.23, betaN −.13/−.14; gain negative on all 9 | D5 closed (0 of 9 targets meet the rule): the history adds no correctable information, and even a same-frame residual corrector mostly adds error — the ensemble’s OOF residuals are not predictable from the inputs or our readings | | 2.18 | D4c: lcfs_r label weight 0.05 → 0.005 in the 5 hc members (the second agent’s contour weighting, applied to our recipe) — screen | frozen (protocol d320aaf8 + amendment 1: label names), folds 0+1 (160 shots), hc refits on Kaggle, c/h/hx reused, hc readout on ML350, v25 finisher; result sha e5e849ff | S .9954926 vs .9954711: dS +2.15e-5, CI95 [−4.3e-5, +9.1e-5], P .737; flux .999865 → .999869, qb .99820 → .99826, D .008560 → .008518, Consistency .98335 → .98339 (all four terms better); scalars R_axis −2.4e-4, tri_top −1.4e-4, kappa +2.2e-4, tri_bot +2.7e-4 | screen FAILED (P .737 < .8). A stricter independent confirmation on unseen folds 2–4 (P ≥ .9) frozen before any of their results: protocol_d4c_confirm_folds234.json | | 2.19 | D4c-confirm: the same lcfs_r weighting on unseen folds 2, 3, 4 | frozen before any fold 2–4 result (protocol fe540e35, P ≥ .9); hc refits Kaggle, hc readouts ML350, v25 finisher; results sha a83db443 (folds 2–4), 5e5a74d9 (all 5) | folds 2–4 (240 shots): dS −4.18e-5, CI95 [−1.03e-4, +1.5e-5], P .077 (flux +5e-7, qb +1.7e-5, D_LCFS +1.7e-5 worse, Consistency −2.1e-4); all 5 folds (400): dS −1.54e-5, P .25 | REJECTED for good: the folds 0+1 gain did not replicate. The second agent’s contour weighting helps a small 4-model fixed-60 recipe against its matched control, but not our 195-net recipe | | 2.20 | D6: head swap — V0 flux coordinates, X-point and boundary outputs; every scalar head (q95, beta_n, li, li_scored, r_axis, z_axis, kappa, tri_top, tri_bot, volume) from a specialist set (fold 0: D4 x4 uniform; fold 1: D4b selective) — screen | frozen (protocol 54d94e6d, d6_build 43879e2e, d6_score 558a3baa) before any build; folds 0+1 (160 shots), existing fits only, v25 finisher; paired shot bootstrap 20000 seed 951 | dS +5.98e-5, CI95 [+2.7e-6, +1.23e-4], P .980; flux .9998653 → .9998656, qb .99820 → .99817, D .008560 → .008514, Consistency .98335 → .98366; scalars li +1.0e-3, volume +4.7e-4, kappa +3.1e-4, R_axis +2.9e-4, Z_axis +1.1e-4, tri_top −5e-5, tri_bot −1e-5 | screen PASSED. Folds 0/1 were exposed (D4/D4b per-scalar results known), so only unseen folds 2–4 decide: confirmation frozen (protocol a355ff10, P ≥ .9) with new D4-recipe specialist fits on the workstation ROCm cards | | 2.21 | D6-confirm: the head swap on unseen folds 2, 3, 4 with new D4-recipe specialist fits | frozen before any fold 2–4 result (protocol a355ff10 + amendment 1 57412c99: two local ROCm attempts died before epoch 1 on host-memory pressure, so fits ran on Kaggle CUDA like D4 fold 0); first-fit c-family failures 5/48, resolved in the pre-committed order (2 retry, 3 amendment 2), 48/48 accepted; ML350 bank readouts; v25 finisher; bootstrap seed 951 | folds 2–4 (240 shots): dS −9.8e-6, CI95 [−9.7e-5, +6.2e-5], P .435 (flux ±0, qb .997758 → .997729, D .009069 → .009049, Consistency .983633 → .983596; kappa −4.4e-4, Z_axis −3.7e-4, volume +2.1e-4, tri_bot +2.0e-4); all 5 folds (400): dS +1.9e-5, P .768 | REJECTED: the folds 0+1 gain (+6.0e-5, P .98) did not replicate, as with D4c. The deployment specialists (all-data, fitted ahead on Kaggle, d6/deploy) are not used; their build was stopped | | 2.22 | Feasibility: up-down mirror augmentation of the DIII-D training data (the one way to “more data” left after the holdout entered v28) | input census (no fit): DIII-D inputs are 18 F-coil circuits (A/B pairs at near-mirror heights), E-coil, B-coil, Ip and Thomson; no magnetic probes. Feature code fec_adapter/diii_d_accuracy/features.py bins the vertical laser over heights −0.10..0.86 m (measured channel span −0.07..0.83 m) | a Z → −Z mirror maps the vertical-laser bins onto −0.83..+0.07 m, where no channel exists; the network reads axis height and elongation largely from those bins (features.py docstring) | NOT FEASIBLE without dropping the Thomson block, which the recipe depends on; not pursued. Remaining data lever: D7 (calibration rows for the 5 non-tc members) | | 2.23 | D7: the 5 S16 members that never train on calibration (c_seed0, c_seed1, h_labels02_s76, h_seed8, hx_seed1) refitted with train_on_calibration, other 11 = V0; single stage on all 5 folds | frozen (protocol 049a0f80, derived K-fold protocol 3fa202e0) before any fit; Kaggle CUDA (fec-d7-a/b), all 25 first fits passed amendment 1 (backups unused; note: calibration is now in-sample for these members, so their calibration R2 is optimistic); ML350 bank readouts; v25 finisher; seed 961; result sha a3b8bbc2 | all 400 shots: dS +8.1e-6, CI95 [−3.3e-5, +4.6e-5], P .666 (flux +1.4e-6, qb −1.4e-5, D .008869 → .008831, Consistency +2.8e-5; R_axis +2.8e-4, volume +1.4e-4, li −4.0e-4). Per fold: +3.4e-5 (.95), +6.6e-5 (.92), −0.1e-5 (.49), −4.1e-5 (.20), −4.0e-5 (.36) | REJECTED (rule P ≥ .9). The 7 % calibration rows do not move the 16-member OOF score detectably | | 2.24 | Post hoc: how noisy is one fold? Per-fold dS of D4c, D6 and D7 (cached rows, no new fit) | d4c/d6/d7 _score.py per fold, same bootstraps; V0 networks of every fold are Kaggle fits (receipts), so no hardware confound | D4c: +6.7e-5, −2.0e-5, −1.7e-5, +1.1e-5, −1.16e-4. D6: +1.18e-4, +0.5e-5, +3.5e-5, −4.8e-5, −2.2e-5. D7: +3.4e-5, +6.6e-5, −0.1e-5, −4.1e-5, −4.0e-5. Fold-to-fold spread ≈ 5e-5 in either direction, the sign pattern differs between experiments | methodological finding: an 80-shot fold carries ±5e-5 of shot-sampling noise, larger than the +2e-5 effects sought. Two-fold screens (D4c, D6) were underpowered; all-400 single-stage decisions (D7) are the minimum. A lever below ~3e-5 is not detectable with this framework | | 2.25 | D6-public: the D6 head swap deployed on the public test set — 195-net flux/X-point/boundary + ten scalar heads from 16 all-data D4-recipe specialists | protocol ffffd46e frozen before the build (deploy only if d3d_S ≥ .996010); deploy_build.py (no-swap check bit-identical on 3 shots), WS 9683 s, archive 9e381712…; with MAST v11; HF 35bfe30e…; first submission #961044 (00:52Z) stuck in “Submitting” through a Codabench outage (page HTTP 500 for ~7 h), resubmitted as #961602 2026-10-05 07:39:20Z; Development score used with disclosure | public DIII-D S .995908 vs .995990 (−8.2e-5): flux .999877 (.999879), qb .997322 (.997628), D_LCFS .008899 (.008908), Consistency .986337 (.986519). MAST unchanged .719023 | REJECTED, and worse than the OOF estimate (+1.9e-5). Cause, in hindsight a design error of the deployment: the OOF experiment compared 16 specialist heads with 16 ordinary heads, but the deployment replaced heads averaged over 195 networks by heads averaged over 16, giving up most of the ensemble averaging of exactly the outputs that feed qb and the finisher. A like-for-like deployment would need specialists for all 195 members. Not pursued | | 2.26 | D6b-public: every output head (scalars, X-points, 64 boundary radii) from the 16 specialists, flux from the 195-net | protocol 6c12d11b frozen before the D6 public result; built on ML350 with deploy_build_portable.py –swap all (12441 s; ML350 is slower than the workstation for this build), archive 1fe4cd90… | not submitted | WITHDRAWN before submission after 2.25: the same averaging loss applies more strongly (X-point heads from 8 specialists, boundary radii from 5, instead of the ensemble’s dozens). No public number spent. Lesson for any future head or member replacement: deploy like for like, or test the deployment configuration itself out of fold | | 2.27 | D9-0 gate: do boosted trees (xgboost, one fixed setting: depth 8, eta .05, 3000 rounds) on the networks’ own 367-feature table err differently enough that a nested blend with the S16 fold heads is better out of fold? | frozen (protocol 70356ade, kernel 232eed80) before any tree fit; 5 folds over all 5936 non-reserved training shots (1.32M frames), 13 targets; network heads = the 16 S16 V0 fold networks on the same rows (ML350); blend weight by least squares on the other four folds; shot bootstrap 2000, seed 990; result sha 8c59ed7b | head-level proxy dS +3.11e-5, CI95 [+1.96e-5, +4.52e-5], P 1.0. li_scored .96996 → .97140 (weight .27, error corr .72), r_axis .98142 → .98165 (.14, .76), kappa .97331 → .97341 (.07); q95, betaN, z_axis, triangularities, volume unchanged (weights ≤ .06). Trees alone are weaker (li .9610, kappa .9554, q95 .9926) and 64 of 65 fits stopped at the round cap. Error correlation trees–networks .48–.76 (network members among themselves .993) | PASSED (rule ≥ +3e-5, P ≥ .95). A different model family carries information the network ensemble lacks; the gain is limited by the trees’ own accuracy. Next: D9-0b (trees to convergence), then a deployment protocol on the 195-net configuration | | 2.28 | D9-0b: are the gate’s trees limited by the 3000-round cap? Same trees with eta .1, cap 6000, patience 200; q95, li_scored, r_axis, kappa | frozen (protocol d8ead63f, kernel 4c588281) before any fit; same folds, rows, network heads and nested weight as 2.27 | fits stop at 2800–6000 rounds. Trees alone: li .95964 (A .96100), r_axis .97218 (.97309), kappa .95446 (.95538), q95 .99218 (.99262). Nested blend: li .971400 (A .971399), r_axis .981668 (.981648), kappa .973474 (.973410), q95 .997314 (.997309) | no gain from longer training: the tree family’s own accuracy, not the cap, limits the blend. Deployment (D9-1, protocol a50a0598) uses B for li, r_axis, kappa by the frozen higher-R2 rule (ties to the 5th decimal) | | 2.29 | D8-public F2: finisher shares on the deployed 195-net one step beyond the R8 winners (li-share 1.0, contour-share .8, kappa = volume .8; tri .25) | protocol 9bb00be0 frozen before the build (deploy only if public d3d_S ≥ .996010); deploy_build_portable.py 90338b0a on ML350 (21690 s, 12 workers on a shared machine), archive d35a6b8b…; with MAST v11; HF 5615826f…; Codabench #962577, 2026-10-05 14:23:31Z; Development score used with disclosure | public DIII-D S .995949 vs .995990 (−4.1e-5): flux .999866 (.999879), qb .997628 (.997628), D_LCFS .008926 (.008908), Consistency .986352 (.986519). MAST unchanged .719023 | REJECTED. Going the whole way to the li head and .8 of the way to the contour, kappa and volume heads costs Consistency and flux: the map reading still carries information the 195-net heads lack, so a share well below 1 stays right. Display restored with #962588 (v11 pointer). F1 (the milder step) is submitted on 6 Oct; no further share after it | | 2.30 | D10-0 gate: cross-fitted residual correctors of the network heads (xgboost on 367 features + the 13 out-of-fold heads → label − head; fit on 3 folds, stop on a 4th, predict the 5th) | frozen (protocol d8d07fa9, kernel 67ba000e) before any fit; all 5936 non-reserved training shots, out-of-fold S16 heads of 2.27; measured with the 2.27 evaluation unchanged (nested weight = shrink of the correction) | head-level proxy dS −2.0e-6, CI95 [−5.5e-6, +1.3e-6], P .13. The correctors stop after 0–100 rounds (0 on 20 of 65 fits). li .96996 → .96990, kappa .97331 → .97327, r_axis, volume, betaN shrink 0; X-point radii marginal (x_upper_r +1.1e-4, P .82) | FAILED; residual correctors closed for good (earlier negatives 2.8, 2.13, 2.17 had 400 shots; this has 5936). With 2.27: averaging a differently built estimator helps a little, correcting does not — the networks’ error on an unseen shot is not a learnable function of the inputs | | 2.31 | D11 exploration: q95 computed from the flux map (bicubic spline, scorer LCFS for the edge flux, vacuum F) as a second estimate beside the head | measurement only, no fit and no selection: fold 0 of the OOF maps, 80 shots, every 4th frame (4419 frames); script d11_q95_from_map/q95_map_ceiling.py | head R2 .99835 (relative error IQR ±0.5 %); from the true map .92057 (IQR −0.17…+0.43 %, but 1 % of frames carry 97 % of the squared error); from our OOF map .92089 (IQR −0.54…+0.89 %). Gated blend with our map: .99835 → ≤ .99839; with the true map → .9989. Head error by q: 41 % in q95 > 9 (5.6 % of frames) | not pursued: the idea needs a map more accurate than ours; our map-derived q95 is no better than the head in the bulk and worse in the tail. Finding kept: the q95 term is decided in the low-current, high-q frames | | 2.32 | D12-0 gate: trees for q95 on the physics ratio target s = q95 / (B_t/I_p feature), frames weighted by ratio² (loss = squared error in q95) | frozen (protocol 6fcb7b51, kernel dc907510) before the fit; D9 setting A, same folds, rows, network heads and nested weight as 2.27 | trees R2 .99277 (raw-target trees .99262; head .99730); nested blend .99730; per fold dR2 +2e-5, −3e-5, +1e-5, 0, +3e-5 | FAILED (rule: +3e-4 and all five folds). The target transform does not make trees competitive on q95; closed | | 2.33 | D13: where the out-of-fold head error sits along the shot (anatomy, no fit) | S16 OOF heads on all 1 317 704 frames of 5936 training shots (nn_oof.npz) against position in the record, Ip / discharge peak, dIp/dt, label steps; d13_shot_anatomy/anatomy.py, timeline_data.py; page shot_error_timeline.html | share of each head’s squared error: li 30 % in the last 3 frames (1.3 % of frames), 63 % in the last 25 (0.5 s), 60 % at Ip < 0.6 peak (7.6 % of frames); q95 16 % / 38 % / 57 % and 10 % in the first 3 frames; betaN 15 % / 33 % / 27 %; z_axis 15 % / 36 % / 37 %; r_axis and kappa about 5 % / 20 % / 18 %. Label steps above 30 median steps (under 0.5 % of frames) hold 35 % (li), 25 % (q95), 16 % (betaN). Per-shot offset 21–39 % | finding: the pooled R2 of the scalar terms is decided in the termination and low-current frames, a tenth of the data. It says where the error is, not that it is reducible (see 2.34) | | 2.34 | D14-0 gate: trees fitted only on the tail regime (fewer than 25 frames to the record end, or Ip < 0.6 peak, or < 0.3 s since start), with frames-to-end and frame index as extra inputs | frozen (protocol f907d246, kernel bf9fa28e, evaluation 6a69872a) before the fit; D9 setting A; variants general (2.27), regime weights, tail specialist; same proxy and bootstrap as 2.27 | proxy general +3.11e-5, regime weights +3.78e-5, tail specialist +3.33e-5; specialist − general +2.2e-6 (CI −3.0e-6…+7.5e-6, P .79). In the tail the specialist trees are worse than the general ones (li SSE ratio to the networks 1.22 against 1.10) | FAILED (rule +1e-5, P ≥ .95), closed. A fifth of the frames is too little for trees; the termination error is not reduced by a tree specialist | | 2.35 | D15-0 gate: four S16 members (recipe 0 c, 22 and 24 h, 31 hx) refitted per fold with the label error of tail-regime frames weighted 5x (mean one), blended into the S16 out-of-fold heads | frozen (protocol c96596b0, kernels 93a2f103 / 3379ff42, evaluation 7e61a23d) before any fit; Kaggle 2xT4; fit code unchanged except the row weights of the label error; nested weights, separate in and outside the tail; proxy and bootstrap of 2.27 | proxy +1.8e-6 (CI −1.0e-6…+4.7e-6, P .91); nets alone worse than S16 also inside the tail (SSE ratio li 1.06, q95 1.57, betaN 1.27), error correlation with S16 .74–.94; on top of the trees +5.6e-6 (P .99). c member failed the flux rule in folds 2–4 | FAILED (rule +3e-5), closed; one weight value only. Limit: 4 networks against 16 and no plain 4-network comparator — it shows a few tail-weighted members do not move the ensemble heads, not what the weighting does to a single network | | 2.36 | D8-public F1: the milder finisher shares on the deployed 195-net (li-share .8, contour-share .65, kappa = volume .65) | protocol 9bb00be0; ML350 build 22621 s, archive bcf24930…; with MAST v11; HF 19de3756…; Codabench #963337, 2026-10-06 00:03:39Z; Development score used with disclosure | public DIII-D S .995985 vs .995990 (−5e-6): flux .999872 (.999879), qb .997628, D_LCFS .008886 (.008908), Consistency .986500 (.986519) | REJECTED (rule ≥ .996010). With 2.29: larger shares do not help the 195-net (−0.5e-5 at the mild step, −4.1e-5 at the strong one); the boundary term improves slightly and Consistency and flux pay for it. D8 closed, deployed shares stay | | 2.37 | D9-1 G1: boosted-tree heads blended into the deployed 195-net heads (weights li_scored .26, r_axis .14, kappa .09, x_lower_r .16; baseline finisher) | protocol a50a0598 + amendment 1, frozen before any all-data tree fit; trees fitted on training + validation tables (Kaggle), predicted on the public-test feature matrix (b2598845…); builder deploy_build_blend.py e6cd21eb, ML350 12419 s; archive babd97cd…; with MAST v11; HF cd2545f9…; Codabench #963357, 2026-10-06 00:08:36Z; Development score used with disclosure | public DIII-D S .996025 vs .995990 (+3.5e-5): flux .999878 (.999879), qb .997628 (unchanged), D_LCFS .008888 (.008908), Consistency .986681 (.986519). MAST unchanged .719023 | DEPLOYED (rule ≥ reference + 1e-5). The public gain matches the out-of-fold head proxy of 2.27 (+3.1e-5, CI +2.0…+4.5e-5): the first DIII-D gain since the 195-net ensemble, and the first from a second model family | | 2.38 | D16-0 gate: sub-frame input features (plasma current at ±1…±20 ms and its ±10 ms mean, per-filament changes over ±5/±10 ms and ±10 ms mean, TF change, Thomson pulse timing; 215 columns from the 0.5 ms signals) added to the D10-0 cross-fitted corrector | frozen (protocol 65b5fb10 + amendment 1 for a faster extractor, kernel 05d21dfd) before any fit; extraction on ML350 under ~/ (1.32M × 215, sha c86cf095); evaluation of 2.27 unchanged | proxy +7.9e-6 (CI −9.7e-6…+2.4e-5, P .83). z_axis error variance −4.9 % (P 1.00), X-point heights −1.2…−1.3 % (P .96), x_lower_r −0.9 %; q95, kappa, r_axis, volume unchanged; betaN +2.2 % and li +0.3 % worse. Direct check: the q95 head’s relative error does not follow (window-mean − point) current (corr +.026, slope .07) | FAILED as frozen. Finding kept: the fast coil signals carry information on the vertical position that the 20 ms features lack; the point-sample noise does not explain the q95 error | | 2.39 | D13b + D17: the scalars read from our finished maps against the heads (400 OOF shots), then finisher shares for triangularity .25 → .7 (T1) and also kappa .5 → .75 (T2) | D13b: R8 V0 rows, no fit — head/map squared error tri .78–.89, kappa .96–.97, others 1.00; linear weight toward the head +.6…+.7 (upper bound about +1.9e-4 S). D17 frozen (protocol b13d8816) on the R8 machinery, all 400 shots planned | TERMINATED EARLY after 3 of 10 builds (job stopped at the 2 h harness limit; not restarted): T1 fold 0 −5.7e-5, T2 fold 0 −4.8e-5, T1 fold 1 −7.3e-5. Triangularity R2 +.0003…+.0010 only, D_LCFS +7–8 %, flux R2 −2…−3e-5 | not completed as frozen (a deviation, recorded in TERMINATED_EARLY.md); closed on consistent sign and mechanism: bending the map further toward the triangularity heads damages the boundary. The deployed tri share .25 is a trade-off with D_LCFS, not an oversight | | 2.40 | D18-0 gate: the networks themselves with the 215 sub-frame input features, paired against the same networks without | frozen (protocol 2a58fe84, kernels a01bc133 / ff4ae773, evaluation written first) before any fit; four S16 members (recipe 16, 24 h; 30, 31 hx), same settings and seeds in both arms, five folds, Kaggle 2xT4; all 1 317 704 held-out frames of 5936 shots; shot bootstrap 2000, seed 990 | squared error S/P: z_axis .852, x_lower_z .863, x_upper_z .883, tri_bot .891, volume .897, tri_top .923, q95 .945, kappa .949, x_lower_r .946, r_axis .978, betaN .965, li .988; 64 flux coordinates .978 (P .995). Head proxy +1.35e-4 (CI +9.5e-5…+1.69e-4, P 1.0) | PASSED (rule: z_axis ≤ .95 with P ≥ .95, flux not worse). The 0.5 ms input signals inside and around a frame carry information the 20 ms table lacks; every output improves. Largest effect measured in this ledger. Next: a recipe refit with the sub-frame features — entrant’s decision | | 2.41 | D19 H0: the first 32 members of v29 (all-data refit with the 215 sub-frame features; hx and hc families, members 33–64, readout bank refitted on the extended tables) alone, deployed finisher, no tree blend | protocol 161bc746 + amendment 1; fits Kaggle 2xT4 (32 of 32 calibration flux R2 ≥ .999), readouts and build on ML350 (deploy_build_subframe.py 72e9929a, 11 618 s, memory-capped), archive e8af0cc9…; with MAST v11; HF 818f96fb…; Codabench #965153, 2026-10-06 15:59:49Z; Development score used with disclosure | public DIII-D S .996223 vs G1 .996025 (+1.98e-4) and vs the 195-net baseline .995990 (+2.33e-4): flux .999881, qb .997672 (.997628), D_LCFS .008481 (.008888), Consistency .987429 (.986681). MAST unchanged | DEPLOYED (rule ≥ .996035). Thirty-two networks that read the 0.5 ms signals beat 195 that do not, on every term. Largest single gain of the project. Next: the remaining 33 members (H1), the tree blend on top (H2) | | 2.42 | D19 H1a: 48 v29 members = H0’s 32 (hx 33+, hc) plus h 16–22, 24–29 and hx 30–32, deployed finisher, no tree blend | amendment 2 (frozen 2026-10-06 21:26Z, before the build); the 16 added members fitted on Kaggle CPU (16–27) and the ML350’s CPU (28–32), all calibration flux R2 ≥ .999, readouts refitted; ML350 build 11 719 s, archive 8af2f2e8…; with MAST v11; Codabench #966320, 2026-10-07 07:13:49Z; Development score used with disclosure | public DIII-D S .996192 vs H0 .996223 (−3.1e-5): flux .999875 (.999881), qb .997676 (.997672), D_LCFS .008561 (.008481), Consistency .987325 (.987429) | REJECTED (rule ≥ .996233). Sixteen more networks made the flux map, the boundary and the consistency terms worse; only qb gained (+4e-6). More members of the h family are not an improvement over the hx/hc set | | 2.43 | D19 H2a: H1a’s 48 networks with the D9 tree heads (67fd2caa, fitted on the 367 table features) blended at the G1 weights (li .26, r_axis .14, kappa .09, x_lower_r .16) | amendment 3 (252054ca, frozen 2026-10-07 00:55Z before the build and before H1a was scored; caveat on the weights written then); ML350 build 12 011 s, archive ffe9aebf…; with MAST v11; Codabench #966327, 2026-10-07 07:16:57Z; Development score used with disclosure | public DIII-D S .996222 vs H1a .996192 (+3.0e-5) and vs H0 .996223 (−1e-6): flux .999876, qb .997676, D_LCFS .008538 (H1a .008561), Consistency .987463 (H1a .987325) | NOT DEPLOYED (rule ≥ best of H0, H1a + 1e-5). The blend’s sign is positive and of the size seen for G1 (+3.5e-5 on 195 networks), so trees fitted without the sub-frame features still add to networks that have them. Next: the same blend on H0’s 32 networks (H0t, amendment 4, selection on the public test disclosed) | | 2.44 | D19 H1: 64 v29 members = H1a’s 48 plus h_seed7_tc (amendment-1 fit, readout refitted) and 15 c members (6 first fits, c_seed9_tc amendment 1, 8 with gradient_limit 0.1; c_seed6 dropped: all three fits below .999 on calibration), deployed finisher, no tree blend | protocol 161bc746 (H1 as frozen, one member short); fit ledger v29_fit_ledger_c_and_h23.json; c members fitted on Kaggle CPU; list ed8ea454…; ML350 build 11 830 s, archive e37b443c…; with MAST v11; Codabench #966479, 2026-10-07 08:20:12Z; Development score used with disclosure | public DIII-D S .996044 vs H0 .996223 (−1.79e-4) and vs H1a .996192 (−1.48e-4): flux .999859 (H0 .999881), qb .997385 (.997672), D_LCFS .008798 (.008481), Consistency .986966 (.987429) | REJECTED. Every term is worse. With the sub-frame inputs the score falls as families are added to the hx/hc set: 32 members .996223, +h/hx 48 members .996192, +c 64 members .996044. The c members cost five times more than the h members. The full recipe is not the best ensemble; which members to average is now the question (examined out of fold, D22) | | 2.45 | D22 / D22b diagnostics, off the public test: does averaging more families help the raw networks? (written after H1a, run while H1 was scored; nothing fitted or selected) | D22: D18-0 arm-S networks (2 h + 2 hx per fold, sub-frame inputs). D22b: the 16-member K-fold ensembles (4 c, 4 h, 3 hx, 5 hc; table features; readouts refitted). Both: every 4th held-out frame of 5936 shots (329 426 frames), raw network output without the finisher, squared-error ratios with shot bootstrap 2000/990 | D22 (sub-frame): h pair / hx pair flux 1.082 [1.061, 1.102], q95 1.147, tri 1.07; all four / hx pair flux .905 [.895, .915], every head better. D22b (table features): flux c alone 1.124, h 1.053, hx 1.083, hc 1.102 of hx+hc; h+hx+hc / hx+hc .961 [.955, .967]; all 16 / hx+hc .928 [.919, .936]; q95 .966 / .986, betaN .963 / .924, r_axis .981 / .969; c alone has q95 error 1.34 | Out of fold, adding the h and the c members improves the raw ensemble; the public score says the opposite for v29 (2.42, 2.44). The two are not the same measurement: fewer members here (8 → 16, not 32 → 64), no finisher, shots of the training distribution, and in D22b no sub-frame inputs (with them the h members fall behind hx by 8 %, without them they are ahead). The public loss is therefore not explained by member quality as measured on training-distribution shots; the choice of the 32-member set rests on the public score alone and is disclosed as such | | 2.46 | D19 H0t: H0’s 32 networks (hx 33–40, hc 41–64, sub-frame inputs) with the D9 tree heads blended at the G1 weights (li .26, r_axis .14, kappa .09, x_lower_r .16) | amendment 4 (0371120a, frozen 2026-10-07 07:20Z after H0, H1a, H2a were known and before the build): a selection on the public test, disclosed as such — the member set is the one that scored best, the blend the one whose public sign was positive; no weight tuned. ML350 build 11800 s, archive b3554d5f…; with MAST v11; HF 65638756… (after six rejected archives were deleted from HF on the entrant’s decision: the private storage limit had refused the first upload); Codabench #966820, 2026-10-07 11:25:22Z; Development score used with disclosure | public DIII-D S .996247 vs H0 .996223 (+2.4e-5): flux .999881 (same), qb .997672 (same), D_LCFS .008456 (.008481), Consistency .987534 (.987429). MAST unchanged, G .721732 | DEPLOYED (rule ≥ .996233). The third time the same tree blend adds 2–3.5e-5 (G1 on 195 networks, H2a on 48, here on 32), each time through Consistency and the boundary. Restore pointer is now A/submission_d19H0t_v11_HF/submission_pointer.zip | | 2.47 | D20-0 gate: networks that also read the raw 0.5 ms input windows (840 columns: 40 instants within ±10 ms for the plasma current, 19 coil circuits and TF, as differences from the frame value) against the same networks with the 215 sub-frame summaries only | protocol 075a25cf (frozen 2026-10-06 21:45Z before any fit; evaluation checked on D18 files first); four S16 members (16, 24 h; 30, 31 hx), five folds, arm W on Kaggle CPU (20 fits, all calibration flux R2 ≥ .999), arm S = D18-0 arm S (accelerator), control: arm S refitted on the host for fold 0; all 1 317 704 held-out frames, shot bootstrap 2000/990 | W/S squared error: flux coordinates 1.253 [1.226, 1.281]; q95 1.36, betaN 1.71, z_axis 1.26, volume 1.28, x_lower_r 2.32, x_upper_r 1.76, li 1.07; head proxy −5.1e-4 (P positive 0). Control on fold 0: host-fitted S against accelerator-fitted S flux 1.071 [1.050, 1.095], proxy −8.1e-5 (the machine alone costs that much); W against host-fitted S flux 1.580, proxy −7.3e-4 | FAILED, closed. Giving a fully connected network the raw sequence makes every output worse, by far more than the machine difference: 840 strongly correlated inputs beside 582 dilute the first layer, they do not add information the 215 summaries lack. A reader built for sequences (convolution over the 40 instants) would be a different experiment. Side finding to follow up: the same recipe fitted on the host processor is 7 % worse on the flux map than on the accelerator (one fold, four members) — it bears on the v29 members 0–32 and on the second-seed set, all host-fitted | | 2.48 | D23-0 gate: q95 and betaN heads on a physics-normalised target in the networks (two more labels, q95 / ratio and betaN / ratio, ratio = the B_t/I_p input feature; answers multiplied back by the ratio; nested blend with the direct heads) | protocol 2f2c3d73 (frozen 2026-10-07 14:5xZ before any fit; kernel smoke-tested on 120 shots; evaluation checked on D18 files); four S16 members (16, 24 h; 30, 31 hx), five folds, sub-frame tables, Kaggle CPU (20 fits, all calibration flux R2 ≥ .9996); 1 317 704 held-out frames, shot bootstrap 2000/990; reference arm S of D18-0 (accelerator) | ratio-derived q95 alone 1.36 × the direct head’s squared error, betaN 7.3 ×; nested blend weights q95 .25–.30, betaN 0; blend over the same networks’ direct heads: q95 .950 [.931, .972], betaN 1.000, qb gain +1.14e-5 (P 1.0, below the +1.5e-5 bar). Against arm S: these networks’ direct q95 1.13, betaN 1.28, flux coordinates 1.22 [1.20, 1.25], other heads −1.4e-4 in the proxy; qb of the blend against S −8.2e-5 | FAILED on all three criteria, closed. The normalised q95 head carries a little independent information (5 % of the head’s error at a weight of a quarter), the betaN one none; and adding the two labels cost the shared trunk far more than that (the map 22 % worse, about three times the machine difference measured in D20). The form of the target is not what holds q95/betaN back | | 2.49 | D19 H3: all hx/hc members with sub-frame inputs — H0’s 32, v29 hx 30–32, and a second-seed set of the 35 hx/hc members (seed + 5000) — 70 networks, with the D9 tree blend at the G1 weights | amendment 5 (5d115dca, frozen 2026-10-07 10:4xZ before any second-seed fit; expected +1e-5…+3e-5 stated then; restriction to hx/hc disclosed as a choice made on public scores); second-seed fits on Kaggle CPU (30) and the ML350 CPU (5), 35 of 35 calibration flux R2 ≥ .999 (lowest hx_seed2 .999628), readouts refitted; list 6f7d59fe; ML350 build 12 069 s, archive 8c96b106…; with MAST v11; HF 4e31754c…; Codabench #968291, 2026-10-08 05:01:19Z; Development score used with disclosure | public DIII-D S .996263 vs H0t .996247 (+1.6e-5): flux .999883 (.999881), qb .997701 (.997672), D_LCFS .008424 (.008456), Consistency .987576 (.987534). MAST unchanged, G .721720 | DEPLOYED (rule ≥ .996257). Every term a little better, as the member-diversity scaling predicted: more members of the two families that work help; more families did not (2.42, 2.44). Restore pointer A/submission_d19H3_v11_HF/submission_pointer.zip | | 2.50 | D24-0 gate: boosted-tree heads fitted on the table features plus the 215 sub-frame features, against the D9 table trees, both blended into the sub-frame network heads (D18 arm S) | protocol ce5f85b5 (frozen 2026-10-08 05:2xZ before any fit); D9 setting A unchanged, 582 features, eight heads, five folds, Kaggle CPU hist (ten kernels, ~78 min per head, all at the 3000-round cap); unattended fetch and evaluation (finish_d24.sh), frozen hashes re-verified; 1 317 704 held-out frames, shot bootstrap 2000/990 | tree R2 sub / table: q95 .99254 / .99262, betaN .98827 / .98846, li .96000 / .96100, r_axis .97314 / .97309, z_axis .97207 / .97250, kappa .95572 / .95538, x_lower_r .99585 / .99592, x_lower_z .97260 / .97274; blend sub / blend table squared error 0.9996–1.0074 (li 1.0074, P .008 that sub is better). Head proxy over the network heads: table trees +5.14e-5, sub-frame trees +4.73e-5; difference −4.1e-6 [−8.3e-6, −5e-7], P positive .012 | FAILED, closed. The trees do not use the sub-frame columns: with 582 instead of 367 features they are the same or slightly worse (li). The table trees stay in the blend; their out-of-fold value on top of sub-frame networks is confirmed (+5.1e-5, P 1.0) | | 2.51 | D25 H69 + MAST v12 (built by the second agent, submitted on the entrant’s word): H69 = H3 without the weakest second-seed member (v29_readout_s2/discharge_hx_seed2; calibration flux R2 .999628), same trees and finisher; MAST v12 = v11 with the organiser-mask dependency replaced by finite positive-R input-grid support minus conductor cells | experiment experiments/D25_member_ablation_2026-10-08T154444Z (protocols and receipts there; the removal was chosen on a calibration diagnostic, which is training-exposed); DIII-D archive 99a7df91…, MAST 2febdf3e…; QA validator exit 0 x2; HF f04ff3de…; Codabench #970217, 2026-10-08 21:20:43Z; Development score used with disclosure | public DIII-D S .996274 vs H3 .996263 (+1.1e-5): flux .999883 (same), qb .997721 (.997701), D_LCFS .008411 (.008424), Consistency .987608 (.987576). MAST S .714450 vs v11 .719023 (−.0046): flux .97945 (.97979), qb .33069 (.31978), D_LCFS .19179 (.19045), Consistency .22665 (.25608); G .717122 (.721720) | DIII-D meets the candidate rule (H3 + 1e-5), by 1e-6. MAST v12 scores lower than v11, mostly in Consistency. Which MAST archive stays is the entrant’s decision. Displayed entry is now #970217; pointer the internal record | | 2.52 | D39: re-tune of the deployed finisher on held-out full-69 answers (26 one-at-a-time settings in 11 groups: contour share and rounds, X-point share, head and map smoothing, kept coordinates, shape and li shares, edit margin, tree-blend scale; plus cubic instead of bilinear warps and two composites; plus oracle-map and oracle-X diagnostics) | protocol f1e52837 + amendments 1–6 (screening part, cubic warps, oracle-X, source binding and frozen selector by knob group, report guard, unattended round-2 chain); the second agent’s 69 + 8 networks fit-disjoint from the 358 development shots (D38), D9 trees; base equals the second agent’s matched69_scalar8 to every digit on the parity shot; ML350, 32 variants × 120 screening shots (index % 3 == 0, 26 597 frames), paired whole-shot bootstrap 10000 / 3901, 99 %; report sha 393678d4; reviewed by the second agent at every step, joint protocol D39_joint_finisher_review_2026-10-11T083412Z | base S .996072 (flux .999884, qb .99767, D .009482, C .98717). No setting passes (rule dS ≥ 1e-5 and 99 % lower bound > 0): best m3 +11.3 µS [−1.9, +52.5], cub +10.6 [−9.3, +31.4], li080 +7.0, s45 +3.9, sf1 +2.9; contour 0/.25/.75/1.0 −125/−29/−12/−62, X-share .5/.75 −64/−23, head smoothing ±1/±2 frames −278/−716, tree scale 0/2 −17/−112, k32/k64 −50/−7. Diagnostics (not deployable): true 128-coordinate map through the base finisher +864 µS (D .00796, C .99052), the same without the contour bend +1050 (D .00737); true X-points as move targets +625 [491, 807] (D .00693, kappa R² .9785 → .9879), with cubic warps +622. The second agent’s same-host factorial: positions +626, validity −1.4 | NO FINALIST; closed. The September settings are still at their optimum for the present networks; the 238 other development shots and the 357 were not opened. Two levers measured on held-out shots, each larger than our gap to the leader: X-point position (+625 µS at perfect targets) and map accuracy (+864…+1050 at a perfect 128-coordinate map). Cubic resampling does not matter. Head-only side results: X error 5.55/5.69 mm, 5.4 mm common to all members, head better than raw-map saddle (6.9/7.5 mm). Cross-host: ML350 and workstation differ at 1e-14 in raw answers, 2e-8 in S | | 2.53 | D41: spread-aware share of the X-point move (share = 1 − weight of the member-spread bin, five bins per end; arms sl = lower end only, slu = both ends; noop arm for qualification) | protocol e97434ec frozen before any finisher run; bin edges and weights fitted at head level on 60 of the 120 screening shots (raw-map saddle against head; on the other 60 the rule lowered X position error 9.3 % lower / 3.6 % upper); same held-out 69 + 8 as D39; ML350, 4 arms × 120 screening shots; bootstrap 10000 / 4101, 99 %; report sha 83190e36 | noop equals base in every part and fingerprint on all 120, and base equals the D39 round-1 base. sl +3.1 µS [−26.8, +28.6] (D .009465 against .009482), slu +0.5 [−32.1, +27.9] | NO ARM PASSES (rule dS ≥ 1e-5 and lower bound > 0); closed; the 238 not opened. A 6 % lower head-level X error on paper is worth nothing measurable through the finisher: the map’s saddle at the stage of the move is not the raw map’s saddle the weights were fitted on, and moving part of the way leaves the X-point between two estimates. Side check, head level only: a per-shot offset correction from the mean head-minus-map difference lowers the per-shot offset 12–14 % in R and nothing in Z — not pursued. With 2.52: the finisher side is exhausted; what is left is a better X-point predictor (D40) or a better map | | 2.54 | D40 (second agent): direct X-position specialists — 4-output networks on the 582 features (static) or with a ±10 ms convolutional reader (mean-pooled, ordered), 8 seeds each, blended at share 0.5 into the tree-adjusted X targets | The second agent’s protocol and code, reviewed by the first agent (design, recipe, trainer, evaluator after the fact); fits on the 6326 shots disjoint from both cohorts, ~2.5 min per fit on local ROCm; head pre-gate proposed by the first agent: both ends ≥ 10 % lower equal-shot X distance on the 120 screening shots | all 24 fits pass the quality rule. Equal-shot X distance, base 6.98 mm lower / 10.69 mm upper: static blend −8.3 % / −3.3 %, mean −9.8 % / −1.5 %, ordered −9.4 % / −2.3 %. Raw 8-specialist mean 6.50 mm lower (one specialist ≈ 7.7; 8 base members 7.35; 69 base members 6.98) | REJECTED by the head pre-gate; rejection kept. The gate was mine and was too strict (see 2.55, 2.56): it asked for about 72 µS where admission asks 30. The temporal reader adds nothing over the static specialist, as row 2.47 suggested | | 2.55 | D42-official (second agent): the three D40 blends through the finisher and the organisers’ score — diagnostic, no admission | 120 screening shots, same held-out 69 + 8, bootstrap 10000 / 3801, 99 %; primary family (static) locked by the second agent before the aggregate existed | static +56.7 µS [28.9, 89.5] (D .009482 → .009204), mean +48.5 [17.7, 81.3], ordered +44.2 [16.1, 75.8] | first positive result since D36. Not an admission: the 120 are selection data. Leads to D43 (second agent): fixed static 8 at share .5, once on the 238, then once on the 357 | | 2.56 | D42-dose: how much score a given X-target accuracy buys — X targets moved a share α of the way from the deployed head to the true-map saddle (diagnostic with true maps) | protocol 77b97c16 frozen before the run; 7 arms × 120 screening shots on ML350; bootstrap 10000 / 4201, 99 %; base equals the D39 base on all 120; report sha bac659c4 | α .10 +70.5 µS [53.2, 94.2]; .25 +173.8 [133.2, 234.7]; .50 +362.7 [277.8, 483.7]; 1.00 +626.3 [490.3, 818.2] (the second agent’s positions-only +626.4); lower end only at .50 +223.6; upper end only at .50 +137.8 | near linear, slightly concave: about 7 µS per percent of uniform X-error reduction, 4.5 from the lower end and 2.8 from the upper; the ends add. Predicts 46 µS for the static blend of 2.55 (measured 56.7). The right head-level screen is the predicted score, not a fixed percentage on both ends. A uniform shrink is an idealisation: a guide for screening, never an admission | | 2.57 | D46 probe: is the plasma part of the flux map (true map minus the coils’ flux from the shipped coil geometry) easier to represent than the whole map? Asked after the entrant’s question where we go wrong: the data ship coil geometry and the DIII-D networks never use it | truth only, training shots only (80 for the bases, 20 others for the test, every 3rd/4th frame: 5969 / 1243 frames); 66 filaments of the adapter’s coil set (rectangles lumped, width and skew omitted, solenoid as 48 filaments), one global scale fitted on the grid corners after removing an Ip-linear part (c = −0.965, corner R² .69); principal bases of the whole map and of the plasma part fitted on the same frames; boundary distance and X-point distance of the K-term reconstruction, coil flux added back; predicted-LCFS failures dropped from the averages; d46_vacuum_decomposition/vac_probe.py 4fe148ea, report reports/d46_vacuum_probe.json | K = 8: D .0380 whole / .0327 plasma part, X 41 / 33 mm; K = 16: .0174 / .0170, 19.4 / 17.6 mm; K = 32: .0074 / .0102, 5.8 / 9.4 mm; K = 45: .0052 / .0091, 3.8 / 8.2 mm; K = 64: .0040 / .0062, 2.8 / 4.5 mm | NOT a representation gain as probed; the lower-rank hypothesis is weakened, not every use of coil geometry excluded. The coils’ flux spans at most 19 directions (one per circuit), which the whole-map basis takes in early; at K ≥ 32 the plasma part is the worse target here, which also reflects the crude coil model and single scale (a mis-scaled coil leaves its sharp pattern in the residual). Not pursued before the measured path (specialists). Same evening, also negative: the out-of-fold heads have no bias by distance to the record end (|bias|/rms ≤ .09 in every bin, 13 heads, 1.32 M frames), so end-of-record features cannot give a mean correction; on the 358 development shots 51 % of the βN squared error is one truth frame (−14.5 at the last frame of a record) | | 2.58 | D43 (second agent; reviewed and taken over by the first): the fixed static X-position specialists — 8 members, share 0.5 — confirmed once on each untouched cohort | The second agent’s frozen protocol 20be0c8d (148 sources), family locked before the D42-official aggregate existed; fit-disjoint replicas (specialists and the 69 + 8 on the 6326 shots outside both cohorts); 238 development shots never scored before, then four tree heads refitted without either cohort (≈4.8 h) and the 357 confirmation shots once; gate both times: dS ≥ 3e-5, 99 % paired whole-shot lower bound > 0 (10000, seed 3802), no more LCFS failures, non-finite pixels or failed Consistency slots; q95/βN unchanged by construction | 238: +45.5 µS [22.2, 75.5] (S .995998 → .996043, D .007967 → .007789, C .98683 → .98697; D lower in 178, higher in 58 shots). 357: +36.4 µS [12.0, 62.4] (S .995467 → .995503, D .009519 → .009336, C .984193 → .984284; D lower in 263, higher in 92 shots). Both recomputed by the first agent (238 with own code, 357 with the audit block of the hand-over notes): identical | CONFIRMED on the reserved cohort — the first confirmed gain since the sub-frame features. The 357 are now spent. Deployment = all-data refits of the same 8 (7041 shots), blended at .5 after the production tree blend, scalars of #975851 unchanged; entrant authorised the submission on 2026-10-12. Expected public gain of the order of +4e-5, not guaranteed by the replica | | 2.59 | D45: how much score the accuracy of each other finisher target buys — each head target moved 25 % of the way from the deployed head to the truth-derived scalar (diagnostic with true maps) | protocol 656ccdb2 frozen before the run; 9 arms × 120 screening shots on ML350; bootstrap 10000 / 4501, 99 % | axis (R and Z) +274.5 µS [164.6, 427.9] (R alone +170.8; R_axis R² .9863 → .9924); li +265.0 [128.8, 486.5] (.9743 → .9835); kappa +122.7 [80.4, 175.4] (.9785 → .9825); volume +52.0 [22.9, 95.1]; triangularities +28.6 [11.9, 52.6]; all seven +742.7 [531.3, 1038.0] (sum of the parts 742.8); all seven with X +903.8 [693.4, 1204.6] | the groups add; per percent of target error: axis 11.0 µS, li 10.6, X 7.0, kappa 4.9, volume 2.1, triangularities 1.1. The axis and li heads are larger levers than the X-points. Leads to D47 (dedicated geometry specialists, the D43 construction) | | 2.60 | D47: dedicated specialists for the seven geometry targets (r_axis, z_axis, kappa, tri_top, tri_bot, volume, li_scored; the D43 construction: head-only networks on the 582 features, 16 seeds, blend .5) | protocol 6f58a6b1 frozen before any fit; own trainer (two launches stopped by the first agent for host memory before any fit, a third for captured constants; final sha 755aaca8), 16 fits on the 6326 eligible shots, ~2.1 min each on one local card, all pass the quality rule; stage 1 = pooled rms against the scorer’s truth-derived scalars on the 120 screening shots, frozen proceed rule: predicted score ≥ 30 µS by the D45 coefficients | raw 16-mean against the base heads (69 readouts + trees), rms ratio: R_axis 1.034, Z_axis 1.092, kappa 1.081, tri_top 1.027, tri_bot 1.089, volume 1.077, li 1.075 (one specialist: 1.13–1.27); error correlation with the base .91–.96; blend at .5 changes the rms by +0.1, −3.2, −1.7, −0.2, −2.6, −2.4, −1.9 % (negative = worse); predicted −52 µS; the best possible share per target would gain at most 0.5 % | FAILED at stage 1; no finisher run, the 238 untouched by it. Unlike the X targets (where 8 specialists beat the base heads by 7 %), the base geometry heads are already better than a dedicated network and err the same way. The levers measured in D45 are real but this construction does not reach them | | 2.61 | D43-public: H69 maps with the 8 all-data static X-position specialists blended at .5 into the X targets; scalars of #975851 unchanged; MAST v12 unchanged | production under the first agent after the second agent’s hand-over: 715 missing teacher targets derived, 8 fits on all 7041 shots (trainer v2: one Fortran-aware read; v1 failed before any update), all pass quality; portable/checkpoint qualification 2.2e-16; ML350 builder build_h69x_v2.py qualified with the production weights on 3 public shots (share 0 == D25/D36 maps exactly, blend == the second agent’s wrapper, scalars unchanged); label-free report on all 874 shots (median |specialist − base| 1.5 / 2.0 / 16.1 / 4.4 mm); build 12 676 s; assembled archive e1efabfc…, q95/βN byte-equal to D36 in all 874 shots, maps changed in 868; official validator pass for both archives; HF revision 65ff561a…; Codabench #981856, 2026-10-13 04:46Z, entrant’s authorisation of 2026-10-12 | public DIII-D S .996342 against .996300 (+4.2e-5): flux .999883 (=), qb .997890 (=), D_LCFS .008180 (.008411), Consistency .987704 (.987608). MAST unchanged .714450. On the leaderboard | DEPLOYED. The public gain equals the confirmed one (+3.6e-5 on the 357, +4.5e-5 on the 238) within its interval. Development score used with disclosure | | 2.62 | D48: X specialists trained longer or wider (8 seeds each: 60 epochs replicate, 180 epochs, 180 epochs at width 1024) | protocol 789d03b6 frozen before any fit; own trainer on the 6326 eligible shots; stage 1 on the 120 screening shots with a report that reproduces the second agent’s base and static-8 numbers exactly (6.983 / 10.688 mm; 8.28 % / 3.30 %); rule: candidate only if predicted score exceeds static 8 by ≥ 15 µS | 180 epochs: training loss .00132 against .0015, raw 6.31 / 11.31 mm (static 8: 6.50 / 10.94), blend −9.80 % / −1.75 %, predicted 48.6 µS against 46.1 (+2.5). 60-epoch replicate (the first agent’s trainer): blend −9.64 % / −3.57 %, predicted 52.9; width 1024 at 180 epochs (training loss .00098): −8.59 % / −2.90 %, predicted 46.4. Descriptive, for D44: 16 members (the second agent’s 8 + the first agent’s 8) predicted 51.7, 24 members 53.1 | NO CANDIDATE (best arm +6.8 µS over static 8, rule 15); closed. D44 (64 members) is not run: a third lower training loss and two or three times the members leave the held-out X error where it was — the specialists are limited by what the inputs say, not by training length, width or ensemble size | | 2.63 | D49: anatomy of the q95 / betaN head error (measurement only; nothing fitted or selected). Reason: public board of 2026-10-13 by component — our qb .997890 is the lowest of the first ten (5th .9983; 9th and 14th also .9983 with a worse boundary than ours); against the 5th place we lose about 6e-5 on qb, 6e-5 on D_LCFS, 4e-5 on Consistency | (a) 358 development shots (120 screening + 238 used once by D43), deployed heads from the D39 cache (.75 map + .25 joint), d49_qb_anatomy/qb_anatomy.py 0fa00948; (b) all 5936 training shots, S16 out-of-fold heads (nn_oof.npz) | (a) q95 R2 .998443 (map .998302, joint .998227, error corr .754; joint share .5 would give .998477), betaN .995475 (map .995276, joint .995672, corr .942); qb .996959. One isolated last frame (7040 ms after 6160 ms, Ip .31 MA, betaN label −14.5, predicted −2.8) holds 51 % of the betaN squared error; without that shot betaN .997742. Frames at Ip < 0.4 MA (1.1 %): 59 % of betaN and 26 % of q95 error. (b) over 5936 shots the last frame holds 10.7 % (betaN) and 9.2 % (q95); slope of truth on prediction 1.00 overall and .995 on last frames; 67 frames with betaN < −0.5 hold 8.5 % | No regime or calibration fix: the heads are calibrated and the termination share is a tenth, not a half — the 358-shot figure is one frame. The development cohort’s qb is therefore a noisy meter for these two heads. What the anatomy does not test is the input side: see D50 | | 2.64 | D51: share of the 8 joint scalar networks in the submitted q95 / betaN by nested least squares (deployed: fixed .25, D35) | protocol a50921fc frozen after D49’s share grid had been printed on all 358 shots (disclosed in it); nested_share.py b30b84dd; 5 groups of whole shots, weight from the other four; paired shot bootstrap 10000, seed 5101; 358 development shots (reused) | weights q95 .35–.56 (all 358: .46), betaN .76–.95 (.87); q95 dR2 +2.3e-6 (P .54), betaN dR2 +1.88e-4 (ci99 −2.7e-5…+4.6e-4, P .988); dS +1.43e-5, ci99 [−5.9e-6, +3.9e-5], P .963; parts +1.13e-5 (120) and +1.58e-5 (238). D49 grid for comparison (not a rule): fixed betaN share .6 gave +1.67e-4 with ci99 above zero | FAILED as frozen (size and both parts pass, the 99 % lower bound does not); .25 stays, and the fixed .6 seen in the grid is not adopted after the fact. Finding kept: the 8 joint networks alone answer betaN better than the 69 map networks (.99567 against .99528, error correlation .94), as in D34 on 5936 other shots — the scalar specialists are where the betaN term can be improved, not the blend weight | | 2.65 | D50-0 gate: explicit electron-pressure features from the Thomson pulses (pressure integrals along the vertical laser, means over ±10 ms, ±50 ms, 150 ms and 500 ms before the frame, ratios to field × current, current² and field²; 74 columns) in a cross-fitted residual corrector, paired against the same corrector without them | protocol d67ec5f9 frozen before any fit (20-shot smoke test and a label correlation check on those 20 shots disclosed: one ratio column alone correlates .92 with betaN); 5936 out-of-fold shots, 1 317 704 frames, S16 heads of D9; D10 corrector settings on CPU (xgboost 3.4.1), compact inputs (13 heads + 4 current/field columns); ML350 unit fec-d50-gate; result sha 59e2b3ac, features sha 0709a207 | proxy control +3.2e-6, treatment +4.3e-6; paired +1.1e-6, CI95 [−7.0e-6, +1.1e-5], P .55, folds −0.6/+9.0/−5.4/+3.2/−0.5 e-6. betaN dR2 +2.8e-5 (P .62), li +4.3e-5 (P .76), r_axis +2.7e-6; volume +8.4e-5 (P 1.0); kappa, triangularities and X heads slightly worse. Most correctors stop within 0–10 rounds | FAILED (rule +1.5e-5, P ≥ .95, four folds), closed. The network heads already extract what the Thomson pressure carries; a pressure product, a chord integral or a mean over the pulses inside a frame adds nothing a corrector can use. Limit: tested on the 16-network table heads, not the deployed ones | | 2.66 | D49b: q95 / betaN by member and family (measurement only) | 358 development shots (reused); the 69 fit-disjoint map networks (21 hx, 48 hc) and the 8 fit-disjoint joint scalar networks, one forward pass each on the cached features; d49_qb_anatomy/member_scaling.py | one member: q95 hc .99691, hx .99713, joint .99778; betaN .99395, .99418, .99526. Family mean: q95 hc .998219, hx .998331, joint .998227; betaN .995172, .995335, .995672. Error correlation between members: q95 hc .57, hx .58, joint .77; betaN .79, .80, .90. Limit of each family at infinitely many members: q95 .99825, .99839, .99829; betaN .99520, .99539, .99573 — within 6e-5 of what the present members give. Joint scaling 1…8: q95 .99778 → .998227, betaN .995263 → .995672 | More seeds of any existing family cannot move q95 / betaN: each family already sits at its own common-error floor, and the three floors are nearly equal. Only the difference between families helps (map 69 with joint 8: error correlation .75 for q95, .94 for betaN). A gain needs a family that errs differently, not more members | | 2.67 | D52: one third per network family (hx, hc, joint) in the submitted q95 / betaN, no number fitted, against the deployed .75 × member mean of 69 + .25 × joint | protocol 919ff520 (frozen before any family blend or family error correlation was computed; exposure of the cohort and of D49/D51 stated in it) + amendment 1 (the first run stopped on its own 1e-9 check, which float32 cached features cannot meet; nothing had been written or seen; check set to 1e-3, deviation found 9e-7); 358 development shots (reused); paired shot bootstrap 10000, seed 5201 | q95 dR2 +3.3e-5 (ci99 −2.3e-5…+1.1e-4, P .93), betaN +7.1e-5 (ci99 −1.7e-6…+1.6e-4, P .994); dS +7.8e-6, ci99 [−1.9e-7, +1.8e-5], P .995; parts +9.9e-6 (120), +6.8e-6 (238). Error correlations: q95 hx–hc .93, hx–joint .78, hc–joint .73; betaN .97, .95, .93 | FAILED (below +1e-5 and the 99 % bound touches zero); deployed weights stay and, as frozen, no other weighting is tried on this cohort. With D51 this closes the blend of the existing scalar answers: what is there is worth under 1e-5 | | 2.68 | D53-0 gate: do the most similar other shots share a shot’s head offset? Prompted by Stokolesov et al. (arXiv 2505.10709: about 30 % of DIII-D shots are repeats) and by the per-shot offset holding 21–39 % of each head’s error (D13) | protocol 4026816e frozen before any neighbour statistic + amendment 1 (the chain named a table with other rows; stopped on its row check, nothing computed); shot descriptor = mean and sd over frames of the 367 table features, 64 principal directions; neighbours from the other four folds; predicted offset = mean residual of the K nearest; d9_gate_eval.py unchanged; 5936 shots; ML350 unit fec-d53-sibling | correlation of predicted and true shot offset at K = 5: q95 −.12, betaN −.08, li −.04, r_axis −.20, kappa −.08, tri −.13/−.15, volume −.18, X heads −.03…+.03 (K = 1…20 alike). Nested weight 0 for every scalar head; dS_proxy 0 at K = 1, 3, 5, 10; −4e-8 at K = 20 | FAILED, closed. Shot offsets are not shared between similar shots. The correlation is slightly negative: a neighbour’s out-of-fold answer comes from networks that were fitted on the shot’s own labels, so the networks already interpolate between sibling shots, and what is left of a shot’s offset is its own. This is direct evidence that the per-shot part of the error is not recoverable from other shots’ labels | | 2.69 | Full-77 q95/betaN readout refit (the second agent): fixed standardised ridge .001 of the two scalar output rows on each network’s last hidden activations, encoders and every other output unchanged; candidate .75 × 69 + .25 × joint 8 as deployed | The second agent’s protocol 55afe8c… frozen before any fit; experiment QB_readout_full77; fits on 5954 training (+372 calibration for the members that used it); 358 development and 357 confirmation shots (both reused; neither seen by encoders or readouts); paired shot bootstrap 10000; reviewed by the first agent before the result (no objection) | 358: dS +7.3e-8, ci99 [−2.1e-7, +3.2e-7]; 357: +1.1e-7, ci99 [−1.4e-7, +3.7e-7] | FAILED on both cohorts (rule +1e-5, 99 % bound above zero). The scalar rows the networks learned are already the best linear readout of their own activations. Limit stated by the second agent: the readout is fitted on the rows its encoder was fitted on | | 2.70 | D56-0 gate: electron-pressure profile on the table’s own bins (42 columns proposed by the second agent after measuring that the product of binned T_e and n_e means differs from the binned channel product by 0.235 %: 18 bin means of the product, 18 joint flags, 6 summaries) in D50’s paired cross-fitted corrector | protocol 255c1e49 frozen before the extraction (20-shot smoke test disclosed); arms, data, corrector, measure and rule exactly D50; 5936 out-of-fold shots; ML350 unit fec-d56-gate, 12 threads | proxy control +3.2e-6, treatment +4.2e-6; paired +9.1e-7, CI95 [−7.0e-6, +1.1e-5], P .54, folds +1.4/+6.5/−6.1/−2.4/+5.1 e-6; betaN +2.8e-5 (P .62), volume +8.3e-5 (P 1.0), kappa and X heads slightly worse | FAILED (rule +1.5e-5, P ≥ .95, four folds), closed. Neither chord integrals (D50) nor the bin profile of the pressure product gives the corrector anything; the pressure-augmented network family is not built. Limit as in D50: a corrector on the 16-network heads, not a network | | 2.71 | D55: independent check of the split-agnostic inference entrypoint for the deployed model (the second agent’s package_v2: infer.py 59af1eeb, deployment.json 45857031; features, sub-frame blocks, tree heads, joint scalars and X specialists computed from the input files of whatever directory is given; no public cache, no borrowed archive) | criteria frozen before the run (protocol 3f998c95): A keys/shapes/finite and q95, betaN bit-identical; B map difference ≤ 1e-6 on every shot; run unmodified by the first agent on all 874 public shots, ML350 unit fec-d55-d3d-generic-v2, 8 workers; compare_archives.py 8d1dd12a against the archive of #981856. First attempt with package v1 stopped by the first agent as superseded (ordinary CPU tree predictor; first-shot map drift 1.6e-3, cured by D32’s GPU-order accumulation) | 874 shots, 193 359 frames, 2622 arrays: every map and every scalar bit-identical (maximum difference 0.0); the rebuilt archive has the same sha256 as the submitted one (see log). Wall time 6 h 14 min on 8 single-core workers (about 50 CPU-hours) | QUALIFIED. The deployed model can answer any DIII-D set from its inputs alone and reproduces the submitted predictions exactly. For a Final fold use 20–22 workers (about 2.5 h). MAST entrypoint on all 1206 shots follows (row 5.41) | | 2.72 | D57 stage 0: a head-only network that reads the whole shot (entrant 2026-10-13: design it, then run it) — per-frame trunk 4 × 512, two 4-head attention blocks over the frames of one shot with a time code, 9 heads (seven geometry targets, q95, betaN), against the matched control with identical parameters and arithmetic whose frames attend only to themselves | protocol 14ebab46 frozen before any full fit (mechanics smoke on seed 9001 disclosed); experiment D57_temporal_specialists_2026-10-13T200039Z; 8 seeds per arm (800–807), 6326 shots outside both cohorts, crops of 256 frames, 60 epochs, about 5.7 min per fit on a local card; all 16 passed the quality rule; head_report.py on the 358 development shots (reused), 8-member means blended .5 with the deployed heads, paired shot bootstrap 10000, seed 5701 | temporal − control −6.7 µS, CI95 [−63, +62], P .42 (120: −59; 238: +29). Raw error of temporal over control: r_axis .98, z_axis 1.08, kappa .98, tri 1.05/1.06, volume 1.07, li 1.00, q95 1.05, betaN .98. Both arms are far weaker than the deployed heads (raw rms 1.12–1.93 × base; blends predicted −493 and −486 µS) | FAILED (rule: +30 µS, P ≥ .95, temporal blend better than deployed), closed; as frozen, no second architecture on this cohort. Reading a whole shot gives these heads nothing over reading a frame. Limit: both arms trained on crops of 8 shots per step and ended well below the D47 per-frame specialists (those were 1.04–1.21 × base), so this shows no benefit of context in this form, not that none can exist | | 2.73 | D58: anatomy of what is left of the flux map after the networks’ answer (entrant 2026-10-14: filter everything out, keep the remainder, look at its correlation between frames) — measurement only | 358 development shots (reused), true map and fit-disjoint 69-network answer as coordinates in the 128-direction basis; d58_map_residual/residual_anatomy.py, residual_predictability.py, residual_directions.py; reports d58.json on the ML350 | Left-over energy of the deployed map: 99.79 % error in the 45 kept coordinates, 0.15 % dropped 46–64, 0.05 % never answered 65–128, 0.01 % outside the basis. Two directions hold half of it, three 83 %, seven 95 %. Per-shot offset 38 % of it; lag-1 autocorrelation after the offset .72 (kept block). Leading direction (47 %): same sign over the whole map, peaked in the plasma centre (corners .1–.3 of centre), mostly basis coordinate 1 — the amount of flux enclosed in the plasma. Cross-validated over whole shots, the three leading directions are not explained by the frame’s inputs: ridge −.05…−.16, boosted trees on features + answer −.22…+.06; one input signal explains at most 20 % of a direction’s within-shot variation. Coordinates 46–64 are answered with correlation .62 falling to .24; a nested shrink weight on them changes the left-over energy by 0.04 % | The remainder is low-dimensional, slow and tied to the shot, as the entrant supposed, and it is the coarse part of the map, not its fine detail. It is not a function of the frame’s inputs. Its leading pattern is the core flux, the quantity behind the internal inductance. Led to D59 | | 2.74 | D59: slow-memory features of the whole discharge against the persistent left-over (21 columns on a 5 ms grid of the discharge record: exponentially weighted plasma current over 0.3–10 s, its change over 0.3–3 s, time since 10/50/90 % of peak, ramp duration, time integral, solenoid current change, the same memory for the core Thomson temperature integral and peak pressure, a resistive clock) — measurement, paired | 358 development shots (reused), five groups of whole shots, boosted trees; control = 582 features + 64 answered coordinates, treatment = control + the 21 columns; targets: three leading left-over directions and the residuals of r_axis, z_axis, kappa, volume, li against the scorer’s scalars; shot bootstrap 4000. First run stopped by the first agent (one thread by mistake), rerun with 20 | share of left-over removed, treatment − control: direction 1 +.026 (CI95 −.017…+.104, P .73), direction 2 −.003, direction 3 −.003, r_axis +.001, z_axis −.015, kappa −.011 (P .02 for worse), volume +.006, li +.015 (P .84). Neither arm removes anything: every share is zero or negative (direction 1 −.24/−.21, li −.10/−.09) | No signal. Seconds of discharge history, in this form, do not explain the slow left-over of the map or of the heads; a corrector on these shots adds error with or without them. Not a frozen gate and not a network; 358 shots is a small sample for a corrector | | 2.75 | D60: clean-machine test of the hand-in package (the second agent’s package_v3: infer.py caf77861, deployment.json c8418fc8) | the local package tree copied to a fresh directory on the ML350; new virtual environment from the package’s own requirements-inference-cpu.txt (pip, Python 3.12.3); both README commands on new directories holding the first three public shots of each machine (links), 3 workers; ML350 unit fec-d60-clean; arrays compared with the submitted archives | DIII-D 9 of 9 arrays and MAST 9 of 9 arrays bit-identical (799 and 173 frames). Installed set: numpy 2.5.3, scipy 1.18.1, pyarrow 25.0.1, scikit-image 0.26.0, scikit-learn 1.9.1, jax/jaxlib 0.8.2, xgboost 3.4.1 and their dependencies | PASS for inference from a fresh install. Not covered: the training chain, CUDA, a machine without our data mount | | 2.76 | D61-public: least-squares joint shares for the submitted scalars — q95 = .54 × mean of the 69 map networks + .46 × mean of the 8 joint networks; betaN = .13 × map + .87 × joint; maps of #981856 and MAST v12 unchanged byte for byte | protocol e0b34ca9 frozen before the build (weights = D51’s all-358 least-squares weights rounded, the deployment form D51 named before its result; D51 itself had FAILED its 99 % bound, stated in the protocol; entrant’s word 2026-10-14); build_candidate.py 01d9e1ad on the ML350: deployed scalars reproduced bit for bit from their two parts on all 1748 arrays, then the candidate scalars written into a copy whose map records are unchanged; archive 180e1ef3…; official validator exit 0 on both; HF revision 92d4646f (first upload refused: private storage limit; on the entrant’s word 14 stored objects of 21–22 Sep, 20.3 GB, deleted without rewriting history, receipt in D61…/hf_storage); Codabench #986068, 2026-10-14 ~01:00Z; one Development submission spent (53/100) | public DIII-D S .996359 vs .996342 (+1.7e-5): qb .998005 (.997890, +1.15e-4), flux, D_LCFS and Consistency identical; MAST .714450 identical; G .717061. Local nested estimate had been +1.43e-5 | KEPT by the frozen rule (≥ .996347 and qb higher). Displayed entry is now #986068. A gain chosen on a reused cohort and checked once on the public test, disclosed as such. The hand-in package must carry the two weights and its scalar reproduction check must be repeated against 180e1ef3 | | 2.77 | D62: independent run of the from-scratch DIII-D training chain in its limited mode (the second agent’s package_v4_training, train.py 5a8eae69, run unmodified) | package copied to a fresh directory on the ML350; new environment from its requirements-training-cpu.txt; train.py --raw-dir …/diii_d_train --out … --limit 4 on CPU (8 raw shots, 48 frames each, one epoch, trees 5 rounds; member counts and network sizes as in the full recipe); unit fec-d62-train-check; then inference from the newly written manifest on a public shot the training did not read | chain complete in 330 s, no deployed asset loaded (run.json); 159 network and readout files, four tree models with their leaf tables, flux basis, new deployment.json and a runnable copy of infer.py; inference on one unseen shot: 357 frames, map 65 × 65 and both scalars float32 and finite | PASS for what it tests: the chain runs end to end from raw files in a fresh environment and its output is a working inference package. Not tested: the full recipe (60 epochs, all 7041 shots), CUDA, accuracy of a full retrain against the deployed weights | | 2.78 | D64: the committed hand-in repository tree (commit 760a7ba, organisers’ envelope file removed) answers the public DIII-D shots exactly as submitted | git archive of 760a7ba exported to ML350 run d64_repo_tree_check_20261014, models linked from package_v5_D61 and verified against WEIGHTS.sha256 (fetch_weights.py –verify-only, exit 0); no file named mast_envelope* in the tree; D60 clean environment (installed from requirements-inference-cpu.txt); infer.py 1f4d05d4, deployment.json ca4d98d2; --limit 3, 2 workers; frozen run_d64.sh a4f82957, compare_subset.py 5c408e13 (every array of the new archive against the same key of the #986068 archive 180e1ef3) | 3 shots, 799 frames, 9 of 9 arrays bit-identical (maximum map difference 0.0), no non-finite value, no missing key; 723 s with 2 workers beside the 22-worker D63 run | IDENTICAL. Removing the envelope file and committing the tree changed nothing in the DIII-D answer. The 874-shot run of the same source (D63) is the whole-fold check | | 2.79 | D65 (from an external review; research reopened by the entrant 2026-10-14): score-weighted tail table and input clipping of the deployed heads — measurement only | protocol_d65.json 2cdf7a34, amendment 1 97a58201 before any result (16 deployed networks read 614 or 765 inputs, not the cached 582; clipping measured for the 69 that read 582; normalisers agree to 0.011 in mean, 1.9 % in scale), d65_audit.py c205b057; D39 cache of held-out answers, 358 development shots (EXPOSED), deployed heads incl. trees and D61 shares; ML350 unit fec-d65-tail-audit, 2 workers | 5.2 % of frames have an input beyond ±8 for at least half the networks. Their share of the squared error: q95 36 %, βN 67 %, li 41 %, z_axis 39 %, r_axis 17 %, kappa 14 % (ratio to frame share 6.9, 12.8, 7.8, 7.5, 3.2, 2.8). Worst 0.1 % frames clipped: q95 59 %, βN 69 %, li 71 %, z_axis 82 %. The clipped columns are almost all Thomson firing flags of the outer vertical-laser bins and of the radial laser (two values, 0 or 1, usually 1) and their window means: a value 0, a channel that did not fire, is 10 to 13 standard deviations out and is cut to 8. One continuous column (vertical-laser te of an upper bin, frame value) reaches 32 σ in 0.04 % of frames | Rule fired for q95, βN, li, z_axis, r_axis (not kappa). Reading (mine, not tested): clipping a two-valued flag loses little information; the clipped frames are those in which Thomson channels that usually fire report nothing — either a dropout or a plasma that no longer reaches those channels (termination, small or shifted plasma) — and such frames carry a third to two thirds of the error of four heads. Clipping marks the hard frames; whether it causes any of their error is untested. As the rule says, the next step is a matched test of no clipping against the incumbent clipping (same seeds, folds and capacity); the window means, which lose their gradation below about 0.35 when clipped, are where an effect could come from | | 2.80 | D63: the final hand-in package (package_v5_D61, unmodified) on all 874 public DIII-D shots with 22 workers | ML350 unit fec-d63-v5-full, infer.py 1f4d05d4, deployment.json 5f310864, comparator compare_archives.py 8d1dd12a against the #986068 archive 180e1ef3; started 01:26:17Z | 874 shots, 193 359 frames: 874/874 maps and 1748/1748 scalar arrays bit-identical (maximum difference 0.0), no non-finite value; 11 697 s wall (3 h 15 min) with 22 workers, partly beside D64 (2 workers) and D65 (2 workers) | QUALIFIED. The package as published answers the whole public DIII-D fold exactly as submitted. Final-phase planning figure: about 3 1/4 h for a fold of this size on 22 workers | | 2.81 | D67 (from an external review; research reopened by the entrant 2026-10-14): matched fits with the input clip at 8 (incumbent) and at 50 — four 78-label hc members (seeds 200-203), recipe settings, 60 epochs, twice each | protocol_d67.json a3aa615b frozen before the run, amendment 0 before results (report reads li_scored), d67_clip_arms.py 1f30daea, train_clip.py 979978b3 (package_v4_training/train.py with 2 lines changed; network and fit_network INPUT_CLIP set per arm, so fitting, calibration selection and inference share the clip), d67_report.py af15c83c; the second agent’s prepared tables matched_data_full_v1 (6311 training + 372 calibration shots; the 358 development shots held out of every fit; the 357 are IN the training part); workstation GTX 1060, unit fec-d67-clip-arms, about 7-9 min per fit; arm A member 1 vs the second agent’s identical CUDA qualification fit: same selected epoch 60, final loss .016486 vs .016461 (not bit-identical; GPU summation order) | Squared-error ratio clip 50 / clip 8 (mean of four, 358 exposed shots): z_axis .915, li_scored .967, tri_top .969, kappa .980, q95 1.007, r_axis 1.019, tri_bot 1.024, volume 1.041, betaN 1.063; flux coordinates 1.049. Predicted change +3.2e-5 (z_axis +4.8e-5, li +1.8e-5, betaN -2.2e-5, r_axis -1.1e-5), whole-shot 95 % interval -7.1e-5 to +13.3e-5, P(>0) .66 | NOT A CANDIDATE (rule: >= +1e-5 with P >= .95 AND flux ratio <= 1.02; both conditions failed). Clip 50 closed at this resolution. The unclipped availability means seem to help the axis height and li and cost betaN and the flux; the seed noise of a four-network mean is not in the interval. Queued, not run: availability separated from value in the context means (entrant-forwarded tip, note_entrant_tip_2026-10-14.md) | | 2.82 | D66 (second agent; from an external review): zero-initialised residual branch on the preserved incumbent, reading the original Thomson channel coordinates, masks and pulse times (raw) against an identical branch reading coarse bins (control) — 7597 parameters, 13 head targets, 32 fixed epochs, five whole-shot folds over the 358 | The second agent’s design 33ad1ef6 and activation v3 (sources reviewed and approved by the first agent before fitting and before scoring); excluded incumbent = 69 map + 8 joint + 8 static X networks + 4 D43 trees, shares .46/.87 and .5; every shot scored through the native finisher and the organisers’ score_shot with its own fold’s branch (ML350 unit of the second agent, 06:52-10:46Z, 22 workers); the first agent recomputed the gate independently (gate.py 77d40e1b, scores() verbatim from D45, 20 000 whole-shot draws, seed 12345) | S base .9960997, raw .9959019, control .9959424 (358 EXPOSED shots). raw - base -198 µS (99 % interval -300 to -118), control - base -157 µS (-241 to -93), raw - control -40 µS (-106 to +23, P(>0) .05). Both branches worsen the boundary (D .00828 -> .00859 / .00856), Consistency (.98713 -> .98638 / .98655), q95/βN and the flux; no failed slot | FAILED; no finalist; the 357 were not opened. A head-level correction learned from 280-odd shots generalises worse than the incumbent heads, with or without the raw channels; the raw channels add nothing measurable over coarse bins in this form (point estimate negative). Closes this architecture and protocol, not every use of the raw Thomson channels | | 2.83 | D68 (second agent; reviewed by the first): Thomson context means over available values only, availability columns kept and not lower-clipped, against the incumbent features — 7041-shot table rebuild of both arms, four 78-label hc members (seeds 200-203) per arm, refit both | design 3e50144d and fit_arms.py 8be583be reviewed and approved before fitting; report_arms.py 147157a6; the first agent recomputed the gate with its own frozen D67 report (d67_report.py af15c83c) on the same held predictions: identical to 1e-12 | Squared-error ratio availability / control on the 358 exposed shots: q95 .909, li_scored .970, tri_bot 1.018, kappa 1.019, tri_top 1.025, betaN 1.049, r_axis 1.064, volume 1.085, z_axis 1.173; flux coordinates 1.021. Predicted -1.29e-4 (95 % -2.05e-4 to -1.8e-5), P(>0) .008 | FAILED all three gates; closed. Separating value from availability helps q95 and li and costs the axis, volume and betaN more. With D67 and D66, three representations of the Thomson availability were tried and none beats the incumbent | | 2.84 | D69 (all-data refit) not run | premise check by the second agent, confirmed by the first from package_v4 training_recipe: 64 of the 69 deployed map networks already train on all 7041 labelled shots (1 559 340 frames), 5 hx14 members on all but the calibration part; the cohort exclusions applied only to the evaluation copies (D38) | — | Not run (expected effect far below the public-fold resolution). The first agent’s earlier statement to the entrant that the deployed maps never saw the 715 cohort shots was wrong and was corrected the same hour | | 2.85 | D71 (from the second external review; entrant’s word 2026-10-19): what the finishing step does to the physics of the map — the nine native stages of §4.26 regenerated unchanged on the 358 development shots (78 875 frames; final stage bit-identical to D70’s record), each measured against EFIT with identical operators: Ampère current on its own and on the reference boundary, current outside the plasma, non-Grad–Shafranov share of Δ*ψ (cubic p′, FF′ fitted per map; quadratic, quintic and fourth-order variants), poloidal-field error, critical points | protocol v2 14f3688e (v1 163f1e71 stopped before any shot completed); analytic check: non-GS share 1.5e-25, 0.21 with a bump; data check: reference area/loop 1.007, implied/measured Ip 0.991 (medians); 20 000 whole-shot draws, seed 71019 | finisher (smoothed → submitted), shot means: S +1981 µS; current error 0.67 → 0.80 %; outside current 0.70 → 1.20 %; non-GS share 0.35 → 1.67 % (contour stage +1.40); field error 2.45 → 2.97 %; X-point cells closer to the reference (−0.047/frame); no boundary failures | Measurement: the finisher trades equilibrium form for score. Study §4.27, figure 6 |
3. More data
| # | Run | Detail | Result | |—|—|—|—| | 3.1 | Holdout opened (entrant) | table built with bitwise control on 5 training shots (coords ≤ 1 ULP) | public Kaggle dataset fec-tables-holdout | | 3.2 | v27 = all data minus holdout | 65 members on Kaggle; c-family loss blow-ups 6/16 → retries → amendment 2 (gradient_limit 0.1, original seed): 65/65 | holdout S .995732 vs v25 .995752 (dS −1.9e-5, CI [−6.3e-5, +2.6e-5]) — no gain | | 3.3 | v28 = all data incl. holdout | same; 65/65 after amendment 2 | not evaluable on holdout | | 3.4 | Cause of blow-ups | added data has no new extremes | training instability without clipping, frequent at full data on T4 |
4. Ensembles (variance reduction)
| # | Candidate | Honest estimate | Public | |—|—|—|—| | 4.1 | v25+v27 (130) | holdout .995770, +1.9e-5 (CI [−3e-6, +4.2e-5], P .95); frozen admission rule (≥ +3e-5) not met | — | | 4.2 | v25+v28 (130) | — | #952730: S .995988 (+2.8e-5 vs #949223), gain all from Consistency (.98654) | | 4.3 | v25+v27+v28 (195) | — | #953621 (with MAST v7 by M2): S .995990 vs #952730 .995988 (+2e-6: psi +1e-6, qb +1.3e-5, D .008908 vs .008939, Cons −1.6e-5) — ensembles saturated |
5. MAST (clean room; rule §2.4 in force from 2026-09-23)
| # | Question | Method (label-free) | Result | Decision | |—|—|—|—|—| | 5.1 | Where is our boundary relative to the plasma edge? | our LCFS vs radial Thomson edge, 402 shots | outboard −5.9 cm (ne 10 %), plasma sits inboard | calibrate the marker | | 5.2 | Which Thomson level marks the LCFS? | DIII-D truth (allowed), 6884 frames | Te 5 % of peak: −1.7 cm, IQR 1.6 cm (best) | marker for MAST | | 5.3 | Te-marker audit on MAST | 402 shots | outboard −7.4 cm, inboard −4.8 cm (whole plasma shifted inboard ~5–7 cm) | fix | | 5.4 | Equal-Te pairs in our maps | normalised flux of pairs | gap grows from .02 (core) to .13 (Te 5 %) | edge surfaces shifted inboard | | 5.5 | v8: correction vertical field in the solve | frozen pilot, 40 shots | solved share .85 → .38; core pairs worse | rejected | | 5.6 | v8b: move the boundary to the Thomson edge (post-process warp) | frozen pilot then full build | A1 97.7 % within 1 cm, A2 99.95 %, A3 median |s−1| .065 | accepted; submitted with entrant’s go (#953200) | | 5.7 | Public MAST score of v8b (observed only, never selects) | Codabench #953200 | S .7122 vs v7 .7296: flux .9794 (.9805), D .1873 (.1884), Consistency .1886 (.2732) | recorded; the warp barely moved D and cost shape scalars | | 5.8 | M1a: are the MAST toroidal-field inputs sane? | census of all 1206 test shots, inputs only (canonical SI converters) | TF current median 84.8 kA (within-shot spread <= 0.2 %); vacuum B0 at 0.85 m median 0.479 T (p10 .44, p90 .48; one shot .30 T); same chain gives ~2.05 T at 1.67 m on DIII-D | no gross TF/unit error | | 5.9 | M1b: can the measured MAST geometry error explain the q95/betaN loss? | DIII-D only (labels allowed), 60 validation shots, 3568 frames; true maps vs maps shifted 5 / 10 cm inboard and 5 cm + 2.6 cm narrower; frozen rule (protocol a377bbd8, amendment 1 = harness axis-flux fix before results) | q95 R2 .977 (A0) / .967 / .926 / .983 — robust, bias-removed >= .977 in every arm; betaN R2 on finite frames .900 / .822 / .537 / .820 with median ratio 1.07 / 1.26 / 1.48 / 1.25 (correlation stays .95: geometry error turns into a betaN scale bias); rule metric (unsolved = 0) drop A1 −.005, A3 .097 | frozen verdict: geometry does not explain the MAST loss (R2 .36) → M1c (MAST constants / profile handling); betaN scale bias under shifted geometry noted | | 5.10 | M1c-1: betaN from the map’s own current (Grad–Shafranov split of J_phi into p’ and FF’ on the solve’s three terms) instead of Thomson p_e x 2.25? | DIII-D true maps, same 60 shots / 3281 frames, frozen rule (protocol b0b7d25d; 2-shot smoke seen and disclosed) | equilibrium R2 .431 (bias-removed .534, corr .733, median ratio .77) vs kinetic .900 (.887, .949, 1.07); fitted pressure share p10/50/90 .13/.46/.85; sum J dA = Ip within ~2 % (units verified) | rejected: the p’/FF’ split on a low-order basis is ill-conditioned even on true maps; MAST keeps the kinetic estimate | | 5.11 | M1c-2: does the Thomson-edge geometry of v8b change the MAST kinetic betaN? | 41 pilot shots, 2245 frames; organisers’ reading + map_scalars on v7 (parity) and v8b maps, production fill + 5-frame median; MAST inputs and our maps only | parity re-read/archived median .9997 (p10 .93, p90 1.00), corr .986; v8b/v7 median 1.000 (p10 .98, p90 1.07) | geometry correction does not move betaN; no betaN lever from v8b | | 5.12 | M1 closed | 5.8–5.11 | TF chain sane; q95 robust to the measured geometry error; the equilibrium betaN is worse than the kinetic one; v8b leaves betaN unchanged. What remains unknown is MAST’s total/electron pressure ratio (ion temperature, fast ions): the inputs carry no NBI power or diamagnetic signal, and MAST labels may not be used | no label-free q95/betaN lever found; q95/betaN stay as in v7; the limit goes into the study (§ limits) | | 5.13 | M3a: what drives the inboard shift of the v7 plasma? | 386 shots, 2365 audit frames with both Te 5 % markers inside the laser; shift vs Thomson-edge LCFS estimate against dIsol/dt, dIp/dt, Isol, Ip, time; ridge, 5-fold CV grouped by shot; frozen rule (protocol 5aa43dae) | shift median −4.9 cm (p10 −15.4, p90 −1.3); CV R2: ramp rates .063, Isol .050, joint .104; width error likewise unexplained (joint .071) | verdict static_or_profile: not vessel eddy currents, not the solenoid level; with 5.4 (core pairs met, edge pair missed by .13 flux) the current-profile basis is the suspect | | 5.14 | M3b: v9 = v7 solve + the constant p’ and FF’ coefficients (edge pressure gradient and edge current) | frozen pilot (protocol dd13029b), 41 shots, 2245 live frames, baseline v7 arm of the same harness | solved share .851 → .224; pair gaps worse at every level (.85: .030 → .080; .5: .025 → .100; Te 5 % (independent): .147 → .254); outboard Te5 marker error 3.9 → 7.2 cm, inboard 4.5 → 3.6 cm | rejected (A1–A4 all fail): currents that do not vanish at the boundary destabilise the Picard iteration, as a fourth term did before; v7 stays | | 5.15 | M2: final MAST map set, v7 or v8b, by physical consistency | frozen before computing (protocol 27f73b17; the observed v8b score was known and is not an input); 41 pilot shots, 1665 frames where the maps differ; J from the Grad–Shafranov operator of each map | current closure sum(J dA)/Ip: v7 median |err| .0017 (p10–p90 .999–1.004), v8b .064 (.53–1.07); current outside the LCFS: v7 1.4 %, v8b 9.2 % (p90 61 %) | v7 (v8b’s warp breaks Ampère’s law and puts current in the vacuum); applied to later submissions | | 5.16 | M3c-0: does an independent free-boundary solver (FreeGS, measured coils, vessel wall, p_axis = 2.25 x Thomson peak p_e) place the plasma differently from v7? | frozen feasibility test (protocol 1435ff40, amendment 1 = 3-step venv split before results), 12 frames of 4 shots | 6 of 12 frames converge (Picard ‘too many iterations’ on the rest; the second agent’s earlier converged runs used a fixed 3 kPa axis pressure, ours 5–15 kPa); on the 6 converged, the organisers’ reading of the FreeGS maps gives implausible crossings (inner +154 cm) — a reading/orientation problem of our test not investigated further (unverified) | rule fails on convergence (< 10): not shown; the FreeGS route needs vertical-position control and profile fitting before it can be judged — beyond the round-1 budget; v7 stays | | 5.17 | M3c-1a: do the MAST inputs alone support the solenoid row share 0.5 (set on demo-shot EFIT, 21 Sep, before rule 3) or 1.0? | frozen (protocol 3c0bd386), v7 entrypoint copy with solenoid currents x share/0.5, arms .25/.5/.75/1.0, 41 pilot shots (2245 live frames); arm .5 parity with rows_v7 exact; equal-Te pair gaps, paired shot bootstrap (seed 931) | frames solved in all arms 957: score (median mean gap) .0478/.0448/.0349/.0266, P(1.0<.5) .998; gaps fall monotonically with the share at every Te level (no interior optimum); solved share .91/.85/.71/.44 | inconclusive (1.0 fails the solved-share guard). The gap metric has no minimum inside the physical range and the solve fails more often as the share grows: the pair gaps do not identify the share (likely span/normalisation and selection confounds). The constant’s only basis stays the disclosed demo-shot fit; nothing changes in the submission | | 5.18 | M3c-1b step 1: can FreeGS driven by real MAST frame inputs give sane synthetic truth, and at which pressure? | frozen (protocol 2c302bf2), 19 frames (shots 0..1200 step 60, mid live frame), FilamentCoil per circuit (step 0: = house vacuum to 8e-16), vessel wall, ConstrainPaxisIp, arms p_axis .25/.5/1.0 x Thomson-based and fixed 3 kPa; result sha 3ff7dd1a | converged 10/10/9/10 of 19; sane 2/1/1/2. The failure does not depend on pressure: the same 6 shots put a tiny plasma at the outer field null (axis R 1.84–1.87 m) at every pressure, 2–3 more sit outward (R_max 1.79–1.87), only shots 240 and 360 are sane | not viable (no arm ≥ .6) → step 1b: vertical-field control. With the measured coils alone the plasma is not held radially (consistent with the marginal Shafranov field of step 0); a testbed needs P4/P5 (P6) as control coils constrained to the Thomson radial extent, with the coil-current changes recorded and passed on as the synthetic inputs | | 5.19 | M3c-1b step 1b: does shaping-coil control (P4/P5/P6 as FreeGS control coils, isoflux at the Thomson Te-5 % radii and up-down) give sane synthetic truth? | frozen (protocol 191d092e), the 19 step-1 frames, arms p_axis .5/1.0 x Thomson-based; result sha d2b39a57 | converged 11/11 of 19 (8 crash in FreeGS’s first axis search: ‘argmax of an empty sequence’); the converged plasmas are now held in place with small control (max circuit change 1–8 % of the measured P4+P5, median ~4 %): axis R .87–1.02, Z ±.84–1.06, outboard crossing within 1–5 cm of the marker; but most are limited on the centre column (inboard crossing .15–.28, 3–17 cm inside the marker) → sane 1/0 | not viable by the frozen rule. Progress: a few-% shaping-coil adjustment holds the plasma (measured coils alone do not, 5.18). Remaining: the crash on 8 frames (seed the plasma current at the Thomson extent) and the inboard position (profile exponents fitted to the Te pairs, or an inboard isoflux weight) — step 1c | | 5.20 | M3c-1b step 1c: step 1b with a diverted boundary (check_limited False; the scored corpus is diverted only) | frozen (protocol 597548d4); result sha d76b9f51 | converged 18/18 of 19 (the crash is gone; 1080 Picard fails); control tiny (median max-circuit change .6 %/.9 % of P4+P5; 660 at 14–16 %); axis R .91–1.01, Z ±.8–1.19; outboard crossing 0–7 cm outside the marker, inboard crossing 0–18 cm inside it; sane 3/3 (shots 360, 420, 540, where both crossings sit on the markers) | not viable by the frozen rule. Recorded after the result, not used to re-decide: the rule’s 3 cm marker window contradicts the house solver’s own finding (thomson_isoflux docstring: on a spherical tokamak the Te-5 % radii lie inside the LCFS, inboard by .10 m in the median, at psiN .91), so it rejects plausible diverted equilibria. For a synthetic testbed the truth need not sit on the real markers (its Thomson is generated from it). Next: step 1d with a plausibility rule frozen in advance (crossings outside the markers, within .20 m) or straight to step 2 | | 5.21 | M3c-1b step 2: what error does v7 make when the machine model is exact? (synthetic MAST testbed) | frozen (protocol 1a56ddb6); truth = step-1c FreeGS maps (s0.5), 17 of 19 frames pass the inclusion filter (written after step 1c, disclosed; selects testbed frames only); synthetic inputs = real coils + FreeGS control change, real Ip/TF, Thomson on the real channels from the truth psiN with one fixed profile; v7 entrypoint copy; R2-style scoring with Reader(‘MAST’); result sha d178dc43 | 17/17 solved; flux R2 .9835, D (Hausdorff/R_geo) mean .064 (median .062), Consistency .337 (R_axis .99, Z_axis .14, kappa −8.0, tri_top .57, tri_bot .55, volume .10, li −28.7). Biases: kappa +.13 (v7 plasma 5 cm narrower outboard, 1.6 cm inboard, 2 cm taller), volume −.40 m3, li −.72 (truth li 1.86 from FreeGS default exponents: prior-dependent). Observed public v7 for description only: flux .9805, D .188, Cons .273 | measurement. By the interpretation fixed in advance: D is about 3x better on synthetic (.064 vs .188) → most of the real MAST boundary loss is model error (machine, passive currents, profiles, solenoid share), which this testbed cannot fix; a real method error remains (kappa/volume bias from a too-narrow outboard boundary; li depends on the profile prior). Testbed caveats: 17 frames, smooth idealised profiles, generator’s own profile family | | 5.22 | M3c-1b step 3: large synthetic testbed (li 0.8–1.3 prior) and the v7 baseline | frozen (protocol f63411a3); 352 frames generated (201 shots x 2), 331 converged, 120 pass the inclusion filter (TUNE 60 / TEST 60); result sha caef562a | v7, exact machine model (ALL): flux R2 .9988, D .031, Consistency .61, kappa bias −.027, x_out −0.1 cm. v7 with the measured coils (the truth needed a hidden P4/P5/P6 change of up to 10 %): flux .919, D .116, Consistency .09, kappa bias −.096, volume −.57 m3, x_out −3.0 cm | 120 < 150: below the protocol’s usability threshold → priors to be widened in a frozen amendment and the result confirmed. Reading: with a realistic li prior the equal-Te method is accurate (D .03); a few-% shaping-field deficit alone degrades v7 to D .12 / Consistency .09 — the size of the real MAST loss (public D .188, Cons .27): the vertical/shaping-field model error is the prime suspect | | 5.23 | M3c-1b step 4: v7_coilfree (P4 and P5 pair changes fitted to the equal-Te pairs, 1 % = one pair tolerance, bound 10 %) | frozen (protocol a58dd86f), judged on TEST | TEST/measured: D .1294 → .1160 (−10.3 %, P .916), kappa bias −.109 → −.098, flux .910 → .928, Consistency .098 → .112; TEST/exact: D .0329 → .0310 (−5.6 %), Consistency +.009 | passes the frozen rule (narrowly), PROVISIONAL because step 3 fell short of its 150-frame threshold. Recovers only ~10 % of the measured-vs-exact gap (D .116 vs .031): the 1 % regularisation shrinks changes the truth needed (up to 10 %). Next: widen the testbed (amendment), tune the freedom scale and circuit set (P6 too) on TUNE only, judge on TEST; then a frozen real-MAST label-free check + entrant | | 5.24 | M3c-1b step 4b: tune the coil freedom (scale .01/.03/.1/.3 x P45 / P456) on TUNE, judge on TEST | frozen (protocol 13b8ac54); result sha 5021ebf8 | TUNE: scale .03 best (measured D .102 → .076 for P45); scale ≥ .1 breaks the exact variant (D .11–.19: too much freedom, the midplane pairs cannot fix the shaping field). Chosen P45_s0.03. TEST: measured D .1294 → .1094 (−15.5 %, P .895), kappa bias −.109 → −.095, flux .910 → .944, Consistency .098 → .108; exact D .0329 → .0256, Consistency .608 → .628; recovers 21 % of the measured-vs-exact gap | fails the frozen rule by P (.895 < .9); not adopted. The freedom helps in the right direction on both variants but a midplane Thomson chord constrains the shaping field only weakly (~20 % of the model-error gap). A confirmatory test of the single arm P45_s0.03 on fresh frames is the clean next step | | 5.25 | M3c-1b step 4c: confirm the single arm P45_s0.03 (v7 + P4/P5 pair changes, 3 % = one pair tolerance, bound 10 %) on fresh frames | frozen (protocol b5422cf8; amendment 1 before results: rule over all included frames); fresh shots 3, 9, …, 1203; 374 frames generated, 142 included; result sha a55d4a4e | measured coils: D .1049 → .0811 (−22.8 %, P 1.0), flux .938 → .977, Consistency .058 → .162, kappa bias −.079 → −.056; exact model: D .0341 → .0288 (−15.6 %), Consistency .518 → .511 (−.007) | CONFIRMED by the frozen rule → candidate for real MAST; next a frozen real-MAST label-free check (solved share, current closure and current outside the LCFS as M2, Thomson-edge crossings) and the entrant. The MAST leaderboard never decides | | 5.26 | M3c-1b step 5: real-MAST label-free guards for the confirmed coil-freedom arm (41 pilot shots, 2245 live frames) | frozen (protocol 7983362c); result sha 06fdee40 | solved share .851 → .790 (G1 fails, −6.1 pp vs −5 allowed); closure error .0016 → .0015, current outside LCFS .0138 → .0133 (G2, G3 pass); equal-Te pair gaps halved at every level (.85: .027 → .022; .5: .023 → .015; .25: .058 → .033; .10: .104 → .054; .05: .151 → .080; G5 pass); fitted change median 2.5 % of P4+P5 but 28 % of frames at the 10 % bound (G4 fails) | not recommended by the frozen rule; v7 stays. The real inputs ask for larger shaping-field corrections than the testbed’s hidden errors (28 % at the bound, more unsolved frames): the real model error is bigger or of another form than a few-% P4/P5 deficit (passive vessel currents, solenoid share, profile). Next for the testbed: hidden errors of those forms, and a freedom mode that matches them, frozen first | | 5.27 | M3c-1b step 6: hidden vessel current (u ~ U[−.1, .4]·Ip, 56 wall filaments ∝ length/R) + hidden P4/P5/P6 change; v7 freedom arms P45, V (vessel), VP (vessel + P45) at vessel scales .03/.1/.3 | frozen (protocol b2ac1166); TUNE/TEST split by shot; result sha 45c53e98 | TUNE: VP_s0.1 best (measured D .075, exact .039); scale .3 breaks the exact variant (D .20–.24). TEST (53 frames): measured D .1331 → .0974 (−26.8 %, P .9998), kappa bias −.114 → −.076, flux .909 → .955, Consistency .103 → .172; exact D .071 → .052, Consistency .303 → .341. P45 alone on TEST: −12.5 % (P .85, fails) | passes → step 6c confirmation of VP_s0.1 on fresh shots | | 5.28 | M3c-1b step 6c: confirm VP_s0.1 (vessel amplitude, scale .1 Ip, bound .5 Ip + P4/P5 pairs 3 %) on fresh shots 3, 9, …, 1203 | frozen in step 6 (seed 937, all included frames, ≥ 100); 374 frames, 346 converged, 123 included; result sha 97f78432 | measured coils: D .1082 → .0827 (−23.6 %, P .9995), kappa bias −.082 → −.047, flux .934 → .979, Consistency .012 → .017; exact: D .0512 → .0379, Consistency .419 → .485 | CONFIRMED → step 7 real-MAST guards | | 5.29 | M3c-1b step 7: real-MAST label-free guards for VP_s0.1 (41 pilot shots, 2245 live frames) | frozen in step 6; result sha c2412d3b | solved share .851 → .614 (G1 FAILS); closure error .0016 → .0071, outside-LCFS current .014 → .022 (G2, G3 pass within +.01); P4/P5 change median 1.5 %, 7.7 % at bound (G4 pass); edge pair gap .148 → .055, all pair gaps 1.3–2.7x smaller (G5 pass); vessel current median +11 % of Ip, 1.4 % at bound (G6 pass) | not recommended (one guard: solved share). The fitted vessel current is plausible and consistently co-directed with Ip, and the inputs are fitted far better, but a quarter of the frames no longer pass the solver’s own trust test (convergence / axis near the Te peak). Next: find why (likely the shifts jumping between Picard iterations: relax them as the current is relaxed), re-run the testbed chain for the fixed arm, then these guards again | | 5.30 | M3c-1b step 8: VP_s0.1r (shift relaxation 0.3) — A step-6 testbed, B fresh frames, C real guards | frozen (protocol 1c179c81); real result sha 9d227cee | A (109 frames): measured D .1196 → .0966 (−19.3 %, P .997), exact D .064 → .045, Cons exact .302 → .354 — pass. B (123): D .1082 → .0824 (−23.8 %, P .9997), exact .051 → .038 — pass. C: solved share .851 → .636 (G1 fails); G2–G6 pass (edge gap .148 → .057, vessel +11.6 % Ip, 2.3 % at bound) | not recommended (G1). Relaxing the shifts barely helps convergence; a check on real shot 300 (inputs only): 3x the Picard iterations converges 74/82 frames instead of 67 (v7 82/84) → step 9: same arm with 300 iterations | | 5.31 | M3c-1b step 9: VP_s0.1r with 300 Picard iterations (amendment 1 before results: iterations passed explicitly) | frozen (protocol fc8723cc); real result sha 2dd28da6 | A (109): measured D .1196 → .0660 (−44.8 %, P 1.0), Consistency .063 → .393, flux .920 → .994, kappa bias −.100 → −.043; exact D .064 → .045 — pass. B fresh (123): D .1082 → .0666 (−38.5 %, P 1.0), Consistency .012 → .321, flux .934 → .993 — pass. C real: solved share .851 → .702 (G1 fails); G2–G6 pass (edge gap .150 → .059, vessel +11.9 % Ip, 3.6 % at bound, P45 change 1.6 %) | not recommended (G1). On the testbed the converged freedom removes most of the model-error loss (Consistency ×5–25). On real data 30 % of frames still do not pass the trust test → step 10: per-frame fallback to the plain v7 solve where the freedom solve is not trusted | | 5.32 | M3c-1b step 10: VP_s0.1r, 300 iterations, plain-v7 fallback per frame where the freedom solve is not trusted | frozen (protocol 54861c32); module sha prefix 8d2a35b3ddc928f3; real result sha ad650b81 | A (109): D .1196 → .0660 (−44.8 %, P 1.0), Consistency .063 → .393, flux .920 → .994 — pass. B fresh (123): D .1082 → .0666 (−38.5 %, P 1.0), Consistency .012 → .321, flux .934 → .993 — pass. C real (41 shots): solved .851 → .880, closure err .0016 → .0057, outside-LCFS .014 → .020, edge pair gap .153 → .066, P45 change median 1.1 % (8.8 % at bound), vessel +8.6 % Ip median (2.9 % at bound) — all six guards pass | RECOMMENDED to the entrant as MAST v10 (full 1206-shot build + format QA; submission is the entrant’s decision; the MAST leaderboard stays observed only) | | 5.33 | MAST v10 full build (entrant go 2026-10-01) | ML350 systemd unit fec-mast-v10-build, 22 workers, WS-parity venv, data manifest 95b925e3 = WS; smoke 2-shot parity WS = ML350 bit for bit; 11753 s | 1206 shots, 69075 frames, 60829 solved (88.1 %), q95/βN read on all solved, 3 shots without a solved frame, 0 non-finite; archive sha e53ce759…; package A/submission_v25v27v28_v10 (DIII-D 195-net 33105268… unchanged); official validator exit 0 on both, float32 65x65, not quantised/rounded | ready to upload and submit (entrant authorised); the MAST public score will be observed only | | 5.34 | #955231: 195-net DIII-D + MAST v10 — public result, OBSERVED ONLY (never used to choose) | Codabench 17739 phase 29580, HF revision 80c31775…, submitted 2026-10-01 14:17:49Z | DIII-D S .995990 (= #953621, identical archive). MAST S .724568 vs v7 .729629 (−.0051): flux R2 .97844 (v7 .98050), qb .40445 (v7 .36367, +.041), D_LCFS .19144 (v7 .18838), Consistency .22452 (v7 .27321); g_ratio .727485 (v7 .732567) | observed: on the real test set v10 is slightly worse than v7 overall (q95/betaN better, flux/boundary/Consistency worse). The synthetic gain (D −38..−45 %, Consistency x5–25) did NOT carry to real MAST: the testbed’s hidden errors (vessel mode ∝ 1/R + few-% P4/P5) do not describe the real model error, and the label-free guards (pair gaps, closure, solved share) did not detect it. Recorded as a negative transfer; no method is chosen by this number | | 5.35 | MAST v11 (clean) full build — entrant option 1, 2026-10-04 | protocol 3914aab5 (frozen before the build); pkg git archive feef76c; ML350 systemd unit fec-mast-v11-build, 22 workers, WS-parity venv, data manifest 95b925e3 = WS; smoke WS vs ML350 |dpsi| <= 3e-8, same solve sets; 12:23Z–13:13Z, 2972 s | 1206 shots, 69075 frames, 62187 solved (90.0 %), q95 read 62187, betaN read 62110, 1 shot without a solved frame (scalar fallback q95 7.329, betaN 1.055), 0 non-finite; archive sha e78b1a9f… (WS = ML350); package A/submission_v25v27v28_v11 (DIII-D 195-net 33105268… unchanged); official validator exit 0 on both, float32 65x65, finite, not quantised/rounded | ready to upload and submit (entrant authorised). Development score may be observed and disclosed; v11 itself is not changed by it | | 5.36 | #960321: 195-net DIII-D + MAST v11 (clean) — public result, OBSERVED with disclosure (does not change v11) | Codabench 17739 phase 29580, HF revision cd8e6c5c…, submitted 2026-10-04 13:37:54Z, Finished by 13:44Z; counter 33/100 | DIII-D S .995990 (identical archive, = #955231). MAST S .719023 vs v10 .724568 (−.0055) and v7 .729629 (−.0106): flux R2 .97979 (v10 .97844, v7 .98050), qb .31978 (v10 .40445, v7 .36367), D_LCFS .19045 (v10 .19144, v7 .18838), Consistency .25608 (v10 .22452, v7 .27321); g_ratio .721918 (v10 .727485, v7 .732567) | observed: the clean recipe (no demo-selected choices, engineering constants) costs .0106 MAST S against v7; flux, boundary and Consistency are within .002–.017 of v7, and the loss is mostly q95/betaN (qb −.044 vs v7, −.085 vs v10). The demo-selected components of v7 were therefore worth about .01 MAST S on the real test set. v11 stays the deployed MAST map because v7/v10 are inadmissible under the organisers’ rule-3 answer; the public DIII-D score is unchanged. Further MAST candidates must be pre-justified and compared under a frozen protocol (Development comparison allowed with disclosure) | | 5.37 | D1: which MAST scalar carries the qb loss? v11 with every betaN := the split median of v11 betaN (1.05529, input-only) | protocol 00c9808b frozen before the build; package A/submission_v25v27v28_v11qD1 (MAST 79bfcea7…, DIII-D 33105268…), HF 47618bdd…; Codabench #960391, 2026-10-04 14:18:16Z, Development score used with disclosure | qb .165764 (v11 .319776); flux .97979, D .19045, Consistency .25608 identical to v11 (check passed). Hence R2_q95 = .33153 − R2_const and R2_betaN = .63955 − R2_q95; with R2_const of a median in [−0.1, 0]: R2_q95 in [.33, .43], R2_betaN in [.21, .31] | measurement only, not deployed. Both scalars are weak, betaN somewhat more. Next: pre-justified q95 candidates C1/C2 (protocol 11d9b11b) | | 5.38 | MAST q95 candidates C1 (ITER/Uckan formula on the v11 map boundary × DIII-D calibration .8085) and C2 (geometric mean with v11) | protocol 11d9b11b frozen before the build; DIII-D sanity check on true boundaries (60 shots, 3449 frames): corr .952, label/formula .808 (quartiles .77–.83); built on ML350 from the v11 maps | label-free pre-submission check: C1 median 10.7 vs v11 7.33, 95th percentile 58, 99th 130; corr with v11 .58. The formula diverges as a/R0 → 1, and the boundaries of the approximate v11 maps (D_LCFS .19) often span the vessel | WITHDRAWN before submission, on input-only grounds (no Development score spent). The formula needs a reliable boundary that v11 does not give; q95 stays the v11 field-line read | | 5.39 | MAST v11f: v11 with the FreeGS ConstrainPaxisIp default profile shape (1 − ψn)² (alpha_m 1, alpha_n 2) instead of (1 − ψn) | protocol 08c6596d frozen before the build (adopt only if MAST S ≥ v11 + .003); ML350 build 4861 s; package A/submission_v25v27v28_v11f (MAST 874ae5d4…, DIII-D 33105268…), QA pass, HF 05153d1f…; Codabench #960936, 2026-10-04 22:35:41Z, Development score used with disclosure | solved 47321/69075 frames (68.5 %, v11 90.0 %), 6 shots without a solved frame. Public MAST S .601058 vs v11 .719023: flux .90718 (v11 .97979), qb .19477 (.31978), D_LCFS .27104 (.19045), Consistency 0.0000 (.25608); G .603478; DIII-D .995990 unchanged | REJECTED. The more peaked current solves fewer frames and the neighbour-filled frames degrade flux and boundary; Consistency collapses to zero. The FreeGS default is not a better prior for this equal-temperature inverse; v11 stays. No further exponent from this comparison | | 5.40 | D54: does the MAST v12 build answer a set other than the 1206 public shots? (entrant 2026-10-13: verify it) | The second agent’s frozen build.py a290758b copied to d54_mast_v12_any_split/build_any_split.py 74f266aa with three lines changed (directory from the environment instead of the public path, shot-count asserts follow the directory, worker split for small sets); embedded v12 solver source untouched; run on a directory of 24 public shots (every 50th from the 7th, links) as if it were a new set; ML350 unit fec-d54-mast-subset, 8 workers, 184 s wall, 21 CPU-min; compared array by array with the deployed archive 2febdf3e | 24 of 24 shots bit-identical in maps, q95 and betaN (1445 frames, 1296 solved); no organiser-mask read. The set-level scalar fallback differs (q95 7.667 / betaN .973 against 7.340 / 1.055 on the whole public set) but none of the 24 shots needed it | The MAST build is not tied to the public set: its only fixed parts were the path and the count. A shot’s answer depends on the rest of the set only when no frame of the shot solves (then the set’s mean current pattern and median scalars are used) — a property of the method, input-derived, to be stated in the package. A 1206-shot fold needs about 18 CPU-hours (under an hour on 22 workers) | | 5.41 | D55 (MAST part): the second agent’s split-agnostic entrypoint (package_v2, infer.py 59af1eeb) on all 1206 public MAST shots, run unmodified by the first agent inside unit fec-d55-after-v2; criteria of protocol 3f998c95; compare_archives.py 8d1dd12a against the deployed archive 2febdf3e | 1206 shots, 69 075 frames, 3618 arrays: every map and scalar bit-identical (maximum difference 0.0), no non-finite value; the container file differs (sha ad73224c against 2febdf3e), its contents do not. Wall time 1 h 52 min on 8 workers. The second agent ran the same comparator independently with the same result and qualified 22 workers on one repeated shot (bit-identical) | QUALIFIED. Both machines of the deployed entry can be answered for any fold from its inputs with one command each, reproducing the submitted predictions exactly. Remaining for rule 6: the from-scratch training entrypoint, a CUDA run, the GPU-hour declaration |
6. Integrity and process decisions
- MAST leaderboard score: observed and recorded only, never used to select (entrant, TIER 0). A note on this gap was sent to the organisers on 2026-09-30.
- Pre-rule history disclosed: some MAST variants (v2 vs v3, v7 vs v6) were compared by public score before 23 Sep.
- Holdout opened by the entrant for training; its one honest use was the v25/v27/ensemble comparison (§3–4).
- Two credential exposures in the first agent’s shell output (PhysioNet password, HF read token) were reported.