Skip to main content

Bloch Equation Simulator for Python

Live Demo

A high-performance Python implementation of the Bloch equation solver originally developed by Brian Hargreaves at Stanford University. This package provides a fast C-based core with Python bindings, parallel processing support, and an interactive GUI with classic waveform simulation and an event-based Sequence mode for Pulseq workflows.

Demo

Sequence mode

Sequence workspace

Demonstration of different EPI sequence modes on a spherical object, including multi-repetition and multi-slice acquisitions with B0 inhomogeneities. Generated EPI, CSI, and bSSFP sequences can be exported as Pulseq .seq files.

Classic simulation

Spin Echo Animation

Demonstration of a spin-echo simulation.

Features

Simulation and sequence design

  • Fast C-based Bloch solver with parallel processing support.
  • Endpoint and full time-resolved simulations over multiple spatial positions and off-resonance frequencies.
  • Configurable tissue properties including T1, T2, proton density, and initial magnetization.
  • RF pulse design for rectangular, sinc, Gaussian, adiabatic half/full passage, and BIR-4 pulses, including phase and carrier-frequency offsets.
  • Sequence support for FID, spin echo, gradient echo, inversion recovery, slice-selective excitation, EPI, and SSFP.
  • Dedicated event-based Sequence mode for loading and simulating Pulseq .seq files.
  • Interactive generation of Pulseq EPI, centre-out 2D spiral, 2D CSI, and 3D bSSFP sequences, with export to .seq files and reproducing Jupyter notebooks.
  • Spectral and dynamic phantom design with spatial peak distributions, pyruvate-to-lactate kinetics, spatial B0 inhomogeneity maps, and optional time-dependent B0 offsets.
  • Hardware-aware RAM protection for large simulation grids.

Visualization and analysis

  • Live magnetization, signal, spectrum, spatial-profile, heatmap, and 3D-vector views.
  • Synchronized time controls and animation for time-resolved results.
  • Sequence timeline, ADC signal, CSI spectrum, k-space, reconstruction, final state, spatial magnetization, and spin-probe views.
  • Named dimensions and metadata through direct xarray.Dataset conversion.
  • Static figures (.png, .svg) and animations (.mp4, .gif).

Export and reproducibility

  • Numerical results in Python-compatible NumPy and HDF5 formats.
  • Sequence results as xarray.Dataset objects or NetCDF (.nc) files with named acquisition, spatial, spectral, dynamic, and pool dimensions.
  • Experimental export of simulated acquisitions as Bruker raw datasets, including fid and/or rawdata.job0 plus the associated parameter files.
  • Automatically generated Jupyter notebooks using the parameters selected in the GUI.
  • Parameter sweeps with final-state or full time-resolved result collection.

Jupyter notebook export

The desktop app creates notebooks that match the selected tissue, sequence, RF, spatial, frequency, and simulation parameters.

Export mode Purpose Spin-echo example
Reproduction Embeds the selected parameters and re-runs the complete simulation from scratch. Open reproduction notebook
Analysis Loads exported results and prepares numpy, matplotlib, and xarray analyses without re-running the solver. Open analysis notebook

The analysis example uses the accompanying spin-echo result data. The GUI exports the matching data file together with the analysis workflow.

Parameter sweeps

The Parameter Sweep panel iterates over a parameter range and runs one simulation per step. Sweeps can vary flip angle, TE, TR, TI, B1 scaling or amplitude, T1, T2, spin-offset center, and RF-carrier offset. Results can be compared directly, exported, and opened in an automatically generated sweep-analysis notebook.

Get started

Desktop application

Download the standalone application for Windows or macOS from GitHub Releases. This is the recommended option for interactive simulation and requires no Python installation. Windows downloads and Python wheels target 64-bit systems.

Activation on macOS

After downloading the application, move BlochSimulator.app to your Applications folder and launch it. If macOS blocks the first launch:

  1. Dismiss the warning.
  2. Open System Settings > Privacy & Security and scroll to Security.
  3. Find the message that BlochSimulator.app was blocked and click Open Anyway.
  4. Launch BlochSimulator again.

Alternatively, after verifying that you trust the downloaded application, remove its quarantine flag in Terminal:

xattr -cr /Applications/BlochSimulator.app

Python package

Install blochsimulator from PyPI:

pip install blochsimulator

The package exposes the full simulation API for Python scripts, Jupyter notebooks, and custom analysis pipelines.

Online GUI

Use the browser-based GUI without installation. It provides interactive RF-pulse and slice-selection simulations; the desktop application and Python package provide the complete feature set.

Sequence mode

The Sequence Simulation workspace provides an event-based workflow for complete Pulseq acquisitions. It keeps RF, gradient, ADC, and label timing from the sequence and runs the acquisition on a spatial, spectral, or dynamic phantom without expanding the full sequence into a permanently stored dense waveform.

Pulseq import and dynamic sequence generation

  • Load Pulseq .seq files and inspect their RF, gradient, and ADC timeline before simulation.
  • Simulate imported Pulseq sequences directly on 1D, 2D, or 3D phantoms.
  • Configure Cartesian EPI or spiral readouts, including multi-slice gap and spacing and configurable Sinc, SLR, block, or RF-Designer excitation pulses, plus 2D CSI and 3D bSSFP acquisitions interactively. The generated sequence is updated from the current acquisition parameters and can be exported as a Pulseq .seq file, a reproducing Jupyter notebook, or both.
  • Use millimeters consistently for MRI geometry controls such as FOV, slice thickness, slice gap, and spatial probe positions; simulations and exports continue to use SI meters internally.
  • Preserve Pulseq acquisition labels for ordered repetitions, echoes, slices, segments, and partitions in the result metadata.

When installing the Python package, enable Pulseq and GUI support with:

pip install "blochsimulator[gui,pulseq]"

The standalone desktop application already bundles the dependencies required for the Sequence mode.

Spectral and dynamic phantom designer

The Phantom Designer creates multi-shape phantoms from boxes and ellipsoids and assigns spatially resolved spectral peaks and relaxation properties to them. It supports per-shape B0 offsets as well as analytic linear or radial B0 inhomogeneity maps.

Dynamic phantoms extend the same design with a hyperpolarized pyruvate-to-lactate model. Pool-specific initial magnetization and relaxation, spatial kPL regions, tabulated pyruvate inflow, and a time-dependent B0 offset can be configured in the Kinetics / kPL tab. Total and pool-resolved signals and magnetization remain available after simulation.

Results and export

Sequence simulations retain the chronological ADC signal, k-space coordinates, acquisition labels, final magnetization, and optional checkpoints. Cartesian and spectroscopic acquisitions additionally provide ready-to-use k-space, reconstruction, FID, and spectrum arrays where applicable.

Use SequenceSimulationResult.to_xarray() for an in-memory xarray.Dataset, or export from Export results…. The default export writes both a NetCDF dataset and an analysis notebook; NetCDF-only, HDF5, and NumPy archives are also available.

The Bruker raw dataset export is experimental. It writes simulated complex ADC data as fid, rawdata.job0, or both, together with Bruker-style acqp, method, visu_pars, and pulseprogram files. Export metadata should be reviewed before using these datasets in scanner-specific reconstruction pipelines.

Usage

GUI application

Once installed, launch the GUI from a terminal or from the applications folder:

blochsimulator-gui

Features:

  • Design RF pulses (rectangular, sinc, Gaussian)
  • Configure tissue parameters (T1, T2)
  • Select pulse sequences (spin echo, gradient echo, etc.)
  • Real-time 3D magnetization visualization
  • Signal analysis and frequency spectra

Jupyter Notebook

You can launch the interactive GUI directly from a cell in your local Jupyter Notebook. You can also export the selected GUI simulation as a notebook. See the spin-echo reproduction and spin-echo analysis examples.

# Install from PyPI once, if needed
!pip install blochsimulator

# Launch the GUI
!blochsimulator-gui

This requires Jupyter to run on your local machine; it does not work on a headless remote server or Google Colab.

Python API

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

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
)

Documentation

For detailed instructions on installation, GUI features, and Python API usage, see the User Guide.

Theory

The simulator solves the Bloch equations:

$$ \frac{d\mathbf{M}}{dt}

\gamma\left(\mathbf{M}\times\mathbf{B}\right) -\frac{M_x}{T_2},\hat{\mathbf{x}} -\frac{M_y}{T_2},\hat{\mathbf{y}} -\frac{M_z-M_0}{T_1},\hat{\mathbf{z}} $$

Using:

  • Rotation matrices for RF and gradient effects
  • Exponential decay for relaxation
  • Cayley-Klein parameters for efficient rotation calculation

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.9 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")

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.9+ 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
  • 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blochsimulator-2.1.1.tar.gz (979.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

blochsimulator-2.1.1-cp314-cp314-win_amd64.whl (883.5 kB view details)

Uploaded CPython 3.14Windows x86-64

blochsimulator-2.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

blochsimulator-2.1.1-cp313-cp313-win_amd64.whl (875.1 kB view details)

Uploaded CPython 3.13Windows x86-64

blochsimulator-2.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

blochsimulator-2.1.1-cp312-cp312-win_amd64.whl (877.2 kB view details)

Uploaded CPython 3.12Windows x86-64

blochsimulator-2.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp312-cp312-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

blochsimulator-2.1.1-cp311-cp311-win_amd64.whl (879.7 kB view details)

Uploaded CPython 3.11Windows x86-64

blochsimulator-2.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp311-cp311-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

blochsimulator-2.1.1-cp310-cp310-win_amd64.whl (878.4 kB view details)

Uploaded CPython 3.10Windows x86-64

blochsimulator-2.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp310-cp310-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

blochsimulator-2.1.1-cp39-cp39-win_amd64.whl (879.7 kB view details)

Uploaded CPython 3.9Windows x86-64

blochsimulator-2.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

blochsimulator-2.1.1-cp39-cp39-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

Details for the file blochsimulator-2.1.1.tar.gz.

File metadata

  • Download URL: blochsimulator-2.1.1.tar.gz
  • Upload date:
  • Size: 979.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for blochsimulator-2.1.1.tar.gz
Algorithm Hash digest
SHA256 56f8022c8e082cea14e74ac4cb3aa3c017d8df8a01ff7307cfc0ad8ace0e9dac
MD5 17b67ac766e271f8123f6a9a029e276d
BLAKE2b-256 d863c6b9b761a0ae1f126f0997519fd1ca7a512753946fd177d6c82b5819db9e

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 340c5dd8c24b0edaa5a469cb869e27030540652cafca35644a8bf96af9a97622
MD5 a100da5e26cd5d7363b1a42b0169dbc3
BLAKE2b-256 4a9525cbd733030080bb85a8159f91e2a58e19894ea234aef9223061b1f2f9bd

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8cae25332590e1c7b84513f954f66132ebda4be1b32a84d8b05ad33bb91a0052
MD5 dcfd5d788145f134be2d2d137f849420
BLAKE2b-256 978d4b7e209f735a2d6189ae6b4b0c366e071c50428299d85c25f13347ef86f6

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0f0e72e52732e279ace7b18000f228081763fceea543c684ed16a8149519b212
MD5 a4014f05b19bd14d330482662e25dfd1
BLAKE2b-256 c3f97586c5b474cc0b8806e8f903b69a3aace49b4506ea3b64446e63b25690d3

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1ac3e0faf8501d619a89d1850717f22e6d78804c698ce21fd5c991a3b925e887
MD5 2550a30696200356ec5507149dd49e72
BLAKE2b-256 edccfbdfd9c4cc4f35c8d655a89ea1f41f32722e6897505b2994b740c5ca2871

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b58157019e1a9eaa46fd89efc0b204385faba7e9084d4ca415eda22c0bc02893
MD5 7a288e644ef3313997b054868088d9f4
BLAKE2b-256 14368c52ae5cce99ad4aa65fcd8f506756587dff2bd3b6f69731029886e674be

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 26a1a6facf123e439256528ddc6fd6955e4a4654cff4263b38a151ba8371c484
MD5 ff4b35ae3bc3d88d7c447cf0c181a763
BLAKE2b-256 6a6f0b9a792d8015adbb90b02891091a437bb129a003e93bd12d720741ae8cf7

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 36c4ebb3c336909d0e9994cfd2269e714c457da1d72182ab0fa55aa66f6f58cb
MD5 37746e85d2b19506f86513f680cfcaa0
BLAKE2b-256 875d2bd573df1f4c9f8dd50e1212d5ff531bfefc67147e21e9d3dd9de738a9bc

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7abb360a91dc631f5b054287fe0257679cf0a499e41183374a13d4003aeec323
MD5 701ce0e9b711e222b081bcf4d020ced5
BLAKE2b-256 c20e8b72c35a44f5a75674f577e3cd4f5d4e19fa1a767105b7d5521534b4ea5b

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b8de97523bc4ff21751919d1e7d05dbfcb018c7f6d2714dd37fe92cc9be26508
MD5 e8643a2c076925e2423eaa672be910d0
BLAKE2b-256 f37ebcb52a96b5100787c40e965aed52656e1290cd154bcda7b8a8db85676e68

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 19c2c70f9af80235ae7def910eec73ff9d00c486f42a916f56d8af89e9490d2f
MD5 3c0fb6d67d76f3f300f152b90a61d35b
BLAKE2b-256 7b4e7c38a52d90d516ebabcc00c2214598ac5a47b176d3d9de3e4ce813647e7c

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eedf81efbdd648aa81ee6fec2c542dc96a672250eab0122088d1a8866dc58ef0
MD5 425c43c5418f64bcaf8f4d0545028f04
BLAKE2b-256 f61a33a8d0ed3a9a3bddde0a5f6672049f0dfe2fe8b462816ce72ad64de7ab34

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 00519a824ea533f96080c67dd06cfc5649ee16f3581152ffd343bc5ec3d90016
MD5 d7987159a03bc930c6efe4e43e19abaf
BLAKE2b-256 304fd418566e035d0a6076b1bc9dd00ff07b0fc3f695302fe00ee2d8865d7e62

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 54639c5e84ef6d746bbcf7cc2fc3ca02a1dff56b93e6063d07d21c0a0afc4cc8
MD5 5bc7261b89fdc418415ff89be0d21388
BLAKE2b-256 1f32b719be63042f4b44b5b502da654f5683dfe72bfe08c4390b76908c44b3ef

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14ed5c926669ac42d53fa6df2d807c2307eece94719a2881912656d6b6eb3501
MD5 3751919c2d31defaad4665ed4dc9b437
BLAKE2b-256 0ce3f4b914f5730805e6941d6b4b5707bf63faedbc7ef5b29711eba765a7ee3b

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0f9d1aee05e953a43c8ae4fb5467dbaffe754e738c688510d5d0d25284187dc0
MD5 6362c6a1ff7dde7ddf49b7eb94ed952a
BLAKE2b-256 0560f91ca5111378fffa974a01774ea50a968cbbff42698c94256b23d4e448f3

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2485780cf5dfce323a67b9d08f3893723cfd9fae3ccae7b2f5689dde8dc74269
MD5 094a8edd0c1f8e24d55d9a99257b6270
BLAKE2b-256 b1dff29efd822614d3f9becf36378352136f10aa1315e1737295e66999bfd44d

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1466dc78aa76e1d351a478c83ddddc71af5af1c89438d11e23ce631198062844
MD5 47a654fd8bf2a6ff1698db50ccc9bbde
BLAKE2b-256 adc7f663702f7f68d84b0c562d03b066e7203d8758d35527785577782eaa11be

See more details on using hashes here.

File details

Details for the file blochsimulator-2.1.1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for blochsimulator-2.1.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 db04b0ea341d969694758725cc27ac9de1c88b16927ab18af4c3d90e3db43b2b
MD5 397e0d78a803d58b009674079e5b96d4
BLAKE2b-256 ad763ead46930b091ef8aa2c1b542632e873b966af3e859f2855d14dc732fbf7

See more details on using hashes here.

Release history Release notifications | RSS feed

2.6.4

19 files

2.6.3

19 files

2.6.2

19 files

2.6.0

19 files

2.5.0

19 files

2.4.0

19 files

2.3.0

19 files

2.1.2

19 files

This release

2.1.1 This release

19 files

2.0.0

19 files

1.1.0

21 files

1.0.15

21 files

1.0.13

21 files

1.0.12

21 files

1.0.11

21 files

1.0.10

21 files

1.0.9

21 files

1.0.8

21 files

1.0.7

21 files

1.0.6

30 files

1.0.5

30 files

1.0.4

30 files

1.0.3

30 files

1.0.0

2 files

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