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.12.tar.gz (295.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.0.12-cp312-cp312-win_amd64.whl (350.6 kB view details)

Uploaded CPython 3.12Windows x86-64

blochsimulator-1.0.12-cp312-cp312-win32.whl (339.3 kB view details)

Uploaded CPython 3.12Windows x86

blochsimulator-1.0.12-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.0.12-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.12-cp312-cp312-macosx_14_0_arm64.whl (609.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

blochsimulator-1.0.12-cp311-cp311-win_amd64.whl (357.7 kB view details)

Uploaded CPython 3.11Windows x86-64

blochsimulator-1.0.12-cp311-cp311-win32.whl (348.0 kB view details)

Uploaded CPython 3.11Windows x86

blochsimulator-1.0.12-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.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

blochsimulator-1.0.12-cp311-cp311-macosx_14_0_arm64.whl (612.7 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

blochsimulator-1.0.12-cp310-cp310-win_amd64.whl (357.1 kB view details)

Uploaded CPython 3.10Windows x86-64

blochsimulator-1.0.12-cp310-cp310-win32.whl (348.1 kB view details)

Uploaded CPython 3.10Windows x86

blochsimulator-1.0.12-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.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

blochsimulator-1.0.12-cp310-cp310-macosx_14_0_arm64.whl (613.6 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

blochsimulator-1.0.12-cp39-cp39-win_amd64.whl (357.3 kB view details)

Uploaded CPython 3.9Windows x86-64

blochsimulator-1.0.12-cp39-cp39-win32.whl (348.3 kB view details)

Uploaded CPython 3.9Windows x86

blochsimulator-1.0.12-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.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (999.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

blochsimulator-1.0.12-cp39-cp39-macosx_14_0_arm64.whl (613.8 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: blochsimulator-1.0.12.tar.gz
  • Upload date:
  • Size: 295.1 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.12.tar.gz
Algorithm Hash digest
SHA256 8afee7948e8700cb4b388febe85aaa1c82edd369257f10ed46880942f0ba387a
MD5 c7d1f0183202580a0962453b07e898b2
BLAKE2b-256 32862760ecf583c62f42d1aa4a17af9a5b01e8970d9552f429b1d574362c7003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 24ba86a4470790ee35c264c7c0f5af3875cdca1df1beea24711788a2adb7f0f8
MD5 1361d38b7855a458520ca187a287a587
BLAKE2b-256 fcb7edb93a4b408b9f8837b92af24f07493b403401f80131bc226b9ad92958e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 9e6542ebb0feb95266961c1a0db45d15f0a459a01c6d6d6934cce166d8e1355d
MD5 14526bfd12b986d8872f2b0f56664af4
BLAKE2b-256 11338b8b3c16bd5c8794acd96721d63ed021461aed9feb3a07ffbb46615aac3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 452c518faf8049be13b47940fa60254a1235839cc7886f064c397eef0d88bcaf
MD5 360508af9121e6f7b7529885df0dead5
BLAKE2b-256 04bffb2e623e1cebbdbf560b8db4211ff2570de218750f9ad977c1e1ad2e46e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 57b1bb5d040e897808185a41db1181f92ec4008180dffee7b8a8cbfb55d9be81
MD5 d44938a21408add9be81ba4a5d0f4f05
BLAKE2b-256 36441cb3afde1eb7a0ee0a8eb3869e182e8934abffa7a520d23ed989c225473a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bcb8106ee16cde52fcd9891a467d75d95cff095a038aaf69464b12bdeff9bc75
MD5 aab2be49ca707721f2ba19779544f38c
BLAKE2b-256 9faf4299b473e60210c2dadc36f6d7dab16a7e3267241bbdd82b47800da9c941

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 74bd6ec501eda6ac8abe57c2d12b6404149c2af0ea4abe080e93f8aefc88dd0b
MD5 12652107e49f17aa57ebae40910110fc
BLAKE2b-256 df2114edca5fb6c02d612570e16a33db147d24446e92b54f697ff2c4d693db1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 38199971cbd6fd56e099953c326b35f5bf0b01ab2874ad3683290dca3e94f4d0
MD5 c9c17babd76fe7486bb1725b21801a16
BLAKE2b-256 9ac90316e5729a04a7b114f2d297fa83904cbd9817b92d121cc3775bfccf71ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c77df0c1be919e19001c3c226945f4d35d6ed711cf9335c9ce2f41984d563f3
MD5 d4951953093b791d2c2a7b13acd013a5
BLAKE2b-256 6587889daab864bf5eca61a2062f5020a804c8d555d26f2b988b32806daa969b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0d198478cbc45f733e83a8772e0bcec9c5fcbcaca62d219540fcb6dbfb1f2523
MD5 5d7ebac3f653364b9b1ac30e010a0d15
BLAKE2b-256 a319a15fe52c1efa5a2e66775768a25800c099dda0179b688063139d3910cfd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9d8b21447562fdeeb7c41806a697971edead527e4eb0d6e3677dc75872a6b8ab
MD5 623cc535b0fe2d946ece7cda51151a59
BLAKE2b-256 b6d4ab2e4fe3f5dbaaeefd543ccc909596e65415cf12e582889e0d720a491374

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a1595f9ffeb47db7191c59fb9e8c8604176c065c6d39d35cc94facbe42edc6e3
MD5 2b384c313cf26ac670ef865f1ad6e9d4
BLAKE2b-256 3264349e1b3996e74b3443bc2aa9c3a1c4f3de9048c8291b2a2ed3f8967e9f48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7d41bff9b9df1dc3e33ad37d0eeac92ced99432544b0c15eb9e1934bd828fb8c
MD5 6a583b14432160111cef7ddb8daea22d
BLAKE2b-256 e68787a8d466ef25dd778b22dcff09591dc1c362466a6b278dbe7c1fc1b1d5f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1db183fda80606c7bfd5309ccd4ee2c952a95f5a4a7652c027cdfd77bce305a0
MD5 e49a12243b3dac46ba1d33c184328e75
BLAKE2b-256 c4affeeb5d176705b810d0085d9cf3d14ba76854ad126fd68d17a73c2a4fabd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4adace81389210a44439f34e1675a01c19afd2d94612c27d5585e0c382256ba8
MD5 0fd31b78ca303be2745d1759a1f1cfa6
BLAKE2b-256 141350207087d47c0651c5cc56be82ba6e328f246ae30721ef89a6a0d849427a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 26324721da54254ebc36a48c832046a1ff206d4ed07e33f56beb5bd37e06d545
MD5 034bd252af9beb2f1ceb0feb3833c25b
BLAKE2b-256 395b56c8a04f1a5c3f3062db1dfe825ad3aa03965874951c13bc237f8fd9a7fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1d13f694afd5427f658d7a85435afa95a3f9cec1edd2d4c25f2e7af151914d8a
MD5 ffb0a7da2a434c08270d352bb6caa7d3
BLAKE2b-256 0837cf35124418b96087295e14734e6049c3cb4a07cd8bcbb8389d203ffca687

See more details on using hashes here.

File details

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

File metadata

  • Download URL: blochsimulator-1.0.12-cp39-cp39-win32.whl
  • Upload date:
  • Size: 348.3 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.12-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9679fe2ef20f3f7120072b9e9de261adec07b8cce7c252ee35925fcf6d6e8d32
MD5 658f0332ac82fd3c40d98ab4d771ec5b
BLAKE2b-256 e4310b4e9ca6db48f3d37b40cee4844c015a69b989a26dc4579789b5f0f8c586

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f4dbfd1aaf00a43daf216fc1c5d27d9b2307b0f110a722e41bcf9344bc94779
MD5 9c838c31be71d026ceb5f11d715b2a20
BLAKE2b-256 a31f77a4add8be012d92bdd80fc133b2bcc36cefba13f5cdc7e2ddd0a1caa6ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1138cabb467091df305f5b082cf67f90cdc66d854cca17150e500485d7f82605
MD5 eb22634295d95111e42e4e8d56efc5c7
BLAKE2b-256 b7c01fb0058c8e5060e60b233b9ece6e1edecb82472c4270fce50b7be0b01a83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blochsimulator-1.0.12-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 83f4bf944df341538736c5c3f9120ea1af68b5a1ca775f80c1247074152dcc3b
MD5 e0bde39200b686134db77247cb7a8ded
BLAKE2b-256 033e9d25e1ba905c08a8e5b4350794d7ef2689dba388856791060626ca2b8810

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