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.2.tar.gz (980.3 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.2-cp314-cp314-win_amd64.whl (884.2 kB view details)

Uploaded CPython 3.14Windows x86-64

blochsimulator-2.1.2-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.2-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

blochsimulator-2.1.2-cp313-cp313-win_amd64.whl (875.8 kB view details)

Uploaded CPython 3.13Windows x86-64

blochsimulator-2.1.2-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.2-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

blochsimulator-2.1.2-cp312-cp312-win_amd64.whl (877.9 kB view details)

Uploaded CPython 3.12Windows x86-64

blochsimulator-2.1.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

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

Uploaded CPython 3.12macOS 14.0+ ARM64

blochsimulator-2.1.2-cp311-cp311-win_amd64.whl (880.4 kB view details)

Uploaded CPython 3.11Windows x86-64

blochsimulator-2.1.2-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.2-cp311-cp311-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

blochsimulator-2.1.2-cp310-cp310-win_amd64.whl (879.1 kB view details)

Uploaded CPython 3.10Windows x86-64

blochsimulator-2.1.2-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.2-cp310-cp310-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

blochsimulator-2.1.2-cp39-cp39-win_amd64.whl (880.4 kB view details)

Uploaded CPython 3.9Windows x86-64

blochsimulator-2.1.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: blochsimulator-2.1.2.tar.gz
  • Upload date:
  • Size: 980.3 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.2.tar.gz
Algorithm Hash digest
SHA256 45184990310c66a870cb22387a2354ac086362b35128974e86cd488d437ad183
MD5 214736b9c416b77ee9e08ea0a7b4fca3
BLAKE2b-256 6a9381529283de09465bbd056a2a7481274bef257256a4c6064840a8180ca9ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 90aed5007bd8d52306b56ea3938ff308cb6d8a994b63e04bfafe799846af3e3b
MD5 067dedbceddb25c0b2029d7f3174269a
BLAKE2b-256 0f0c6f48dd3270ad112e0ef452b305550e9806a29929eb767cb9d223558f9d8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1bdf4009b8fd5e358dc8ac84109288d64d37756367fcfc2524d39349be37938
MD5 8caa2c366a245621180294dc3b2ae56a
BLAKE2b-256 c00121f1fdd6bd0f1eaeb5601227abfc3d2ceaaddba07037e239fca3f4f3ffa0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7c67d827bd285ccb35a850e206c86b457a196cfc46bb650040a89edec307ee3c
MD5 5bfd4bc8939927d73884c265e35e9ab2
BLAKE2b-256 845578e5171d88d2414fa6dee2f30a2d6b4a45a8559d001eb9c148e6e43d65af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 56f28a3066c0b496c8cccc947603952d4f798c3130e7b1c1644c621eb80658af
MD5 3b4638d2342a2769cb0c9a758e699b95
BLAKE2b-256 0ff3be57d1fa0ed5ef52020229f1a3d75a15d68d30645ccabcb00c5f62ff5996

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc791297ed630a7c3256502ae1eab6cf979cc52cc3087af3d7eb822d213da462
MD5 3ec939ca986ab9bea5c342f1c0aef74f
BLAKE2b-256 c9a5fc4e2cfe7e5bb07590e061e21fc700632a80b43be40f38a2b0099cb3c7f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 03a90e94a37008f08d7ef0829484d8dab680f964832efaae5b746fb049be4736
MD5 99cd5ccdf0772f0b1969db269c395b14
BLAKE2b-256 4ec073b61facb561f0840b4118fe2dd6720b49bbe8dd00ed270f2d48a13d6fa8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 40478b2ea6155e2ee6d5db172a8eef0c24134b31995c992ef54d7e649e9b0b6a
MD5 64791217146a8264fc938601752a808f
BLAKE2b-256 3fd1c5649f4636d6732eeb9b9a4947fe1abf0887c9587abd88898c0764ed3bc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7dae675c25bca6fae0f58385f31e18955562bce7e4c7be502336f524a8b63213
MD5 68ab7aeca2785d997085b3a4275c0c38
BLAKE2b-256 ccedc163d0b7fea644b208fd20b8a00c276c030f84013c0112843adda81548e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 22898fae9295ea3db2cce4a7c30d36afa3573ab673c903f66091455def1e04f3
MD5 448072f843602582631a09b562128817
BLAKE2b-256 1d44a2933f9034f7afdfa1391a29f159cbc9e3ff7846736857a057cbe9d464b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69181ffa464b76da13e192bee7fc129ad6a52ba390e042466a65f02ee390b667
MD5 251eec80acdeca93c69d76830d211c71
BLAKE2b-256 bd816358e3327f6ff422f11fb211c403548b5ffdd1bf57d7a93101cb57513046

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 873c9f530abcac6dc783dd2b433dd4c0bbd4ba1445aba895ce28e0f5eda57d33
MD5 129a7ee02dbb78790162bcd0c8e9b22a
BLAKE2b-256 10cb805c3456ac40fc58a3ca274aa32a4220387c49b1c3a8f8795c5c99ce6c41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4c38b9546bdf4a22e3072090adf7b3a7685e4fc1f4ea6b94f544fe899f0d33db
MD5 db727bb2ed932a085884032474690fa8
BLAKE2b-256 2c51e90844e2572e20c22c8fdf4788183233db664b066452e6a8e8227acad1bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 af1dfffe223e9bfc0aefe031b84fcee3b8c50bfb7c4aa7fbbc39647617b87430
MD5 d73fe7d2ea9a6e82c2f65be2ef60c53b
BLAKE2b-256 af9ad360fe500a7fcc5cf3972796b1905f41e25b72030b698f1934a0d76354ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 446fa1a1c1778c41d14e51d37d36fd9736434f92c3ce1fdb56dd14191127869a
MD5 c94bdf73135bc3a6b11ce5be8178d23a
BLAKE2b-256 0676b8466da8af6d729ad519b4cf4a493f28e4bd447dc664ed9884a9da9d3013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 16237ff117be637b9f2d6a85960321da4fa5f3f8dce3757e4b92481de2c7a123
MD5 812b2a63aa642f954e8dbd46682bb437
BLAKE2b-256 e60a7b3816a5de9278a1c39a7770f7221ba1e1aec9903d9932ded7f6f0eb148c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2b71e228fa6dd7fd59074422874bc0b8fbbe92d2b6f2ec66b56cb900465e8135
MD5 d1a6e4395dccee2dbab44f1cac96d145
BLAKE2b-256 b36160b1e422fc7d6099ef4e5e83f873d5eec5cbbe5609a9986dcaebc256b643

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12b618870d0f7260942ae0612504cfe148c36665068055018af2506e7dba174c
MD5 7c3c16aa0b24da36f377a6fde2a7c069
BLAKE2b-256 050777676c41f4c7583d5eb893a96b1c317e009e3ad09444d3945f4f384c7a2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-2.1.2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c7b04f330dd194ce55d6e5118368c3fe16afbb06e67f80bfc450248380dfbfe5
MD5 41ef158219ebba7b692f781a30388b22
BLAKE2b-256 1531405fa8e4b1e933079614667a805c963d5d5b1118078f0aa465f959a9f6d5

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

This release

2.1.2 This release

19 files

2.1.1

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