Skip to main content

High-performance Bloch equation simulator for MRI

Project description

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 for MRI pulse sequence simulation.

Demo

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

Ways to use the simulator

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.

Python package

Install blochsimulator from PyPI with 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.

Documentation

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

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.

Installation

Method A: Direct Install (PyPI)

Recommended for most users. Package is availabe on pypi.org.

pip install blochsimulator

Method B: Python Package (From Source)

Recommended for researchers and developers.

To run from source, you need Python and a C Compiler installed.

👇 Click here for detailed setup instructions (Windows, macOS, Linux)

1. Install Python 3.9+

  • Windows:
    • Download the installer from python.org.
    • Important: During installation, check the box "Add Python to PATH".
  • macOS:
    • Download from python.org OR use Homebrew: brew install python.
  • Linux:
    • Usually pre-installed. If not: sudo apt install python3 python3-pip (Ubuntu/Debian) or sudo dnf install python3 (Fedora).

2. Install a C Compiler

Required to build the fast simulation core.

  • Windows:
    • Install Visual Studio Build Tools (free).
    • Download from visualstudio.microsoft.com.
    • In the installer, select "Desktop development with C++".
  • macOS:
    • Open Terminal and run: xcode-select --install.
    • (Optional but recommended for speed) Install OpenMP: brew install libomp.
  • Linux:
    • Install GCC: sudo apt install build-essential (Ubuntu/Debian) or sudo dnf groupinstall "Development Tools" (Fedora).

Steps:

  1. Navigate to the directory where you want to install the GUI in your terminal.
    cd /path/to/the/directory/
    
  2. Clone or download the repository.
    git clone git@github.com:LucaNagel/bloch_sim_gui.git
    
  3. Or if that fails:
    git clone https://github.com/LucaNagel/bloch_sim_gui.git
    
  4. Navigate to the cloned repository.
    cd bloch_sim_gui/
    
  5. Install in editable mode:
    pip install -e .
    

Verification (not necessary for the installation)

Test 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")

Method C: Standalone App

No installation required. Recommended for non-technical users.

Download the most reason version for your OS in Releases

Activation (MacOS):

In case of the MacOS app, this requires you to manually remove the quarantine flag that macOS puts on the downloaded app. Only perform this step if you trust the distributor.

  1. Unzip the file and move BlochSimulator.app to your Applications folder.
  2. Launch BlochSimulator from your Applications folder and dimiss the warning.
  3. Go to System Settings > Privacy & Security, scroll down to the Security section, here you should see a message "BlochSimulator.app was blocked...". Click "Open Anyway".
  4. Launch BlochSimulator from your Applications folder.

Alternative Activation:

  1. Unzip the file and move BlochSimulator.app to your Applications folder.
  2. Crucial Step: Open Terminal and run this command to fix the "App is damaged" error:
    xattr -cr /Applications/BlochSimulator.app
    
  3. Launch BlochSimulator from your Applications folder.

Usage

🚀 Jupyter Notebook (Recommended)

You can launch the interactive GUI directly from a cell in your Jupyter Notebook.

You can also export the selected GUI simulation as a notebook. See the spin-echo reproduction and spin-echo analysis examples.

# 0. Install from PyPI (run once) if not done before
!pip install blochsimulator

# 1. Launch GUI
!blochsimulator-gui

Note: This works if Jupyter is running on your local machine. It will not work on headless remote servers or Google Colab.

1. GUI Application

Once installed, you can launch the GUI from any terminal or shell:

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

2. 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()

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  # Random positions in 1cm cube
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'])

3. 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)

4. 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
)

Desktop app build (PyInstaller)

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

Note: 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 OS is required (macOS build won’t run on Windows/Linux).

Prereqs

  • macOS: Xcode CLT; brew install libomp.
  • Windows: Python 3.8+ and MSVC Build Tools (for C extension).
  • Linux: gcc/g++; ensure libgomp available.

Quick build (any OS)

python -m pip install -r requirements.txt
python -m pip install pyinstaller
python setup.py build_ext --inplace
PYINSTALLER_CONFIG_DIR=.pyinstaller pyinstaller bloch_gui.spec --noconfirm

Artifact: dist/BlochSimulator (single binary; .exe on Windows).

One-liner helper

./scripts/build_pyinstaller.sh   # creates a venv, installs deps, builds, packages

Run the packaged app

  • macOS/Linux: ./dist/BlochSimulator
  • Windows: dist\\BlochSimulator.exe

Runtime data/exports

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

Theory

The simulator solves the Bloch equations:

$$ \frac{d\vec{M}}{dt} = \gamma (\vec{M} \times \vec{B}) - \begin{pmatrix} M_x / T_2 \ M_y / T_2 \ (M_z - M_0) / T_1 \end{pmatrix} $$

Using:

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

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 the .so/.pyd file is in the same 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. Currently (01/2026) it is unfortunately not available. A python adaption of this code can be found 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

Contact

Luca Nagel

Appendix: File 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

Project details


Download files

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

Source Distribution

blochsimulator-1.1.0.tar.gz (510.1 kB view details)

Uploaded Source

Built Distributions

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

blochsimulator-1.1.0-cp312-cp312-win_amd64.whl (379.0 kB view details)

Uploaded CPython 3.12Windows x86-64

blochsimulator-1.1.0-cp312-cp312-win32.whl (366.3 kB view details)

Uploaded CPython 3.12Windows x86

blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

blochsimulator-1.1.0-cp312-cp312-macosx_14_0_arm64.whl (635.7 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

blochsimulator-1.1.0-cp311-cp311-win_amd64.whl (382.4 kB view details)

Uploaded CPython 3.11Windows x86-64

blochsimulator-1.1.0-cp311-cp311-win32.whl (371.6 kB view details)

Uploaded CPython 3.11Windows x86

blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

blochsimulator-1.1.0-cp311-cp311-macosx_14_0_arm64.whl (637.5 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

blochsimulator-1.1.0-cp310-cp310-win_amd64.whl (381.5 kB view details)

Uploaded CPython 3.10Windows x86-64

blochsimulator-1.1.0-cp310-cp310-win32.whl (372.1 kB view details)

Uploaded CPython 3.10Windows x86

blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

blochsimulator-1.1.0-cp310-cp310-macosx_14_0_arm64.whl (638.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

blochsimulator-1.1.0-cp39-cp39-win_amd64.whl (382.6 kB view details)

Uploaded CPython 3.9Windows x86-64

blochsimulator-1.1.0-cp39-cp39-win32.whl (372.5 kB view details)

Uploaded CPython 3.9Windows x86

blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

blochsimulator-1.1.0-cp39-cp39-macosx_14_0_arm64.whl (638.7 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: blochsimulator-1.1.0.tar.gz
  • Upload date:
  • Size: 510.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blochsimulator-1.1.0.tar.gz
Algorithm Hash digest
SHA256 cd3a113c65030a149bfe8df5acafdf182b7143301af59b5a5d92a5acc58cfb0f
MD5 bd12b9133245c392923005b245764e06
BLAKE2b-256 d71f7f2e268f093de04070fad92717d4e54f886630b0016369398aa04e594554

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 922c784afd3e6a675de6d5f2c03c4cf5eb18bf02e0ee3e80fe132b8fbb8fd7d1
MD5 8facbe409e69817cbce15bb98b8e476d
BLAKE2b-256 ce06a7f03bc4d2b21081c31384e8955e653058a2d7ee68da22c4d88ad3cac5cc

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: blochsimulator-1.1.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 366.3 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blochsimulator-1.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 69cad34102aa8d7950656ecd5f35ef5faed11580b7b5f424055853e1b31379f9
MD5 6459d860cee87c1a990da9f8bc85b717
BLAKE2b-256 fc5ed43e7dd9e60c9a3d2b7b4062a2c2512d9c0e5ab66360aa6c3c400c116435

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f49702906cd9482b91fc20b791da0f7cbb936ed16d9cf2a1ce32b1ee76baccf1
MD5 7ce3181cba6955720b4a891c99272a78
BLAKE2b-256 f968d19a4bb09e6e68c04f930d863de0c675f75e6a66b76217111f7386462fbd

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ed9d531fcdee70745c41185d8d9409aadde313e34903e55dbc70f3112c44c227
MD5 bd5bc8d8f39a66c0d6a578c12f959983
BLAKE2b-256 d7950406f726332270d7450a36cf0fefb1c35387139add1bdcda7fdc292b6a2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f7f3eebb1f55bf9ecd0fb1b3326bb90d2cfedafd48390488ac079a64a19fd665
MD5 4492b621f74ff926940118aa9d911dc2
BLAKE2b-256 c481bfd24b79417704158a4f1a1acbf5990d1964ab00c40c76fbff15fc9ca33e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 30dc009d2a80fda6b2cf093e017216d965241baf4e9db8650c4482fae3f8727f
MD5 c97b1f8b4889ced3d5bf8a6e52640a16
BLAKE2b-256 abd21baca18c76ce45a2d8ff34d268989a83be4b415b0f96687c7f685f57e5de

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: blochsimulator-1.1.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 371.6 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blochsimulator-1.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 563ece02a52cc979720598b95d0be56c183b2b5ddd1ba5ff53ebd22e9858956a
MD5 32b54bee6b7c6fcf7e73375621e0d24b
BLAKE2b-256 ad744a765510c40c19c4ec6fa1ab3387890db551b7fd948b376206bb81715056

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 583312ea8c1c9bfc5da2fc3bf729ba84d6a8632cd727b16fb19748ee280c0c6c
MD5 ed160daf9f2bb6283b2e68b82ce461e4
BLAKE2b-256 2ca0c0258343b1b53661a3f46f398348ab4c840c46445e2c29f2e025cbdf107c

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 35082fb03380f44565422d41e05d8b12833cbab80c4c245798177657cef82973
MD5 839b980d39cbf34114fb2a35d6113c69
BLAKE2b-256 c99f8b9385b53fded7e9414f37e27df07aca78525f877ee0fa94ca0f6e578243

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4911fe72cf62e7acbae410576873e5feeea7b5b4e032267f7e6c8edaacfae8c4
MD5 1832ae276858a32f5b67b9bd4457ab0f
BLAKE2b-256 c728a0037daaf1efb7a6593a532bdf014f0a03cfe4feba385282d9dba97f32aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 742beaad561b5a5c0299928b538df484700c8b03d8a947693f5d36974d460e2a
MD5 0543fff2e91df47cc6d7547fd32b0b65
BLAKE2b-256 c67821fbd58fae6c1cb1311c84b94dcf82549c77b068996cedd48df9bb9d6ad7

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: blochsimulator-1.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 372.1 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blochsimulator-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e39dd4b176627f232f3a61d0565a90216031033a5faacad7729703daed077669
MD5 ec1a3551a5ad380d8817863a868ea8ac
BLAKE2b-256 e0db0e9712462e3113aba74612ed141cee98d2b6d9eb318093715b61a4521e05

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 890f3cd40af0f533a994f20e5a80bbe7f60e350578d441c527fe0feef55750cc
MD5 1dcb2da7efc7dd857e675f7b66ed7caa
BLAKE2b-256 f076c8b9ef357a28915c4bbf912234f7bd011c3da27c7b0226831ee3988f1336

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 590d3751f4f801d8c5ace4f5d7ac15acc0455e2fdcd04e6eb1107ab2950e030d
MD5 53ad02e825f36970090c0ec5939eafc9
BLAKE2b-256 2bc77f7d342866399330a60820359817683d48b76b513e42e4c2b953e4eeafac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 63129d979a70275a6453fef29ac0ba6f17397b533c77fca2d55b1791e15521c0
MD5 333510e2bc54f0e2a891ee9ee17f105d
BLAKE2b-256 0730fe57b336295a7a745ed7dd0b4aada8bd8141e05cfb0d00c39db35da00a4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c8d88a63b865f6bf06f68696a32c0cb5cfde96400c05e6f7a5b933b0abc13b58
MD5 18daa2fda61f691a7fb31252ed61522a
BLAKE2b-256 336062b1be248ed3c368cb9311ef4a8d7565cf72cb4fc97247e1e7164ceae1ee

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: blochsimulator-1.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 372.5 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blochsimulator-1.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a0e3b899e44f0011ed4a546186444d4a9138cf8dcf32fc63766fbd9a1f418f7e
MD5 11002ae602b4dda30b3a2cc2f44c6e47
BLAKE2b-256 de20d75a2bad152d506911bb25248d9c8183860e847d0a4137efec6b7efa2bea

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9460b0f4321d79d039118cb2871171f6bd54db864daae85bbcb7aeeb3000b072
MD5 85a68191936384cf6a3dbb8979e06b2a
BLAKE2b-256 ce4835cfb380a10796867f88e8e4f2433f25819d6cd4545acc11004d1f1e188f

See more details on using hashes here.

File details

Details for the file blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 41fb1116a502c47e8f52b0dd7da5bdcbca824908cc696c30d5deaa9a71e08dd2
MD5 29f210f8884c932d55dc990babffb6c5
BLAKE2b-256 d74dd4657b536b3f678c4a4a1a390f6d9c41b659d59a34553f5ed710da71eebb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.1.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c034c0b569b23c97348db447bdf91804745f7c2384f77f5a203170ca3a94bb1f
MD5 3ac34a8423db15257df786f02c314eaf
BLAKE2b-256 4e41243db63452c8360cac54025f47bf7170e4b295daa76bea99058357fae433

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page