napari 0.5.3#

Friday, Aug 30, 2024

We’re happy to announce the release of napari 0.5.3!

napari is a fast, interactive, multi-dimensional image viewer for Python. It’s designed for exploring, annotating, and analyzing multi-dimensional images. It’s built on Qt (for the GUI), VisPy (for performant GPU-based rendering), and the scientific Python stack (NumPy, SciPy, and friends).

For more information, examples, and documentation, please visit our website: https://napari.org/

Highlights#

This is primarily a bug-fix release, including fixes for a couple of nasty regressions in 0.5.0 (#7184) and 0.5.2 (#7201). However, we also have a couple of excellent user-facing improvements:

  • In #7090, new contributor Bean Li fixed a very long-standing issue in napari: 3D picking didn’t work when using a perspective projection (rather than the default orthogonal projection. The result is glorious:

    animated gif showing picking of points in 3D filaments using a perspective projection camera

    There’s still a lot of work to be done in perspective projection (dragging planes, for example, still doesn’t work), but this is an exciting first step, and we are thrilled that it came from a new community member! Thanks @beanli161514!

  • In #7146, napari team member Grzegorz Bokota fixed a long-standing issue in napari: Layer.get_status used to be computed on the main thread, which meant that layers for which this involved heavy computation (such as large Labels layers, or Shapes layers or 3D surface layers with lots of polygons) would slow down the viewer refresh rate. Grzegorz’s changes move the computation to a separate thread, which will dramatically improve performance in many situations. 🚀🚀🚀

Thanks as always to all our contributors, and read on for the full list of changes!

Improvements#

  • [enh] Add a keybinding for rotating layer and alt-click on Transpose button (#7052)

  • enable 3D picking with perspective camera (#7090)

  • [UX/UI] Update layer controls tooltips (#7153)

  • Update labels_with_features example for #7025 (#7199)

Performance#

  • Fix missing extent cache invalidation (#7015)

  • Calculate status in a separate thread (#7146)

  • If a shape is convex, use faster fan triangulation (#7214)

  • Speed up highlighting in the Shapes layer (#7223)

Bug Fixes#

  • Fix missing extent cache invalidation (#7015)

  • enable 3D picking with perspective camera (#7090)

  • Implement shortcuts widget setValue to handle shortcuts settings updates (#7180)

  • Fix bug preventing from change symbol for points initialized with single value (#7184)

  • Add napari.benchmarks.util to sdist and wheel to fix balls example data (#7186)

  • Bugfix: Revert “Emit highlight event only if selection changed (#7162)” (#7201)

  • Use new DOI for surface example (#7222)

  • Fix convex polygon detection (#7228)

Documentation#

  • Use new DOI for surface example (#7222)

  • Add 0.5.3 release notes (docs#485)

  • Update 0.5.3 release notes with new bugfix (docs#487)

  • Add short guide on updating constraints files (docs#460)

  • Add 0.5.2 to the version switcher (docs#479)

  • Minor improvement to qtbot testing section (docs#481)

  • Improve informations on community page (docs#482)

Other Pull Requests#

  • Fix/add some typing to napari.layers.tracks (#7014)

  • Call workflow providing target directory name (#7181)

  • Improve error message in combine_widgets (#7194)

  • [Maint] Remove some pytest skipif for python <3.9 (#7203)

  • Update dask, hypothesis, imageio, matplotlib (#7206)

  • [pre-commit.ci] pre-commit autoupdate (#7207)

  • [pre-commit.ci] pre-commit autoupdate (#7216)

  • Fix example by connect missing event (#7218)

  • Improve deploy workflow by use deploy directory from workflow dispatch input (docs#477)

9 authors added to this release (alphabetical)#

(+) denotes first-time contributors 🥳

13 reviewers added to this release (alphabetical)#

(+) denotes first-time contributors 🥳