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

Features

The Bloch Simulator can be accessed from 3 different directions:

Standalone GUI:

Download and install built package (.exe, .app) here. Features:

  • High performance GUI for nice visualization
  • Easily modify and live update simulation:
    • Sample Parameters: T1, T2, Polarization level (enables simulation of hyperpolarized magnetization), etc.
    • RF Pulses: Duration, Tip Angle, B1, Frequency, Phase, Pulse type such as sinc, Gaussian, Adiabatic Half Passage, etc.
    • Pulse Sequence: Blockpulse, Spin Echo, Slice Selection, SSFP, Inversion Recovery, etc.
  • Export:
    • Python compatible simulation results (.npy, .npz, .hdf5)
    • Automically generated IPython (.ipynb) notebooks for repeatility and modifications
    • Animations (.mp4, .gif) and figures (.svg, .png)

Python package blochsimulator

Install bloch simulator package from pypi.org via pip instal blochsimulator. Features:

  • Access simulation capabilites from IPython notebooks and python scripts
  • Highly customizable simulations

Online GUI

Access here online. Features:

  • No installation required
  • Simple UI, live simulation
  • Simulate RF Pulse Parameters and Slice Selection Parameters

Documentation

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

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.

# 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}")

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.0.10.tar.gz (374.6 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.0.10-cp312-cp312-win_amd64.whl (431.9 kB view details)

Uploaded CPython 3.12Windows x86-64

blochsimulator-1.0.10-cp312-cp312-win32.whl (420.6 kB view details)

Uploaded CPython 3.12Windows x86

blochsimulator-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

blochsimulator-1.0.10-cp312-cp312-macosx_14_0_arm64.whl (690.3 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

blochsimulator-1.0.10-cp311-cp311-win_amd64.whl (439.0 kB view details)

Uploaded CPython 3.11Windows x86-64

blochsimulator-1.0.10-cp311-cp311-win32.whl (429.3 kB view details)

Uploaded CPython 3.11Windows x86

blochsimulator-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

blochsimulator-1.0.10-cp311-cp311-macosx_14_0_arm64.whl (693.5 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

blochsimulator-1.0.10-cp310-cp310-win_amd64.whl (438.5 kB view details)

Uploaded CPython 3.10Windows x86-64

blochsimulator-1.0.10-cp310-cp310-win32.whl (429.4 kB view details)

Uploaded CPython 3.10Windows x86

blochsimulator-1.0.10-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.0.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

blochsimulator-1.0.10-cp310-cp310-macosx_14_0_arm64.whl (694.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

blochsimulator-1.0.10-cp39-cp39-win_amd64.whl (438.6 kB view details)

Uploaded CPython 3.9Windows x86-64

blochsimulator-1.0.10-cp39-cp39-win32.whl (429.6 kB view details)

Uploaded CPython 3.9Windows x86

blochsimulator-1.0.10-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.0.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

blochsimulator-1.0.10-cp39-cp39-macosx_14_0_arm64.whl (694.6 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for blochsimulator-1.0.10.tar.gz
Algorithm Hash digest
SHA256 e632dcd85893671cff6cdf8b0d07c63d9b7a5231ba517fdd546f154079b07c3d
MD5 f2029bea60d27fb5cfeb33b35b14e755
BLAKE2b-256 fcb39e7efffabf4c9b8509531edbec15cb144d9b67b9f5b4346c7d44ad6aac6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8dd245217e98f6c0b9f3ee284728800b8949a56c3e345bd0583779a49b590e7b
MD5 de7ec4d8de9ac234b85eb126f72a86fb
BLAKE2b-256 1bed327e89810f6e5bee7f359116b9c18bb787200ae4bc2c017241db3871ff0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 b696ec65ea84fafb9fb19268eb3ecfe11888991d8d60c28e5e523b08f01445fe
MD5 26361bf1fbc25c6e7a247b8778e336e5
BLAKE2b-256 8faa717ba17b4829f4c4fc6378944f76f73b8a39adbe4b01ccb69119d4782fdd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2dcea1f40b64a648417adf1dce98e934e01d8165bbade2fac44d03c1679fe5c0
MD5 0d08adde6b665a14a15f0d6b5fe1a119
BLAKE2b-256 7287a2ea59ed520071077b26ce8a13d089a54f2674238f2b666e81d03f917f31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c37434a8f7858e0b5c9449cd785f5ee7efb62981166037b2711cefbeeb6bd066
MD5 d31bac6c89b8d61e4cccd1a688ca9ccb
BLAKE2b-256 890fc8863dff970462b34bc9160001f56c00b70d2ccc8676b1e897d5a971a306

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d9c8fa4d0b76ba360c3f102c143af3d8aedbe3b20e8534e53c9588ad582d0ec5
MD5 4329f4b1037d2119136ebdd5472d6c90
BLAKE2b-256 b3103e3c225d2d0b0a9022da33aa4ad0c58897b50c4a335b6fbcbcaec7b29312

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cd4319c3ce96aaa7cca8340a34eef016145d24d9f1591d2f4cc46b614f27fa90
MD5 791132774ccfa117181a0e7476ca16ff
BLAKE2b-256 5b43d670e1336550e654bb86c6d5766f063146402e16748276c2b2a333ae7376

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 18992fbcf3b5776ca954e49d755dd4dd508052905d07ddb3696d11f0b426945c
MD5 f69f7e56080f7f21f275c86af9e576c8
BLAKE2b-256 eb793527b7301beda388ae07dc03c67a4816dec29dce66ca964bd7d7e563f681

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b48be6ba6ae68ae2eacda2186d4c625005f0fbc285b45ef1faa587fa603cdaf3
MD5 992253d4003f98d792abdb2cda483a47
BLAKE2b-256 af393caa315be72cb5eaace256e236ab911f1baa4428c5d8de91067539fd59dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 31eb2f2f6c5b5717155cc3157f227c513b1d605acbbc289c6767ae3d881e1457
MD5 314cca0f30bf679067f94e24e4d09e96
BLAKE2b-256 384f675923a4a640e6d89e05f192c22984ef007ba908403157dc0a7c030d142f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 86d668c77f1fb7844ddc519f7553a87283aae6a2c43abdd9101c2e75d76c07a9
MD5 1c4ac6a457dc4037e21211ac9c3362c2
BLAKE2b-256 f8c41be2310673b8059f3acbdd7601b25ee01f2d80c38db20226e73158eaa23d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bc58cda7ce7ee2a78f5d9385ccb71d1a82573195dec518df2f83f656cf23aa56
MD5 2633311580d93139ccf27f1a53d0d91a
BLAKE2b-256 9192a8ffbbb547f8a320f029f1f6b745d084e9f94312f4abcc0d90272aa86167

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7a90372620688e01a5c0f92328de41a97ffa0be92967a5e6ac6b9d6cc2afa0f6
MD5 aa977c1c9aee666efeee0ab4c5746cfd
BLAKE2b-256 0ad8625d4a050528b5d49a4544913d2e0a715f8bb30e27a4e0fd6b5ce745f364

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53d6d7bbd740217295cf9eac2a3f0f9f4b3d5df2fb69577effa7ddf08dcd579f
MD5 5cb768de9846af1c555b2045faded56c
BLAKE2b-256 8fa1eb720d6ebe66f38f49740471a437c9801ae0f7d6369bac1bbcfb6cd9f135

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7447dfb560f91a2bfdb1edb4288a44339fe4bcb55aa5210d031b4f744236b3b9
MD5 f94125ff5dfa9c102bd37f50418d37a1
BLAKE2b-256 6e8327150469d7f8e63f8924d7f1a76daef9bd24d03b9181350023874e6b5715

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 443356de482135d80e5f276b38815c6bed28650a078e78332620b8262cd7d92b
MD5 4e6f7ab47023ac2f274905625a9337b3
BLAKE2b-256 fe815d4530d4056537706bd72b43a5817eee79eca41905b019e039d14c1dc29e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 dfa1485a37b10849f0f1828bccc45a689900eba1689e77e03de53c474156d6c4
MD5 0008797db4c96b49308a4b1359022e77
BLAKE2b-256 b96cb4a702c09874eafc2cef1f9ce9c4455d55b81421621d4a26e7d2eb16446d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for blochsimulator-1.0.10-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a275f0832aa06a030e2046b7550ba193b2b0488c1560e49f77bdfa09d7258b49
MD5 34215a750c99c0a8ebae9601b691d4a5
BLAKE2b-256 cf574e2cdd256b41363001f5d0c566629059e403abe6fed6d57919cf0cffae25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42a76389378bad988b3bfb143d9050822b5abe3687a215bdb3e67075b954a773
MD5 bd92f6a8fecba9d0901ce44c3978893e
BLAKE2b-256 1446e288e319c35931a45a9334414b61f5ab38299d67f8b90ac8bda04bcb3b44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cd8dd0adfc58f86d28e0c140ade9d3a8a447f3f9de93e7fd1bf9e3bf44342024
MD5 243d50d2bf7c80e23e7f964fbe12584c
BLAKE2b-256 593d694067050e891c8c0f37d1546db1ed892d28e033be7893ee2b04a44457d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.10-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 474f7e3434ae28fe240264e6a912dbfa72fa21c3e5c15c59a45c5664b5d79aa9
MD5 1fbb788d38fd7b3e7dba16aa1848032c
BLAKE2b-256 31a76fb942cda29497c229308d78bd6dd885529af500e322c62915f4f5bfd04d

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