How lucanagel/bloch_sim_gui works
Bloch Equation Simulator is a Python MRI simulation package with a desktop GUI and Python API. Its main workflows are either configuring tissue and RF parameters for a Free Mode Bloch simulation, or loading/generating a Pulseq sequence, simulating it against a phantom, and inspecting reconstructed acquisitions. The README also documents phantom and B1 design, spectral-spatial RF design, project persistence, notebook export, and Bruker export. Edges reflect those documented workflows and capabilities; unsampled implementation details are not inferred.
Main entry points: main_window.py Desktop GUI · sequence_designer.py Sequence workspace · simulator.py Bloch simulator · compiler.py Sequence engine
Components 22
Simulation
- Bloch simulator
src/blochsimulator/simulator.py - C solver core
src/blochsimulator/bloch_core_modified.c - RF pulse design
src/blochsimulator/sequence/rf_pulses.py - Metal backend
src/blochsimulator/dynamic_metal_backend.py
Sequence workflows
- Sequence workspace
src/blochsimulator/ui/sequence_designer.py - Pulseq builders
src/blochsimulator/sequence/pulseq_builders.py - Spectral-spatial RF
src/blochsimulator/sequence/spectral_spatial.py - Sequence engine
src/blochsimulator/sequence/compiler.py - Spin sampling
src/blochsimulator/sequence/spin_sampling.py - Acquisition layouts
src/blochsimulator/sequence/acquisition.py - Bruker export
src/blochsimulator/sequence/bruker_export.py
Phantoms and fields
- Tissue phantom
src/blochsimulator/phantom.py - Spectral phantom
src/blochsimulator/spectral_phantom.py - Dynamic phantom
src/blochsimulator/dynamic_phantom.py - Phantom designer
src/blochsimulator/phantom_design.py - B1 field design
src/blochsimulator/b1_fields.py
GUI and outputs
- Desktop GUI
src/blochsimulator/ui/main_window.py - Reconstruction explorer
src/blochsimulator/ui/reconstruction_explorer.py - Project persistence
src/blochsimulator/project_io.py - Notebook export
src/blochsimulator/notebook_exporter.py - Simulation views
src/blochsimulator/visualization.py
Other components
- MRI researcher
Connections 22
- MRI researcher → Desktop GUI: configures
- Desktop GUI → Bloch simulator: runs simulation
src/blochsimulator/ui/main_window.py - MRI researcher → Bloch simulator: runs API
- Bloch simulator → C solver core: solves Bloch equations
- Desktop GUI → RF pulse design: designs RF
- Desktop GUI → Tissue phantom: configures tissue
src/blochsimulator/ui/main_window.py - Desktop GUI → Sequence workspace: opens sequence mode
src/blochsimulator/ui/main_window.py - Sequence workspace → Pulseq builders: generates sequences
- Sequence workspace → Sequence engine: simulates sequences
- Sequence workspace → Spectral-spatial RF: designs spectral RF
- Sequence workspace → Dynamic phantom: configures dynamic phantom
- Sequence workspace → Spectral phantom: configures spectral phantom
- Desktop GUI → Phantom designer: designs phantom
- Desktop GUI → B1 field design: designs B1 fields
- Sequence engine → Spin sampling: samples spins
src/blochsimulator/sequence/__init__.py - Sequence engine → Acquisition layouts: organizes acquisition
src/blochsimulator/sequence/__init__.py - Desktop GUI → Reconstruction explorer: inspects reconstruction
- Desktop GUI → Project persistence: saves projects
src/blochsimulator/ui/main_window.py - Desktop GUI → Notebook export: exports notebooks
src/blochsimulator/ui/main_window.py - Desktop GUI → Simulation views: views results
src/blochsimulator/ui/main_window.py - Desktop GUI → Bruker export: exports acquisitions
- Bloch simulator → Metal backend: optional acceleration
src/blochsimulator/simulator.py