Skip to main content

Bloch Equation Simulator for Python

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.

Download:

pip install "blochsimulator[gui,pulseq]"

or already built on GitHub Releases

Demo

Sequence mode

Sequence workspace

Sequence Mode: 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

Free Mode: Demonstration of a spin-echo simulation.

Features

Simulation and sequence design

Fast C-based Bloch solver with parallel processing support. The GUI can be used in 2 modes:

Free Mode

Free mode lets you investigate the behaviour of spins over a range of frequencies and spatial positions. Good for education and learning MRI concepts such as off-resonances, relaxation, basic sequences, rf pulses etc.

Features:

  • Endpoint and full time-resolved simulations
  • Configurable tissue properties including T1, T2, proton density, and initial magnetization.
  • Parameter sweeps with final-state or full time-resolved result collection.
  • RF pulse design for rectangular, sinc, Gaussian, adiabatic half/full passage, and BIR-4 pulses
  • Sequence support for FID, spin echo, gradient echo, inversion recovery, slice-selective excitation, EPI, and SSFP.
  • Live magnetization, signal, spectrum, spatial-profile, heatmap, and 3D-vector views.

Sequence mode

A mode that lets you load, generate and simulate Pulseq .seq sequences. In addition, an interactive 3D phantom and B1 Tx/Rx designer is provided.

Features:

  • Internal FID with configurable Block, Sinc, Gaussian, SLR, or imported RF Designer pulses, flip angle, RF duration, phase and carrier offset. Set the complex FID points per repetition, sampling bandwidth, ADC delay, receiver offset, repetition count and TR. TR is measured from RF start to RF start; Shortest possible fits the pulse, delay and complete FID. Magnetization evolves continuously between repetitions, without resetting, averaging or spoiling. The sequence ends after the final FID. Use Generate sequence or Live preview to refresh the timeline.
  • RF + Slice Selection for full 3D excitation volumes immediately after a pulse and its slice gradient, with optional rephasing and direct $|M_{xy}|$, $M_z$, and phase inspection. See RF excitation volumes.
  • Interactive generation of Pulseq bipolar or flyback EPI, centre-out 2D spiral, 2D EPSI/MGE, 2D CSI, spoiled 2D FLASH, Cartesian 3D bSSFP, alternating-frequency spectrally selective 3D bSSFP, and Cartesian or spiral-phyllotaxis radial 3D multi-echo bSSFP sequences, with export to .seq files and reproducing Jupyter notebooks.
  • Multi-slice inversion recovery (global or slice-selective inversion with EPI, gradient-echo or TurboFLASH readout) with a voxelwise T1 fit, single-voxel PRESS and slice-selective FID spectroscopy, and a compressed sensing module (variable-density and k-t masks, Chambolle-Pock reconstruction). See the user guide and the compressed sensing concept.
  • Sequence presets that store all sequence settings under a name (with an optional startup preset), and a PSF Analysis tab that simulates the point-spread function and slice profile of the current sequence, with FWHM, broadening, side-lobe and slice cross-talk metrics.
  • Spectral-spatial RF design with explicit spatial and frequency target ranges, coupled RF/slice-gradient waveforms, configurable two-dimensional Bloch validation, spatial and spectral profile cuts, and phantom-aware metabolite frequencies. A stable-ID pulse library and ordered cyclic schedule support separate metabolite pulses, per-entry flip-angle or RF amplitude scaling, repetition, reordering, and a coherent cumulative preview. FLASH applies one schedule step per complete image frame by default and preserves schedule definitions and ADC labels through Pulseq export and import. Pulses, schedule, and legacy-single-pulse migration are stored with project files. The native Python flyback method is based on the Larson/Kerr design approach; supported modes, validation scope, differences from the MATLAB reference, citations, and license provenance are documented in Spectral-spatial RF pulse design.
  • Spin Probe mode enables the investigation of the behaviour of spectral/spatial spin distributions during sequences.
  • Spectral and dynamic phantom design with spatial peak distributions, pyruvate-to-lactate kinetics, spatial B0 inhomogeneity maps, and optional time-dependent B0 offsets.
  • B1 Transmit Receive design, letting you choose between uniform, 3D birdcage, 3D surface coil B1 fields.
  • A dimension-aware Reconstruction Explorer for interactive 2D/3D k-space and image views, echo/repetition/slice selection, CSI voxel spectra, receive-coil combination, simulated pool comparison, and known-frequency linear IDEAL estimates. It shows the simulated phantom next to the reconstruction, with region outlines and the composition of the selected voxel.
  • A mouse perfusion phantom for hyperpolarized ¹³C and for ¹H, where tissue water has per-tissue PD, T1 and T2 and a gadolinium contrast agent (DCE, extended Tofts) changes R1 and R2.

Visualization and analysis and reproducibility

Project files that contain current parameter selection, selected sequence, phantom and B1 can be saved and loaded. The tool has different ways to visualize and export bloch simulations:

Free Mode

The time-resolved bevahiour of spins during and after RF Pulse can be visualized in a multitude of ways, including a 3D vector view, heatmaps, spectral and spatial profiles. Additionally, simulation results can be exported as

Sequence Mode

  • Mouse Phantom Designer polarization inputs use absolute percent with the thermal multiple alongside them, based on nucleus, B0 and temperature. Mouse injections use mM × µl and show the resulting µmol dose and fully polarized equivalent. New injections start at 80 mM × 250 µl (20 µmol) and 10000 × thermal, 5.8 % at 7 T and 37 °C; older files retain their original dose and relative-polarization values. The spectral Phantom Designer keeps × thermal and shows the thermal polarization at its sample temperature.
  • Receiver / Noise adds reproducible complex noise from a relative SNR (single-scan SNR of the ideal 90° FID of the whole object, including any delivered bolus) or a calibration from a measured phantom FID: amplitude, noise std, averages, bandwidth, flip angle, concentration (mM), volume (ml), enrichment and temperature. Noise follows each ADC event's bandwidth, so a thermal phantom scan predicts e.g. hyperpolarized in-vivo SNR. An optional reference scan model corrects the calibration for T1 saturation, T2* decay and the B1 workspace coil at the phantom position. Load FID… and Load noise scan… read the ParaVision raw data or complex arrays of the phantom FID and 0° noise scan directly. Its dedicated tab between Phantom + B1 and Simulations shows an SNR budget from the receiver setting through the whole-object FID and each readout bandwidth to the image voxels of the current object and last run. Clean ADC data and noise settings are preserved in projects and result exports. Settings → Interface → Signal units switches the current Sequence plots between physical amounts (mol with automatic SI prefixes, calibrated runs) and SNR units (noise σ = 1 per complex quadrature), without rerunning the simulation. Cartesian/CSI FFTs preserve that noise normalization; spiral images use a labelled estimate from their noise realization. Runs without the required calibration or noise metadata show simulation units. See receiver calibration.

Loaded and generated sequences can be inspected in a sequence viewer. A 3D phantom design viewer in addition to a 3D B1 design viewer are provided.

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

Get started

Documentation

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

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. Was mainly tested on macOS 26.5.2.

As I did not pay for the Apple Developer Program, the app is unlicensed and will be put in quarantine after unzipping and installation upon the first run. How to run it anyways:

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 the full blochsimulator from PyPI including GUI and pulseq skills (recommended):

pip install "blochsimulator[gui,pulseq]"

or

pip install blochsimulator

The package exposes the full simulation API for Python scripts, Jupyter notebooks, and custom analysis pipelines, but no graphical user interface or pulseq skulls

Usage

GUI application

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

blochsimulator-gui

Jupyter Notebook/ Python API

The bloch simulator can be used in both jupyter notebooks or via python api

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[gui,pulseq]"

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

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

Load a saved project

from blochsimulator.project_io import load_project

project = load_project("simulation.blochproj")
phantom = project["phantom"]
result = project["sequence_result"]

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
)

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

Conda environment for notebooks and the Python API

From the repository root, create an environment with an explicit Python version:

conda create -n bloch-simulator python=3.12 pip
conda activate bloch-simulator
python -m pip install "ipykernel==7.4.0" ".[gui,pulseq]"

Python 3.12 matches the project's desktop development runtime and supports ipykernel 7.4.0. Select this environment as the kernel in your notebook editor.

Pip installs h5py automatically because it is declared in pyproject.toml. If no compatible pre-built wheel is available, pip attempts a source build, which needs a separately installed HDF5 library. To use Conda's pre-built h5py package and its HDF5 dependency, optionally add h5py to the conda create command before running pip. See the Conda setup notes for details.

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
  • xarray team
  • 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

Metadata

Release files for blochsimulator 2.9.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blochsimulator 2.9.4
File Size Uploaded Provenance Actions
blochsimulator-2.9.4.tar.gz 2.4 MB Without provenance Details for blochsimulator-2.9.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for blochsimulator 2.9.4
File Actions
blochsimulator-2.9.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for blochsimulator-2.9.4-cp314-cp314-win_amd64.whl
blochsimulator-2.9.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp314-cp314-macosx_14_0_arm64.whl
blochsimulator-2.9.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for blochsimulator-2.9.4-cp313-cp313-win_amd64.whl
blochsimulator-2.9.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp313-cp313-macosx_14_0_arm64.whl
blochsimulator-2.9.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for blochsimulator-2.9.4-cp312-cp312-win_amd64.whl
blochsimulator-2.9.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp312-cp312-macosx_14_0_arm64.whl
blochsimulator-2.9.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for blochsimulator-2.9.4-cp311-cp311-win_amd64.whl
blochsimulator-2.9.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp311-cp311-macosx_14_0_arm64.whl
blochsimulator-2.9.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for blochsimulator-2.9.4-cp310-cp310-win_amd64.whl
blochsimulator-2.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for blochsimulator-2.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp310-cp310-macosx_14_0_arm64.whl
blochsimulator-2.9.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for blochsimulator-2.9.4-cp39-cp39-win_amd64.whl
blochsimulator-2.9.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for blochsimulator-2.9.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
blochsimulator-2.9.4-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details for blochsimulator-2.9.4-cp39-cp39-macosx_14_0_arm64.whl

Total release size: 62.2 MB

Release files / blochsimulator-2.9.4.tar.gz

Download URL blochsimulator-2.9.4.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
b42bb9938bb86bbfdbfca1ab2c2576b9f70e05acad401090dc849dd524115eeb
BLAKE2b-256 checksum
How to use checksums
9171f17c94ddf3973648aea2fbadd2f3f13acb2949837f7a9903316c77236777
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp314-cp314-win_amd64.whl

Download URL blochsimulator-2.9.4-cp314-cp314-win_amd64.whl
Size 2.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
466936b156c6376f6c4a529589505250c90c9cb8f169cc6b519386c5c5a88b36
BLAKE2b-256 checksum
How to use checksums
3149e8cfc772b74cca472a1e66d67991767d599e7771ad20b43280ddbd8640ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cc0c4223d6c7a938e66d612b27c834f844b1ccd68b96e2d71047a9f2df570dfc
BLAKE2b-256 checksum
How to use checksums
0047cdbb0414d656af8b77530af583aa06d658a38ba19d5292935955316aba5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp314-cp314-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp314-cp314-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9a35190a1f75aaaed4d0b191df0d13f21601bc469d157cc546eec62f92c399e9
BLAKE2b-256 checksum
How to use checksums
a7dbdaddd532e74a1ca7ba239fdc38e384fd1ab0fdf69d8701ec602a70581d48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp313-cp313-win_amd64.whl

Download URL blochsimulator-2.9.4-cp313-cp313-win_amd64.whl
Size 2.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0ac8baf0cd0cbb219c8609b7b8bc563c3287bfbe0b89459528ddfd9a0bd144cb
BLAKE2b-256 checksum
How to use checksums
e4f002a3128ebc2f5054db6ca96ae63b4d164eb56e4d13054cf5b4f65b1d8059
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fcc7874a262c531009853f2ca57c8b4ec17e7f4a31696e15be2fb1ebce22af38
BLAKE2b-256 checksum
How to use checksums
25ebd4731746be6002ad9e33b78346555b6509f5eed3a6e3aaff949e21eb68a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp313-cp313-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp313-cp313-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
69b902d8a870db143f22b1270621289553091c751a811047c246fca01f4a5879
BLAKE2b-256 checksum
How to use checksums
8dafbbd001cd6c69413e5a17294180ae356378b290ad01b23faaed9ea4a22904
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp312-cp312-win_amd64.whl

Download URL blochsimulator-2.9.4-cp312-cp312-win_amd64.whl
Size 2.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
1ba9156bd88251b7b735fa4b856dbcbc0afe8fb055205262c0c1e013fe57be54
BLAKE2b-256 checksum
How to use checksums
393f930f723461f497040736d12bf7aeaa4c367f8716df2d211029b7bb3ff39f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a5e5aaff2c82f0691dca736a96f237c2355941b630a742954fd9a7315723094e
BLAKE2b-256 checksum
How to use checksums
094ee8e0e1444db227219fea5f62d91695c4ce5f050b939724b9eea34cd9c4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp312-cp312-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp312-cp312-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
02ca93464baf8f8886a3dc39db14a80f635d0d0f574abbedd6b47bc5a7b46d5a
BLAKE2b-256 checksum
How to use checksums
a6f3afc39a74e8ad00b48e5233c4d2dd975b407549d85656d9eea0be9ec57810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp311-cp311-win_amd64.whl

Download URL blochsimulator-2.9.4-cp311-cp311-win_amd64.whl
Size 2.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d9df26b2f226a2178f636efc5b515e52fe1f42b4785946791ff646a88bb1020a
BLAKE2b-256 checksum
How to use checksums
89f9f250d3305329627d41a3712fcee12b33635bd8c9f5f873dbf3f3f44c47d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 5.0 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d62862b8bda58f7c09a347cb63fd463362c8642ec3bde06a0af9023895a61803
BLAKE2b-256 checksum
How to use checksums
5b996a9f7bd26dcc28c1300efbc7e089ced4bed4742fd4579c8494c26673933e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp311-cp311-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp311-cp311-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
5e29d6badae3a67c79800fec612c8724557830b9127d5391cfd95ebd58f1f60f
BLAKE2b-256 checksum
How to use checksums
9ab10d4aadd0128ff22bd2510386a2e9bc7fbdce79462897532387863be6cfd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp310-cp310-win_amd64.whl

Download URL blochsimulator-2.9.4-cp310-cp310-win_amd64.whl
Size 2.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
6f9f180d2b351e6fa0af546688ee810ff7eba3587df99f98078a43ab16580eaf
BLAKE2b-256 checksum
How to use checksums
8932c42e1fd1bcaf4b015cc2e5b0c779e09d68de32728065638f19aacb4bfbe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
06ffe88c1630236d60a1c2f26e6e7b47374eaca0d7b4a557872968a4d47e5a69
BLAKE2b-256 checksum
How to use checksums
0bde34b437ce8e0b99569b812e16de1a619b77bfdf7fcad48f81b4bad058013b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp310-cp310-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp310-cp310-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
36b7c6a45ba3a4b709c992a6d45feea8b45ebfb7e781c750f1287328dd98119e
BLAKE2b-256 checksum
How to use checksums
40362ba0c29f833bd2f4253cee4093c9845dffaae6f3dbdb18ab5168de326e89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp39-cp39-win_amd64.whl

Download URL blochsimulator-2.9.4-cp39-cp39-win_amd64.whl
Size 2.4 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d7c16ef129f918e377d69ced32640ca47ddafa0fd9d976ed0a75a181afbbdaee
BLAKE2b-256 checksum
How to use checksums
3155bc8bd12a5226532f02474202e4b8ecf1a3d4af798a9c47691ad1de55ade0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL blochsimulator-2.9.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
69c679a3aa0ada8ea0a69cf936c8b389d82672e08d258bf69e62e917fc6e4fbf
BLAKE2b-256 checksum
How to use checksums
f76e0cea1b5c3f8d3fc64d950ba9e2df902c2a6b5e77d614fe9d0c8591f9667e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / blochsimulator-2.9.4-cp39-cp39-macosx_14_0_arm64.whl

Download URL blochsimulator-2.9.4-cp39-cp39-macosx_14_0_arm64.whl
Size 2.6 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
273627dc9858cda5367bcf594791fbe76398e00c15c52489b8bac76645709949
BLAKE2b-256 checksum
How to use checksums
4c8fe3068ebe0363dcb79ea7327f876dcd59fbcd0d5fb28d7a9b792f9ce625af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for blochsimulator 2.9.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.9.4 This release

19 release files No provenance

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