Skip to main content

Bloch Equation Simulator for Python

A fast Bloch equation simulator with a C core, Python API and interactive GUI, based on the solver by Brian Hargreaves (Stanford). Use it to explore spin physics in Free Mode, or to simulate complete Pulseq acquisitions on 3D phantoms in Sequence Mode.

Installation

Python package (GUI, Pulseq support and Python API):

pip install blochsimulator
blochsimulator-gui

In a Jupyter notebook, use %pip install blochsimulator so the package lands in the notebook's own environment.

Desktop application for macOS and Windows (no Python needed): download from GitHub Releases. Builds target 64-bit systems; mainly tested on macOS 26.

macOS: the app is blocked on first launch

The app is not signed with an Apple Developer ID, so macOS quarantines it. Move BlochSimulator.app to Applications and launch it. If it is blocked:

  1. Dismiss the warning.
  2. Open System Settings > Privacy & Security and scroll to Security.
  3. Click Open Anyway next to the BlochSimulator.app message.
  4. Launch BlochSimulator again.

Alternatively, if you trust the download, remove the quarantine flag:

xattr -cr /Applications/BlochSimulator.app

Demo

Sequence workspace

Sequence Mode: EPI variants on a spherical object, including multi-repetition and multi-slice acquisitions with B0 inhomogeneity.

Spin Echo Animation

Free Mode: a spin-echo simulation.

Features

Free Mode — understand spin behaviour over frequency and position:

  • Endpoint or time-resolved simulation of configurable tissues (T1, T2, PD)
  • RF pulses: rectangular, sinc, Gaussian, adiabatic half/full passage, BIR-4, or loaded from file
  • FID, spin echo, gradient echo, inversion recovery, slice selection, EPI, SSFP
  • Magnetization, signal, spectrum, spatial-profile, heatmap and 3D-vector views, GIF/MP4 export
  • Parameter sweeps with final-state or full time-resolved result collection

Sequence Mode — simulate what the scanner would measure:

  • Pulseq sequences, loaded or generated: EPI (bipolar/flyback), spiral, EPSI/MGE, CSI, FLASH, inversion recovery with T1 fit, PRESS, slice-selective FID, Cartesian 3D bSSFP, spectrally selective 3D bSSFP and Cartesian or radial multi-echo 3D bSSFP
  • RF design including spectral-spatial pulses with per-metabolite pulse schedules
  • Phantoms: 3D spectral phantoms with B0 maps, hyperpolarized pyruvate→lactate kinetics with inflow, and a mouse perfusion phantom for hyperpolarized ¹³C and for ¹H (tissue water, gadolinium DCE)
  • B1 Tx/Rx fields: uniform, birdcage, surface coil
  • Receiver noise calibrated from a measured phantom FID, to predict SNR of e.g. hyperpolarized in-vivo experiments
  • Reconstruction Explorer for 2D/3D images, k-space and CSI spectra, with the phantom shown on the image grid
  • PSF and spoiling analysis of the current sequence
  • Export to .seq, NetCDF/HDF5, Bruker raw data (experimental) and auto-generated Jupyter notebooks; complete projects as .blochproj (see Bloch project vs. exported results)

See the User Guide for how to use these and what to watch out for.

Bloch project vs. exported results

The GUI writes two kinds of files. Choose by what you want to do with them:

Bloch project (.blochproj) Exported results (.nc, .h5, .npz, Bruker, DICOM, NIfTI)
Written by File → Save Project, Export selected… in the Simulations list, parameter loops with Results: Save to folder Export Results
Purpose Continue working: re-open the complete session in the GUI Analyse the numbers of one result in other tools
Contains Sequence, phantom, B1 fields, all GUI controls, the last Free Mode result and the last Sequence/Spin Probe result Signal, k-space, images, magnetization, B1 maps and the parameters as JSON metadata of the current result
Re-open in the GUI Yes (File → Open Project) No (a .nc file can be viewed with Open result… in the Reconstruction Explorer)
Read without Bloch Simulator No, needs blochsimulator.project_io.load_project Yes (xarray, h5py, NumPy, MATLAB, scanner viewers)

Both keep the simulation parameters (flip angle, matrix, FOV, TR/TE, nucleus, B0). Only a project also keeps the phantom and B1 field objects themselves. Two example notebooks show how to load each kind, including these parameters:

Several simulations in one project. A project can hold one Free Mode and one Sequence (or Spin Probe) result at the same time. Each result again contains many spins, voxels, pools or coils that can be selected by index:

from blochsimulator.project_io import load_project

project = load_project("simulation.blochproj")

# Free Mode: arrays of shape (time, position, frequency), one spin per pair
free_mode = project["legacy_result"]
if free_mode is not None:
    mz_one_spin = free_mode["mz"][:, 0, 10]  # position 0, frequency index 10

# Sequence mode: one result with signal, magnetization and per-pool data
result = project["sequence_result"]
if result is not None:
    parameters = result.metadata["sequence_definitions"]
    flip_angle_deg = parameters["FlipAngleDeg"]
    voxel = result.final_magnetization[32, 32, 0]  # Mx, My, Mz of one voxel
    for index, pool in enumerate(result.pool_names):
        pool_signal = result.species_signal[index]  # signal of one metabolite

A parameter loop with Results: Save to folder or Export selected… in the Simulations list writes one project per run into a folder. Every run records the varied parameter in result.metadata["parameter_loop"] (loop_id, parameter_label, value, unit, index), so single runs can be picked or stacked:

from pathlib import Path

runs = {}
for path in Path("loop_folder").glob("*.blochproj"):
    result = load_project(path)["sequence_result"]
    loop = result.metadata.get("parameter_loop")
    if loop is not None:
        runs[loop["value"]] = result

result_at_15 = runs[15.0]  # e.g. the run with flip angle 15°

Python API

Exported notebooks reproduce any GUI simulation; see the spin-echo reproduction and analysis examples. The GUI can also be started from a local Jupyter notebook with !blochsimulator-gui (not on remote servers or Colab).

Basic simulation

import numpy as np
from blochsimulator import BlochSimulator, TissueParameters

# Create simulator
sim = BlochSimulator(use_parallel=True, num_threads=4)

# Define tissue parameters
tissue = TissueParameters(
    name="Gray Matter",
    t1=1.33,  # seconds
    t2=0.083  # seconds
)

# Create a simple 90-degree pulse
ntime = 100
dt = 1e-5  # 10 microseconds
time = np.arange(ntime) * dt

b1 = np.zeros(ntime, dtype=complex)
b1[0] = 0.0235  # 90-degree hard pulse

gradients = np.zeros((ntime, 3))  # No gradients

# Run simulation
result = sim.simulate(
    sequence=(b1, gradients, time),
    tissue=tissue,
    mode=2  # Time-resolved output
)

# Plot results
sim.plot_magnetization()
More Python API examples

Load a saved project

from blochsimulator.project_io import load_project

project = load_project("simulation.blochproj")
phantom = project["phantom"]
result = project["sequence_result"]

See Bloch project vs. exported results and load_bloch_project.ipynb.

Spin echo sequence

from blochsimulator import BlochSimulator, SpinEcho, TissueParameters

sim = BlochSimulator()

# Create spin echo sequence
sequence = SpinEcho(te=20e-3, tr=500e-3)  # 20ms TE, 500ms TR

# Simulate white matter
tissue = TissueParameters.white_matter(3.0)

# Run simulation with multiple frequencies (T2* effects)
frequencies = np.linspace(-50, 50, 11)  # Hz
result = sim.simulate(sequence, tissue, frequencies=frequencies)

# Access magnetization components
mx, my, mz = result['mx'], result['my'], result['mz']
signal = result['signal']

Custom pulse design

from blochsimulator import design_rf_pulse

# Design a sinc pulse
b1, time = design_rf_pulse(
    pulse_type='sinc',
    duration=2e-3,      # 2 ms
    flip_angle=180,     # degrees
    time_bw_product=4,  # Time-bandwidth product
    npoints=200
)

# Apply phase
phase = np.pi/4  # 45 degrees
b1_phased = b1 * np.exp(1j * phase)

Parallel simulation

# Simulate multiple positions and frequencies in parallel
positions = np.random.randn(100, 3) * 0.01  # Position scale: 10 mm
frequencies = np.linspace(-200, 200, 41)     # 41 frequencies

result = sim.simulate(
    sequence=sequence,
    tissue=tissue,
    positions=positions,
    frequencies=frequencies,
    mode=0  # Endpoint only (faster)
)

# Result shape: (100 positions, 41 frequencies)
print(f"Signal shape: {result['signal'].shape}")

Xarray integration

For advanced analysis, you can convert simulation results directly to an xarray.Dataset. This provides named dimensions, coordinates, and automatic metadata tracking.

# Convert last result to xarray
ds = sim.get_results_as_xarray()

# Access data with named dimensions
# Dimensions: (time, position, frequency)
print(ds.mx.dims)

# Powerful selection and plotting
ds.signal.sel(frequency=0, method='nearest').plot()

# Metadata is preserved in attributes
print(ds.attrs['t1'], ds.attrs['te'])

Sequence library

Pre-defined sequences are available:

from blochsimulator import SpinEcho, GradientEcho

# Spin Echo
se = SpinEcho(te=30e-3, tr=1.0)

# Gradient Echo
gre = GradientEcho(te=5e-3, tr=10e-3, flip_angle=30)

# Compile to waveforms
b1, gradients, time = se.compile(dt=1e-6)

Tissue parameter library

Common tissues at different field strengths:

from blochsimulator import TissueParameters

# 3T parameters
gm = TissueParameters.gray_matter(3.0)
wm = TissueParameters.white_matter(3.0)
csf = TissueParameters.csf(3.0)

# 7T parameters
gm_7t = TissueParameters.gray_matter(7.0)

# Custom tissue
liver = TissueParameters(
    name="Liver",
    t1=0.812,
    t2=0.042,
    t2_star=0.028,
    density=0.9
)

Development

For detailed packaging, release workflows, and CI/CD information, see the Developer Guide.

Developer setup and manual desktop build

Install from source

The Python package supports Python 3.10 or later. Desktop GUI development and PyInstaller app builds use the shared Python 3.12 runtime declared in .python-version, so the source GUI and packaged app do not silently use different interpreters.

  • Windows: Install Python from python.org and select Add Python to PATH. Install Visual Studio Build Tools with Desktop development with C++.
  • macOS: Install Python from python.org or with brew install python. Install the compiler with xcode-select --install. For optional OpenMP acceleration, install libomp with Homebrew.
  • Linux: Install Python and a compiler with sudo apt install python3 python3-pip build-essential on Ubuntu/Debian, or install the corresponding Python and Development Tools packages on Fedora.

Clone the repository and install it in editable mode:

git clone https://github.com/LucaNagel/bloch_sim_gui.git
cd bloch_sim_gui
pip install -e .

For desktop GUI development, use the shared launcher instead of invoking an arbitrary python or python3 from PATH:

./scripts/run_gui.sh

Both this launcher and scripts/build_pyinstaller.sh use .venv-packaging. The current repository is installed there in editable mode, preventing an old installed BlochSimulator package from shadowing the working tree. Set BLOCH_PYTHON=/path/to/python3.12 if Python 3.12 is not discoverable as python3.12.

Verify the installation:

from blochsimulator import BlochSimulator, TissueParameters

sim = BlochSimulator()
tissue = TissueParameters.gray_matter(3.0)
print(f"T1: {tissue.t1:.3f}s, T2: {tissue.t2:.3f}s")

Conda environment for notebooks and the Python API

From the repository root, create an environment with an explicit Python version:

conda create -n bloch-simulator python=3.12 pip
conda activate bloch-simulator
python -m pip install -e .

Select this environment as the kernel in your notebook editor.

Pip installs h5py automatically because it is declared in pyproject.toml. If no compatible pre-built wheel is available, pip attempts a source build, which needs a separately installed HDF5 library. To use Conda's pre-built h5py package and its HDF5 dependency, optionally add h5py to the conda create command before running pip. See the Conda setup notes for details.

Build the desktop application

Standalone applications for macOS, Windows, and Linux are automatically built and attached to GitHub Releases whenever a new version tag is pushed. The instructions below are for manual local builds. One build per operating system is required.

Prerequisites:

  • macOS: Xcode CLT; brew install libomp
  • Windows: Python 3.10+ and MSVC Build Tools for the C extension
  • Linux: gcc/g++; ensure libgomp is available

Quick build:

./scripts/build_pyinstaller.sh

The artifact is written to dist/BlochSimulator as a single binary, with an .exe suffix on Windows.

The equivalent explicit commands use the same environment:

.venv-packaging/bin/python setup.py build_ext --inplace
.venv-packaging/bin/python -m PyInstaller bloch_gui.spec --noconfirm

Run the packaged application with ./dist/BlochSimulator on macOS/Linux or dist\\BlochSimulator.exe on Windows.

Runtime data and exports:

  • rfpulses/ is bundled automatically.
  • Exports default to per-user data directories:
    • macOS: ~/Library/Application Support/BlochSimulator/exports
    • Windows: %APPDATA%\\BlochSimulator\\exports
    • Linux: ~/.local/share/BlochSimulator/exports
  • Override the location with BLOCH_APP_DIR or BLOCH_EXPORT_DIR.

Project structure

blochsimulator/
├── src/
│   └── blochsimulator/
│       ├── __init__.py
│       ├── simulator.py            # Core Python API
│       ├── gui.py                  # PyQt5 GUI
│       ├── bloch_core_modified.c   # C implementation
│       ├── bloch_core.h            # C header
│       ├── bloch_wrapper.pyx       # Cython wrapper
│       └── ...
├── tests/                          # Unit tests
├── docs/                           # Sphinx documentation
├── pyproject.toml                  # Modern build config
├── setup.py                        # C-extension build config
├── MANIFEST.in                     # Source dist manifest
└── README.md

Troubleshooting build issues

  1. Missing compiler: Install gcc (Linux), Xcode (macOS), or Visual Studio (Windows).
  2. OpenMP not found: The code will still work, but without parallelization.
  3. Import error: Ensure that the .so or .pyd file is in the expected package directory.

Contributing

Contributions are welcome. Please:

  1. Fork the repository.
  2. Create a feature branch.
  3. Add tests for new features.
  4. Submit a pull request.

Citation

If you use this simulator in your research, please cite:

@software{blochsimulator_python,
  title={Python Bloch Equation Simulator GUI and API},
  author={Luca Nagel},
  year={2026},
  url={https://github.com/LucaNagel/bloch_sim_gui}
}

Acknowledgments

This project is based on code originally developed by Brian Hargreaves at Stanford University. As of July 2026, the original source is unfortunately unavailable. A Python adaptation of the code is available here.

  • Original Bloch simulator by Brian Hargreaves, Stanford University
  • NumPy and SciPy communities
  • xarray team
  • PyQt/PySide developers
  • OpenMP project
  • Built partially with Codex, Claude Code, and Gemini CLI

License

This project is licensed under the GNU General Public License v3.0. You may copy, distribute, and modify the software under the terms of GPLv3. Modified versions distributed to others must also be licensed under GPLv3 and include the corresponding source code.

Contact

Luca Nagel

Metadata

Release files for blochsimulator 2.9.5

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

Source distribution (sdist)

Source distribution for blochsimulator 2.9.5
File Size Uploaded Provenance Actions
blochsimulator-2.9.5.tar.gz 2.5 MB Without provenance Details for blochsimulator-2.9.5.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for blochsimulator 2.9.5
File Actions
blochsimulator-2.9.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for blochsimulator-2.9.5-cp314-cp314-win_amd64.whl
blochsimulator-2.9.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.5-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details for blochsimulator-2.9.5-cp314-cp314-macosx_14_0_arm64.whl
blochsimulator-2.9.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for blochsimulator-2.9.5-cp313-cp313-win_amd64.whl
blochsimulator-2.9.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for blochsimulator-2.9.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.5-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details for blochsimulator-2.9.5-cp313-cp313-macosx_14_0_arm64.whl
blochsimulator-2.9.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for blochsimulator-2.9.5-cp312-cp312-win_amd64.whl
blochsimulator-2.9.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.5-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details for blochsimulator-2.9.5-cp312-cp312-macosx_14_0_arm64.whl
blochsimulator-2.9.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for blochsimulator-2.9.5-cp311-cp311-win_amd64.whl
blochsimulator-2.9.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.5-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details for blochsimulator-2.9.5-cp311-cp311-macosx_14_0_arm64.whl
blochsimulator-2.9.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for blochsimulator-2.9.5-cp310-cp310-win_amd64.whl
blochsimulator-2.9.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.5-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details for blochsimulator-2.9.5-cp310-cp310-macosx_14_0_arm64.whl

Total release size: 52.7 MB

Release files / blochsimulator-2.9.5.tar.gz

Download URL blochsimulator-2.9.5.tar.gz
Size 2.5 MB
Tags Source
SHA-256 checksum
How to use checksums
2d3a62341937b81e3e0f83b66304fe0f02a2cf09869b1c43616dc9fe9a02573a
BLAKE2b-256 checksum
How to use checksums
c1c08ec662d8d85d4c79953907df50170c10d40cf666a486d934d62fb1e5d4b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp314-cp314-win_amd64.whl

Download URL blochsimulator-2.9.5-cp314-cp314-win_amd64.whl
Size 2.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
d300a90f6e878d1f421a531759e8f2a9d90c754792ae2285693319028f635a1e
BLAKE2b-256 checksum
How to use checksums
bb688f1e456d59157195a38492737637e0d22f80f28792c6784cc85f2e595333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
69d3a0abd6fb01e3a5f3ea82fdd5afbbfbcc836f808be675a0820acd09d3238d
BLAKE2b-256 checksum
How to use checksums
17d40d4e8b02ced4b81c7a9a6e77cc440e71a9a83f0e57dd08301a7f3b885452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp314-cp314-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.5-cp314-cp314-macosx_14_0_arm64.whl
Size 2.7 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
271084074d85be0f77ad8f0746ae44c37ae667aab5a000526ba3af0f4d2fbcef
BLAKE2b-256 checksum
How to use checksums
2a2d31bb4fd961e8dbff4ed7c5a5c3d8897201007f6fb349ee6e2f51a809e739
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp313-cp313-win_amd64.whl

Download URL blochsimulator-2.9.5-cp313-cp313-win_amd64.whl
Size 2.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
16b15cd8d68dd0858b7abf20af4f4c9892e4f4f52476dcc632d32ab725c911b6
BLAKE2b-256 checksum
How to use checksums
4c1410227441bb1cad3397b78f65f1d31a13cb36375d6a5769ff8d8d0a633de8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
077093f06d05d055d3984f6a7e267b9a2c83490cb94674fa9a426539c2898f51
BLAKE2b-256 checksum
How to use checksums
b08e3c41c1a0e88cfe3896120e6e8213840e4e6f6ff2cfe1a8f5ef0bcb961e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp313-cp313-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.5-cp313-cp313-macosx_14_0_arm64.whl
Size 2.7 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
6fed5c6f8f5f8ffedd187daa48317d91f60e740b1d44b8794aa5eab7a6429120
BLAKE2b-256 checksum
How to use checksums
d237db66271cca2f914f236288330f210764e802d68f5c972048185b25e83b63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp312-cp312-win_amd64.whl

Download URL blochsimulator-2.9.5-cp312-cp312-win_amd64.whl
Size 2.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
0e0960196996d6975d1ebf27ebadd0c3544fedf28a98c5e518cc0498b6f0fa8b
BLAKE2b-256 checksum
How to use checksums
7fe9230e502452d6c3bd95da47a1a11dd4541bf976e4c6dc7d8cb9261b86b204
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2fbd5d2d731f7f5bf6507824924d72fef29c393fb61ea27eaef98193d7458b97
BLAKE2b-256 checksum
How to use checksums
6c4b36802ccd54225367c6c2c13cae744ef1c0349bc7cf10c940a7b035168253
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp312-cp312-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.5-cp312-cp312-macosx_14_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
59509ebb2b00020510294ca6aa776b77758b40534bb8c9c7a7021784410d03d7
BLAKE2b-256 checksum
How to use checksums
9ecd75b6deb0a698e1455c5ebd27c0f2763a0b781442f333769938aafd8de422
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp311-cp311-win_amd64.whl

Download URL blochsimulator-2.9.5-cp311-cp311-win_amd64.whl
Size 2.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8638a501ed17cdc2641ffdced32abae5683ad753e22a50a04c16b5e5b5286e06
BLAKE2b-256 checksum
How to use checksums
d6db7a5a41816f0108d40a2b09851205ce096ed2660d0a568f9ee9747d918c5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.1 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c599157a5f0d4a036d2f6ce02a965b65d6e7b177ccc7569336bf1f44e109746e
BLAKE2b-256 checksum
How to use checksums
0ee812775d4e16d9d29fcac4d47b4daf1c8a14c482f752751adbcc760a3ae913
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp311-cp311-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.5-cp311-cp311-macosx_14_0_arm64.whl
Size 2.7 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
912b78225399d06c86a5964f5e0c421a266b90911ecf9ae017daa445e0848f51
BLAKE2b-256 checksum
How to use checksums
1c811586ee7ad1648c02a45791f8e83f0335aa04830eca756810f93501309ed3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp310-cp310-win_amd64.whl

Download URL blochsimulator-2.9.5-cp310-cp310-win_amd64.whl
Size 2.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9e05b054c454020f9965b368e46ee09c97cb764f3f4e40919cf0bbd430866e68
BLAKE2b-256 checksum
How to use checksums
5f4c4e4bba1772f3a25c0568b94e8d0f253f522d785a54ef6e4317c87e5b3772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6ee7aa57c17c774f38f22017f1ce2489fedc7d732374e60711ab6f385b2db628
BLAKE2b-256 checksum
How to use checksums
852ca1da231ab0e369ec36ae0b916f210f52a4ba230d3ab6e380f86080f4a322
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.5-cp310-cp310-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.5-cp310-cp310-macosx_14_0_arm64.whl
Size 2.7 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
63e4d1c84cd7ca779d34a73a6b3756d9132b701c8015c164cc7ef98efed28d16
BLAKE2b-256 checksum
How to use checksums
8c6725cc1fb982fe92d067bdb2c932107d1d6edc46048f18b375428e4b204d49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for blochsimulator 2.9.5

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.9.5 This release

16 release files No provenance

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