- data/leading-front.json28 kB
- data/reference-boundaries.json4.0 kB
- data/reference-boundary.json3.4 kB
- README.md5.4 kB
- UPSTREAM-LICENSE1.1 kB
Evaluate a stellarator boundary
The evaluator of Proxima Fusion's ConStellaration benchmarks, constellaration 0.2.6, as the leaderboard on Hugging Face runs it, wrapped in functions that other notebooks can call.
| File | What it holds |
|---|---|
data/reference-boundary.json |
Proxima's example boundary for the single-objective problems, upstream inputs/boundary.json |
data/reference-boundaries.json |
Proxima's two-boundary example for the MHD-stable problem, upstream inputs/boundaries.json |
data/leading-front.json |
The 688 feasible (L∇B, A) points of the leading MHD-stable submission |
- Source: https://github.com/proximafusion/constellaration, tag v0.2.6,
hugging_face_competition/inputs/.flux_compression_both_weightsadaptscompute_flux_compression_in_regions_of_bad_curvaturefromconstellaration/mhd/turbulent_transport.py. MIT licence, Copyright (c) 2025-present Proxima Fusion GmbH; the notice is inUPSTREAM-LICENSE. - Leading front: written by
build_data.pyof the leaderboard notebook from the leaderboard's results dataset as recorded on 25 October 2026 (submission of Eppy@EP-Hard, 23 October 2026, score 249.14). Recorded objectives only, no boundary. - Needs: Python 3.10 to 3.13. The geometrical problem fits a 1.5 GiB ScienceHub kernel for boundaries of the dataset's size; the two QI problems need about 3 GiB, more than ScienceHub compute offers, so run them on your own machine. With the booz-xform override in the notebook's header no dependency needs a compiler on Linux x86-64 or on macOS 14 or later.
- Call it:
evaluate,evaluate_many,compute_metrics,constraint_report,added_hypervolume,leader_front,feasible_pointsandrotating_ellipse; the notebook documents each and shows how to load them on your own machine or copy them into a ScienceHub notebook.
The booz-xform override
The notebook pins constellaration==0.2.6 and overrides one dependency:
booz-xform 0.1.0 instead of 0.0.9. Release 0.0.9 publishes no wheels, and
building it needs a C++ compiler, CMake and libnetcdf, which ScienceHub's
kernel image does not have. With the override no package needs a compiler;
two pure-Python packages (pylatexenc, nvgpu) come as source archives. On
Python 3.13 the kernel image installs everything in 18 s.
The override does not change any number. The reference boundary and the paper's baselines for all three problems (eight forward-model runs) give bit-identical metrics, QI residual included, in two environments:
| Environment | Python | booz-xform | simsopt | jax | scipy |
|---|---|---|---|---|---|
| ScienceHub kernel image | 3.13 | 0.1.0 | 1.9.0 | 0.5.3 | 1.17.1 |
| Leaderboard Space | 3.10 | 0.0.9, built from source | 1.8.1 | 0.6.0 | 1.15.3 |
The 16 runs are rows of data/rescored.parquet in the leaderboard notebook
of this project, with run "kernel image" or "leaderboard environment".
That notebook pairs them by boundary and reports the largest difference
over their 110 metric values: 0.
Cost of one evaluation
Measured on Hetzner CPX42 servers (AMD EPYC), one core per evaluation, with VMEC++ single-threaded as upstream sets it. The kernel-image rows ran one process per evaluation on one CPU, so their memory belongs to that evaluation. Rows from the leaderboard environment ran on Python 3.10, where worker processes are reused, so their memory is an upper bound.
| Problem | Boundary | Environment | Time | Peak memory |
|---|---|---|---|---|
| Geometrical | reference, 5 × 9 modes | kernel image | 72 s | 1.0 GiB |
| Geometrical | paper baseline | kernel image | 35 s | 1.0 GiB |
| Geometrical | top 3 entries, 13 × 25 modes | leaderboard | 117–146 s | ≤ 1.72 GiB |
| Simple-to-build | reference and paper baseline | kernel image | 76–77 s | 2.7 GiB |
| MHD-stable | paper baseline, per point | kernel image | 70–120 s | 2.7 GiB |
| MHD-stable | leading front, 24 points | leaderboard | 54–127 s | ≤ 3.1 GiB |
| Flux compression only | two leading fronts, per point | leaderboard | median 67 s, up to 252 s | ≤ 1.45 GiB |
The memory of the two QI problems comes from one line of the QI residual
(omnigeneity/qi.py, the angle array): |B| is evaluated for every Boozer
mode on a 601 × 75 grid at once, about 2,300 × 45,075 doubles per array.
The largest peak, 3,136 MiB for an MHD-stable point in the leaderboard
environment, sets the 3.1 GiB below which the notebook refuses the QI
problems.
A ScienceHub kernel has 1.5 GiB of memory. It fits a geometrical evaluation of a boundary of the dataset's size; the largest leaderboard entries, measured at up to 1.72 GiB, may not fit.