Skip to content

Releases: waltsims/k-wave-python

v0.6.1

30 Mar 01:47
f5c765f

Choose a tag to compare

k-wave-python v0.6.1

Highlights

Pure Python solver improvements

  • C-order migration: solver internals now use row-major (C) order. F-order preserved only at C++ HDF5 and MATLAB interop boundaries (#676)
  • tqdm progress bar for the Python solver (#681)
  • 3D PML fix: use pml_size=10 for 3D to match MATLAB defaults (#690)

29 examples ported to the new API

  • All Tier 1 examples use kspaceFirstOrder() with setup()/run()/__main__ pattern (#685)
  • Flattened to examples/*.py, old examples moved to examples/legacy/ (#686)
  • Run any example: uv run examples/ivp_homogeneous_medium.py — no GPU required

47 parity tests against MATLAB

  • Machine-precision validation (<5e-13 relative error) for all 1D/2D/3D examples (#686, #689)
  • Table-driven parametrized test framework with separate thresholds for time-series vs final fields

Docs & infrastructure cleanup

  • README rewritten: Python solver first, both backends described (#692)
  • Developer docs simplified to uv sync / uv run pytest (#687, #692)
  • macOS: helpful error message when C++ backend is missing brew dependencies (#692)
  • Deleted dead infrastructure: Makefile, Dockerfile, run_examples.py, notebook pipeline (#693)

⚠️ Breaking Changes

  • Solver output arrays are now C-order. Code that assumed F-order indexing of full-grid sensor data may need updating.

Dependencies

  • Bump deepdiff 8.6.1 → 8.6.2 (#675)
  • Bump requests 2.32.5 → 2.33.0 (#674)

New Contributors

  • @Copilot made their first contribution in #684

Full Changelog: v0.6.0...v0.6.1

v0.6.0

26 Mar 23:30
10296a3

Choose a tag to compare

What's Changed

Add cupy solver

k-wave-python can now be run completely in Python and no longer depends on the k-wave binary executables.

Full Changelog: v0.5.0rc1...v0.6.0

Merge pull request #663 from waltsims/release/v0.5.0rc1

17 Feb 07:06
9b610cf

Choose a tag to compare

v0.5.0rc1 Release Notes

New Features

  • Checkpoint support - Added checkpoint flags for simulation state saving (#599)
  • kArray equality operator - Added element equality operator for kArray (#462)
  • Time reversal refactor - Factored out time reversal logic for better modularity (#577)

Improvements

  • Sharpness filters - Refactored sharpness filters and improved single_sided_correction (#573)
  • Affine transformations - Refactored affine transformations and added deprecation utilities (#550)
  • Test coverage - Improved test coverage on extract_amp_phase (#545)
  • Cart sphere testing - Updated cart sphere testing (#583)

Bug Fixes

  • Fixed confusing error message on kspaceFirstOrder3DG (#591)
  • Fixed logging error (#594)
  • Fixed create_pixel_dim (#567)
  • Fixed issue with setting p0 to None during assignment (#543)

Infrastructure

  • Added macOS (Darwin) binary support v0.3.0rc3 (#610)
  • Added run-examples workflow for CI (#576)
  • Improved code linting with spellcheck and isort (#564)

Documentation

  • Second pass on developer documentation (#596)
  • Updated development environment docs (#595, #575)

Dependency Updates

  • deepdiff 8.1.1 → 8.5.0
  • matplotlib 3.10.0 → 3.10.3
  • jaxtyping 0.2.36 → 0.3.2
  • beartype 0.19.0 → 0.20.2
  • scipy 1.14.1 → 1.15.2
  • h5py 3.12.1 → 3.13.0
  • opencv-python 4.10.0.84 → 4.11.0.86
  • coverage 7.6.9 → 7.8.0
  • pre-commit 4.0.1 → 4.2.0

v0.4.0

13 Jan 04:11
87a7281

Choose a tag to compare

Thank you to all of the contributors who helped make this release happen! Importantly, this release changes the license of k-wave-python from GPL-3.0 to LGPL-3.0 upon approval of all contributors.

Special thanks to @faberno who ensured that the time reversal reconstruction methods were finally added to the project with their respective examples. 🎉

What's Changed

  • Migrate license to LGPL-3.0 by @waltsims in #531
    • Allows for broader adoption in both academic and commercial applications
  • Update simulation_options.py by @waltsims in #520
  • Update execution options APIs by @waltsims in #529
  • Add FFT + Time Reversal Reconstruction by @faberno in #475

Dependency Updates

Full Changelog: v0.3.7...v0.4.0

v0.3.7

22 Nov 04:43
650cd18

Choose a tag to compare

This is a patch release on top of k-wave-python v0.3.6.

This patch fixes the bug found in #514 by @mikaelhaji that broke Windows execution.

This release fixes that issue by not passing the threads flag to the executable on Windows.

v0.3.6

20 Nov 16:12
d5d0160

Choose a tag to compare

Warning Yanked. See v0.3.7 release notes

What's Changed

  • In #473 we updated the logic in the SimulationExecutionOptions() class to reduce user error and improve ease of use.
  • In #505 we dropped support for Python 3.9 and added support for Python 3.13 in this version.
  • Also in #505 we bumped our scipy dependency to v1.13.1.
  • In #506 we bumped our numpy dependency to now support numpy v2.0 and adapted our k-wave-python to numpy v2.0 in #510. Please consult the v2.0 migration guide here to find out what this means for you!
  • @brubbel fixed Bug #376 in #509 which will help everyone record multiple outputs. Thanks for the great find in your first PR @brubbel!

Other Dependencies

New Contributors 🎉

Full Changelog: v0.3.5...v0.3.6

v0.3.5

12 Nov 19:33
34e7c89

Choose a tag to compare

Hi k-wave-python community!

We're excited to announce v0.3.5. This point release includes some improvements to k-wave-python that improve performance and reliability. We have also included new examples in the repository.

Special thanks to first-time contributors @faberno and @precicely for their contributions to this release!

What's Changed

New examples

Bug fixes

Dependencies

New Contributors

Full Changelog: v0.3.4...v0.3.5

v0.3.4

09 Jul 18:56
63055b4

Choose a tag to compare

v0.3.4

We're excited to announce the relsease of k-wave-python v0.3.4! We have improved code coverage, fixed some bugs and finally MacOS support for OpenMP execution in this point release! 🎉

Highlights

  • k-Wave-python can now be run on MacOS using OpenMP #410
  • We added key examples from contributors including defining a transducer by @gordon-n-stevenson in #378, phased-array @void-mckenzie in #379 and Modelling in 3D by @djps in #323.
  • We improved support for Windows by addressing issues identified and addressed by @peterhollender in #367
  • @KR616 contributed their first contributions to k-wave-python working to improve the issue and PR workflow in #409

We want to thank the community for its support and contributions. We look forward to your continued feedback 💯. See you in the next release!

What's Changed (complete list)

New Contributors

Full Changelog: v0.3.3...v0.3.4

v0.3.3

02 Apr 18:22
567f9c4

Choose a tag to compare

What's Changed

We are excited to announce another release of k-wave-python! This release adds minor enhancements and improvements to k-wave-python along with a new example for phased-array transducers contributed by @talg2324.

Enhancements

Fixes

  • 310 bug two times log compression in the example us bmode linear transducer by @waltsims in #356
  • 344 karray 2d weights dimension by @waltsims in #346
  • Remove deprecation warning in write attributes by @waltsims in #352

Dependencies

Full Changelog: v0.3.2...v0.3.3

v0.3.2

27 Feb 20:31
8eff587

Choose a tag to compare

What's Changed

We're excited to announce k-wave-python v0.3.2! This release brings with it many improvements and fixes listed below. Importantly, we drop support for Python 3.8 and add support for Python 3.12. We have added development documentation on testing workflows and improved the overall documentation readability. Test coverage has also been added to the project. Furthermore, David Sinden (@djps) has joined the project as our third maintainer! 🎉

Lastly, we have added a citation file to the project. If you are enjoying k-Wave-python, please cite it in your work!

Breaking Changes

Improvements

Fixes

Dependencies

Full Changelog: v0.3.1...v0.3.2