Skip to main content
A dark Proxima logo in light color mode and a light one in dark color mode.

VMEC++

Ruff Code style: black MIT license Python version DOI

CI C++ core tests Full V&V against reference VMEC Publish wheels to PyPI

VMEC++ is a Python-friendly, from-scratch reimplementation in C++ of the Variational Moments Equilibrium Code (VMEC), a free-boundary ideal-MHD equilibrium solver for stellarators and tokamaks.

The original version was written by Steven P. Hirshman and colleagues in the 1980s and 1990s. The latest version of the original code is called PARVMEC and is available here.

Compared to its Fortran predecessors, VMEC++:

  • has a zero-crash policy and reports issues via standard Python exceptions
  • allows hot-restarting a run from a previous converged state (see Hot restart)
  • supports inputs in the classic INDATA format as well as simpler-to-parse JSON files; it is also simple to construct input objects programmatically in Python
  • runs faster in the majority of cases
  • comes with substantial documentation of its internal numerics

VMEC++ can run on a laptop, but it is a suitable component for large-scale stellarator optimization pipelines.

On the other hand, some features of the original Fortran VMEC are intentionally omitted from VMEC++ to reduce complexity. See below for more details.


Table of Contents

Usage

This is a quick overview of the three main ways in which you can use VMEC++. See examples/ for some actual example scripts. Suitable input files are found in examples/data. If unsure where to start, we suggest giving the w7x case a try, which is a five-field-period stellarator case for the Wendelstein 7-X stellarator.

For example examples/force_residual_convergence.py runs fixed-boundary VMEC++ on the W7-X case and plots the convergence of the force residuals.

W7-X force residual convergence

As a Python package

VMEC++ offers a simple Python API:

import vmecpp

# Construct a VmecInput object, e.g. from a classic Fortran input file
vmec_input = vmecpp.VmecInput.from_file("input.w7x")  # or VMEC++'s w7x.json format
# This is a normal Python object: it can be constructed and modified programmatically
vmec_input.rbc[0, 0] *= 1.1

# Run VMEC++
vmec_output = vmecpp.run(vmec_input)

# Inspect the results programmatically or save them as a classic wout file
print(vmec_output.mercier.iota)
vmec_output.wout.save("wout_w7x.nc")

All other output files are accessible via members of the vmec_output object called threed1_volumetrics, jxbout and mercier.

An optional iteration_callback is available to investigate the progress of the solver. It can be used to interactively debug and interact with vmecpp's state from a Python repl, or generate animations of the convergence progress like in examples/watch_solve.py.

With SIMSOPT

SIMSOPT is a popular stellarator optimization framework. VMEC++ implements a SIMSOPT-friendly wrapper that makes it easy to use it with SIMSOPT.

import vmecpp.simsopt_compat

vmec = vmecpp.simsopt_compat.Vmec("input.w7x")
print(f"Computed plasma volume: {vmec.volume()}")

Differentiable runs

The wout quantities support autodiff with JAX. jax.grad can differentiate objectives written in terms of wout quantities with respect to the boundary coefficients rbc, zbs. When they are JAX tracers, vmecpp.run solves through the implicit adjoint of the force residual, which needs a build with -DVMECPP_ENABLE_ENZYME=ON. Otherwise it returns NumPy arrays as before.

Leaves that change shape depending on iteration progress (fsqt trace for example) are treated as aux data to support differentiability. jxbout, mercier and threed1 tables are also treated as non-differentiable aux data. Under jax.jit these tables and diagnostics are None.

import jax
import jax.numpy as jnp
import vmecpp

vmec_input = vmecpp.VmecInput.from_file("cth_like_fixed_bdy.json")


def aspect(rbc, zbs):
    boundary = vmec_input.model_copy(update={"rbc": rbc, "zbs": zbs})
    return vmecpp.run(boundary, verbose=False).wout.aspect


rbc = jnp.asarray(vmec_input.rbc)
zbs = jnp.asarray(vmec_input.zbs)
d_aspect_d_rbc, d_aspect_d_zbs = jax.grad(aspect, argnums=(0, 1))(rbc, zbs)

As a command line tool

You can use VMEC++ directly as a CLI tool. In a terminal in which Python has access to the VMEC++ package:

# run on a given input file -> produce corresponding wout_w7x.nc
# vmecpp is a python module and can be either run with `python -m` or directly as a script
vmecpp examples/data/input.w7x

vmecpp -t 4 examples/data/input.w7x      # run with up to 4 threads
vmecpp -q examples/data/input.w7x        # Suppress logging (quiet)
vmecpp --legacy examples/data/input.w7x  # use tabular output logging like in Fortran VMEC

# convert a classic Fortran indata file to VMEC++'s JSON format -> examples/data/w7x.json
vmecpp convert examples/data/input.w7x

# compute an mgrid file from a coils file with MAKEGRID -> mgrid_<name>.nc
# (the JSON file only defines the mgrid grid, it is not a VMEC input; `mgrid` is an alias of `makegrid`)
vmecpp mgrid makegrid_parameters.json coils.<name>

# print the version, or check all options
vmecpp --version
vmecpp --help

As a Docker image

A pre-built Docker image is available at https://github.com/proximafusion/vmecpp/pkgs/container/vmecpp. Note that at present it is only updated occasionally.

See docker/README.md for more information and instructions on how to build a new image.

Installation

The easiest method for installing vmecpp is using pip:

pip install vmecpp

For usage as part of MPI-parallelized SIMSOPT applications, you might want to also install MPI on your machine and pip install mpi4py.

Alternatively you can build the latest vmecpp directly from source according to the appropriate instructions below.

Ubuntu/Debian

Ubuntu 22.04 and 24.04, as well as Debian 12 are officially supported.

  1. Install required system packages:
sudo apt-get install -y build-essential cmake zlib1g-dev libomp-dev python3-dev
  1. Install VMEC++ as a Python package (possibly after creating a dedicated virtual environment):
pip install git+https://github.com/proximafusion/vmecpp

The procedure will take a few minutes as it will build VMEC++ and some dependencies from source.

A common issue on Ubuntu is a build failure due to no python executable being available in PATH, since on Ubuntu the executable is called python3. When installing in a virtual environment (which is always a good idea anyways) python will be present. Otherwise the Ubuntu package python-is-python3 provides the python alias.

Arch Linux

  1. Install required system packages:
pacman -Sy --noconfirm python-pip gcc openmp zlib cmake
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
python -m pip install git+https://github.com/proximafusion/vmecpp

Fedora

Fedora 41 is officially supported.

  1. Install required system packages:
dnf install -y python3.10-devel cmake g++ zlib-devel libomp-devel
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
# If you are installing with MPI support, remember to source the mpi compiler first
. /etc/profile.d/modules.sh
python3.10 -m pip install git+https://github.com/proximafusion/vmecpp

MacOS

  1. Install dependencies via Homebrew:
brew install python@3.10 ninja libomp netcdf-cxx git
# And if they aren't pre-installed already:
brew install gcc cmake
  1. Install VMEC++ as a Python package (possibly after creating a virtual environment):
# tell cmake where to find gfortran and gcc as they have non-standard names
export FC=$(which gfortran-14)
# OpenMP headers live under a different path on newer OS-X versions, so CMake can't find them
export OpenMP_ROOT=$(brew --prefix)/opt/libomp
export HDF5_ROOT=$(brew --prefix hdf5)
python3.10 -m pip install git+https://github.com/proximafusion/vmecpp

With Nix (Community support)

For a Linux development shell with the latest supported Python version:

nix develop
python --version
python -m pip install -e .[test]

The shell provides Python 3.13 together with the native build dependencies needed to build and test VMEC++, including CMake, GCC, GFortran, HDF5, NetCDF, OpenMPI, and Git LFS.

As part of a conda environment

VMEC++ is currently not packaged for conda, but all its dependencies are and VMEC++ can be installed inside a conda environment. An example environment.yml file is provided here that can be used, after cloning the vmecpp repository, as:

git clone https://github.com/proximafusion/vmecpp.git
cd vmecpp
# this creates a "vmecpp" conda environment
conda env create --file environment.yml
# use the environment as usual
conda activate vmecpp

C++ build from source

After having installed the build dependencies as shown above, you can compile the C++ core of VMEC++ via CMake or Bazel. E.g. with CMake:

git clone https://github.com/proximafusion/vmecpp.git
cd vmecpp
cmake -B build  # create and configure build directory
cmake --build build --parallel  # build VMEC++
# you can now use the vmec_standalone C++ executable to run VMEC on a VMEC++ input JSON file, e.g.
./build/vmec_standalone ./examples/data/solovev.json

The main C++ source code tree is located at src/vmecpp/cpp/vmecpp.

Hot restart

By passing the output of a VMEC++ run as initial state for a subsequent one, VMEC++ is initialized using the previously converged equilibrium. This can dramatically decrease the number of iterations to convergence when running VMEC++ on a configuration that is very similar to the converged equilibrium.

Example

import vmecpp

vmec_input = vmecpp.VmecInput.from_file("examples/data/w7x.json")

# Base run
vmec_output = vmecpp.run(vmec_input)

# Now let's perturb the plasma boundary a little bit...
ntor = vmec_input.ntor
vmec_input.rbc[0, ntor+0] *= 1.0 + 1.0e-6 # m=0, n=0
vmec_input.rbc[1, ntor+0] *= 1.0 - 1.0e-6 # m=1, n=0
# ...and fix up the multigrid steps: hot-restarted runs only allow a single step
vmec_input.ns_array = vmec_input.ns_array[-1:]
vmec_input.ftol_array = vmec_input.ftol_array[-1:]
vmec_input.niter_array = vmec_input.niter_array[-1:]

# We can now run with hot restart:
# passing the previously obtained vmec_output ensures that
# the run starts already close to the equilibrium, so it will take
# very few iterations to converge this time!
hot_restarted_output = vmecpp.run(vmec_input, restart_from=vmec_output)

Full tests and validation against the reference Fortran VMEC v8.52

When developing the C++ core, it's advisable to locally run the full C++ tests for debugging or to validate changes before submitting them. The full C++ tests live in src/vmecpp/cpp/vmecpp_large_cpp_tests and use Git LFS for large test data files. To run them locally (after cloning with git lfs pull to fetch the LFS objects):

cd src/vmecpp/cpp
bazel test --config=opt //vmecpp/... //vmecpp_large_cpp_tests/...

The CI of this repo runs these tests automatically.

The single-thread runtimes as well as the contents of the "wout" file produced by VMEC++ can be compared with those of Fortran VMEC v8.52. The full validation test can be found at https://github.com/proximafusion/vmecpp-validation, including a set of sensible input configurations, parameter scan values and tolerances that make the comparison pass. See that repo for more information.

This full validation (~219 input configurations) is run against every commit to main and can also be triggered on demand from the Full V&V against reference VMEC workflow (click "Run workflow"). It builds vmecpp from the corresponding commit rather than using the version pinned by vmecpp-validation.

Differences with respect to PARVMEC/VMEC2000

VMEC++:

  • reports issues via standard Python exceptions and has a zero crash policy
  • allows hot-restarting a run from a previous converged state (see Hot restart)
  • supports inputs in the classic INDATA format as well as simpler-to-parse JSON files; it is also simple to construct input objects programmatically in Python
  • The Fortran version falls back to fixed-boundary computation if the mgrid file cannot be found; VMEC++ (gracefully) errors out instead.
  • The Fortran version accepts both the full path or filename of the input file as well as the "extension", i.e., the part after input.; VMEC++ only supports a valid filename or full path to an existing input file.
  • employs the same parallelization strategy as Fortran VMEC, but VMEC++ leverages OpenMP for a multi-thread implementation rather than Fortran VMEC's MPI parallelization: as a consequence it cannot parallelize over multiple nodes, but can utilize shared caches between threads
  • Reduces the force spikes between multi-grid stages in free-boundary, which should lead to faster and more robust free-boundary convergence (for details see https://github.com/proximafusion/vmecpp/releases/tag/v0.7.0)
  • Stable recurrence for Neumann kernel integrals enables convergence of free-boundary solves at high mpol, ntor (see https://github.com/proximafusion/vmecpp/releases/tag/v0.5.3)
  • Uses FFT kernels optimized for small mode numbers generated using FFTX instead of DFT for supported resolutions. They give a 10-20% speedup relative to the DFT counterparts.
  • implements the iteration algorithm of Fortran VMEC 8.52, which sometimes has different convergence behavior from (PAR)VMEC 9.0: some configurations might converge with VMEC++ and not with (PAR)VMEC 9.0, and vice versa. One deliberate exception: at multigrid grid transitions, the rollback backup of the state vector is taken after the radial interpolation of the coarse-grid solution (matching PARVMEC/VMEC2000 since 2017-01-24, "SPH 012417"), not before it as in VMEC 8.52 -- with the 8.52 ordering, the first restart of a stage silently discards the interpolated state and the finer stages effectively re-solve from a cold start

Limitations with respect to the Fortran implementations

  • lrfp flag is available for wout compatibility, but RFP-specific physics is not implemented yet - only stellarators/Tokamaks for now
  • several profile parameterizations are not fully implemented yet:
    • sum_cossq_s
    • sum_cossq_sqrts
    • sum_cossq_s_free
  • 2D preconditioning using block-tridiagonal solver (BCYCLIC) is not implemented; neither are the associated input fields precon_type and prec2d_threshold
  • VMEC++ only computes the output quantities if the run converged (can be overridden via return_outputs_even_if_not_converged input)

License

vmecpp is distributed under the terms of the MIT license.

Metadata

Release files for vmecpp 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vmecpp 0.9.1
File Size Uploaded
vmecpp-0.9.1.tar.gz 735.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for vmecpp 0.9.1
File
vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp314-cp314t-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64 Details
vmecpp-0.9.1-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
vmecpp-0.9.1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details
vmecpp-0.9.1-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
vmecpp-0.9.1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details
vmecpp-0.9.1-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
vmecpp-0.9.1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details
vmecpp-0.9.1-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
vmecpp-0.9.1-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
vmecpp-0.9.1-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
vmecpp-0.9.1-cp310-cp310-macosx_15_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 15.0+ x86-64 Details
vmecpp-0.9.1-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 152.5 MB

Release files / vmecpp-0.9.1.tar.gz

Download URL vmecpp-0.9.1.tar.gz
Size 735.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b385ddf4e2151a80795d3bf01212a202f48655fb3896542c89ca0b4e153e0ba1
BLAKE2b-256 checksum
How to use checksums
bb9eae26bd106b1b729cba2767c116639dc359585bf1a8a1caf47a28e8b441e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
07c05a66a06645ed6a88cb91c67e1ef9a151e15e3472e8f80d8ca22a8b08cb5e
BLAKE2b-256 checksum
How to use checksums
a46582e04a825160670ddebd2965ffa5e412d7e685e55f2df4bb74f95958d22a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d66b6fa3f3f8fc1e5dde88f9fdcfc6ea9098dfd171de3f9a12e59a229d6ff896
BLAKE2b-256 checksum
How to use checksums
c868fcbfa1de0f7391dcc1554f8882ecc75041595bf8eb6ba82c389ff1a7780f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314t-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp314-cp314t-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ccdf6d5206a3d91249a497e19f4f66b492f6f8c124e460a7cdece8aea0347d80
BLAKE2b-256 checksum
How to use checksums
4c4c2c50845a662b5fdcbd459e3d22e850cd0ba5f9958593905879cff0450462
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp314-cp314-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b4b717174b9b6299292b12e9834480f692de72647a204dddc2a655c35a7e1dc4
BLAKE2b-256 checksum
How to use checksums
1c6d7518067c1cee86da76fbbc55df85150337cb3e57748b1f27e5e0e7a1c112
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp314-cp314-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7027cc8a421ea40cbbe01179b6906a0c4b19193be3188cd95f4b72e5710e1d6a
BLAKE2b-256 checksum
How to use checksums
ce2fb9806732818d04c9ffe688e0af05ccd80977451a119cf1c8b3703a349a82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp314-cp314-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp314-cp314-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
90cee24dda6d979066fb7c300884ee7bd78a8b256b208060c9085532012516f6
BLAKE2b-256 checksum
How to use checksums
c8d9400e3496a9cf8a7b5a8c9dd313ebae07439889d221db54e800324f70f92f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp313-cp313-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8ebf9b4ed519d4f88bf57a3fcf697168aa644de0594dcfbfbd4e10304adcbac3
BLAKE2b-256 checksum
How to use checksums
13baa77c3395acf1bd96564bce6dd33a413633cd2ff2b229183037e6da93d32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp313-cp313-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
85100d228714adaa533c4ef9f43184f78105bd76591de2a95ac59933ee7e1681
BLAKE2b-256 checksum
How to use checksums
904d2097e0fcad43facc9e622a267b7fdd627b12999c3ca59be4f99fb478fc1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp313-cp313-macosx_15_0_x86_64.whl

Download URL vmecpp-0.9.1-cp313-cp313-macosx_15_0_x86_64.whl
Size 6.6 MB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
14518e109279cf2f44999156d6bc7e601300074bb20989c237572ffed8079306
BLAKE2b-256 checksum
How to use checksums
370581353aa67173990128b5db5f7d182ffda742b4caeb431ee181fb3465e839
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp313-cp313-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp313-cp313-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f903ed850cf63fa5b940879ebab04313859f8b70a5eba6e86d66ce9e6180cb94
BLAKE2b-256 checksum
How to use checksums
930a2709c38a53be31ab1d5bb2ce914ce87639dc5a5807c7993e4e33ef64d270
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp312-cp312-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
69e02f15aa8a7dc63a5dd5e65e722bd2151adae3e6c891ae55fd8f81a39a5617
BLAKE2b-256 checksum
How to use checksums
bacec35f142e3952ee331cdc66a467576c7ac6e4638e69b4ead75cdb0ad2c8be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp312-cp312-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a62d2712dd791eabcb670680cba76fa5fadaa09753697eae8a8d32d54cc7a6e5
BLAKE2b-256 checksum
How to use checksums
00375c4d1ad21ed49836477a42fa15c700fc13d95ade8d03e6aca02a1126ff3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp312-cp312-macosx_15_0_x86_64.whl

Download URL vmecpp-0.9.1-cp312-cp312-macosx_15_0_x86_64.whl
Size 6.6 MB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
b9383a2d09c431cb25c9deb5b57c055ddf60449ebe4a3cb60145bf57d92e3b3f
BLAKE2b-256 checksum
How to use checksums
cbbfddbec6c333baa8b4422b59eeccbf7a1e795441f4a8acdfbb84c95c9108a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp312-cp312-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp312-cp312-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
2d3ca70aa5d1ef0641134e17d58931ca3b7c732c3bf0b26f5a0564f15d579560
BLAKE2b-256 checksum
How to use checksums
8e17b541811a54dfd5ef097ae4a555dcb71ef12df2f220f82e8789684eb25058
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
03809ab31c9ccbb6cd7e37a9473a46bae9e9daec0a7fd278cb00a710563d8c9f
BLAKE2b-256 checksum
How to use checksums
5e1e2ad19a8596239b0d93c4041858fc7eecc84d99cb6040e2d53975763834dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp311-cp311-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
49e7d24d6b73d8e319fafcc9d32fd1265b17ad6477839be3a4a10972033f5452
BLAKE2b-256 checksum
How to use checksums
75252b7c647d0e2cb4ddac2436d7503492cfdc6df57ae05098af55bd413f9138
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp311-cp311-macosx_15_0_x86_64.whl

Download URL vmecpp-0.9.1-cp311-cp311-macosx_15_0_x86_64.whl
Size 6.6 MB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
cbd28036ef9732db5bd5439aa0f1f8f1020b4e7ea49980e58ddfafb8c12efbc7
BLAKE2b-256 checksum
How to use checksums
31cf7314c0c747b78d063582bdc7bd946178359d1c351b433b25c85a0a0a3c7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp311-cp311-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp311-cp311-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f18a2e10752138bf1238d536f0664a5d99cc438568b04f9c7de00e796ecd24b7
BLAKE2b-256 checksum
How to use checksums
ffd26bb57ca525a86eba7521095a7f29be731a26f29c8719654977d85dcd0bf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL vmecpp-0.9.1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 10.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1c1207dc17d8472ee99c6e25cad5ff7aa47d98949c6f1401d7ba146b9657b09c
BLAKE2b-256 checksum
How to use checksums
94e2ab97fcca8c5b71a32dde5363a4e2f51ba54d8a84deff2c43439bd31360e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL vmecpp-0.9.1-cp310-cp310-manylinux_2_28_aarch64.whl
Size 5.4 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
900da5033dc0cf53f9783c965c5985bed1c02c0c24e8aa9b2f1fca9833459117
BLAKE2b-256 checksum
How to use checksums
75e942a67ed39e1708ae596da9aafa0d44c9e6539b856b9275549179a6668300
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp310-cp310-macosx_15_0_x86_64.whl

Download URL vmecpp-0.9.1-cp310-cp310-macosx_15_0_x86_64.whl
Size 6.6 MB
Tags CPython 3.10 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
2b57819b54a22b14f9cbbc74f623626a88a75072b3b8b39c3be8f1f90defdb3d
BLAKE2b-256 checksum
How to use checksums
670ff26687ebc1b561fa1b5db28a315c0f11998f5bbc189c3555cebe5228a20d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / vmecpp-0.9.1-cp310-cp310-macosx_14_0_arm64.whl

Download URL vmecpp-0.9.1-cp310-cp310-macosx_14_0_arm64.whl
Size 5.3 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f4ddb31abed4fa8daa3bcf6e987c8f7e2dce233fe7b5f894a1bc0f2612a5f8dd
BLAKE2b-256 checksum
How to use checksums
4b7f583f54e0c120ab57bd3ec7c3aaeaf8834be710b8a249992d97e8b658028b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page