napari: a multi-dimensional image viewer for Python
Authors/Creators
-
Sofroniew, Nicholas1
-
Lambert, Talley2
-
Bokota, Grzegorz3
-
Nunez-Iglesias, Juan4
-
Sobolewski, Peter5
- Sweet, Andrew1
-
Gaifas, Lorenzo6
- Evans, Kira1
- Burt, Alister7
- Doncila Pop, Draga8
- Yamauchi, Kevin9
-
Weber Mendonça, Melissa10
-
Rodríguez-Guerra, Jaime11
- Liu, Lucy10
-
Buckley, Genevieve8
-
Vierdag, Wouter-Michiel12
-
Anderson, Ashley1
-
Monko, Timothy13
-
Willing, Carol14
-
Rodríguez-Reza, Carlos M.15
- Royer, Loic16
- Can Solak, Ahmet16
-
Harrington, Kyle I. S.1
-
Abramo, Jacopo17
-
Ahlers, Jannis8
-
Ajina, Sesan18
-
Althviz Moré, Daniel10
-
Amsalem, Oren19
-
Andò, Edward20
-
Annex, Andrew21
-
Aronssohn, Constantin
-
Balzaretti, Filippo22
- Boone, Peter
-
Bestak, Kresimir23
- Bragantini, Jordão16
-
Bunten, David24
-
Bussonnier, Matthias11
-
Caporal, Clément25
-
Chazotte, Margot23
-
Coccimiglio, Ian26
-
Čočková, Zuzana27
-
Eglinger, Jan28
-
Eisenbarth, Andreas29
- Freeman, Jeremy1
-
Fukai T., Yohsuke30
- Gohlke, Christoph31
- Gunalan, Kabilar
-
Halchenko, Yaroslav Olegovich32
- Har-Gil, Hagai33
-
Harfouche, Mark34
-
Hilsenstein, Volker29
- Hutchings, Katherine35
-
Kawai, Hiroki36
-
Kozar, Robert37
-
Lauer, Jessy38
-
Le Meur-Diebolt, Samuel35
-
Lefebvre, Austin E. Y. T.39
-
Lichtner, Gregor40
-
Liu, Hanjin41
- Liu, Ziyang42
- Lowe, Alan43
-
Malin-Mayor, Caroline44
-
Marconato, Luca45
-
Martin, Sean46
- McGovern, Abigail8
- Migas, Lukasz47
-
Miller, Nadalyn48
-
Miñano, Sofía49
-
Muñoz, Hector50
-
Müller, Jan-Hendrik51
- Nauroth-Kreß, Christopher52
-
Newstein, Peter53
-
Obenhaus, Horst A.54
-
Palecek, David55
-
Pape, Constantin51
- Pellegrini, Yann
-
Perlman, Eric56
-
Theart, Rensu Petrus57
- Pevey, Kim
-
Peña-Castellanos, Gonzalo10
-
Phelps, Jasper58
-
Pierré, Andrea59
- Pinto, David
-
Ross, David60
-
Russell, Craig T.61
- Ryan, James
-
Selzer, Gabriel62
-
Smith, MB63
-
Smith, Paul35
- Sofiiuk, Konstantin
-
Soltwedel, Johannes64
-
Stansby, David35
-
Teo, Wulin65
-
Vanaret, Jules66
- Wadhwa, Pam11
-
Weigert, Martin67
-
Windhager, Jonas68
- Winston, Philip69
-
Yu, Qin70
-
Zhang, Liudeng71
-
Zhao, Rubin72
-
Witz, Guillaume73
-
Leomil Zoccoler, Marcelo74
-
Yadav, Aniket Singh75
-
Hinderling, Lucien76
- 1. Chan Zuckerberg Initiative
- 2. Harvard Medical School
- 3. napari; University of Warsaw, Faculty of Mathematics, Informatics, and Mechanics
- 4. Monash eResearch Centre, Monash University
- 5. The Jackson Laboratory
- 6. napari
- 7. MRC-LMB
- 8. Monash University
- 9. Iber Lab - ETH Zürich
- 10. Quansight
- 11. Quansight Labs
- 12. European Molecular Biology Laboratory, Genome Biology Unit, Heidelberg, Germany
- 13. University of Minnesota — Twin Cities
- 14. Willing Consulting
- 15. Kyoto University
- 16. Chan Zuckerberg Biohub
- 17. Leibniz-IPHT, Jena, Germany
- 18. iLABS, Inc.
- 19. Harvard Medical School, BIDMC
- 20. EPFL Center for Imaging
- 21. SETI Institute/NASA ARC
- 22. University of California, Santa Cruz
- 23. Heidelberg University, Germany
- 24. University of Colorado Anschutz
- 25. Laboratory for Optics and Biosciences, Ecole Polytechnique, INSERM, CNRS, Palaiseau, France
- 26. Unaffiliated
- 27. Imaging Methods Core Facility at Biocev, Charles University
- 28. Friedrich Miescher Institute for Biomedical Research (FMI), Basel (Switzerland)
- 29. EMBL Heidelberg, Germany
- 30. Pioneering Research Institute, RIKEN
- 31. University of California, Irvine
- 32. Dartmouth College
- 33. Tel Aviv University, Israel
- 34. Ramona Optics Inc, Durham, North Carolina, USA
- 35. University College London
- 36. The University of Tokyo / LPIXEL Inc.
- 37. Naval Nuclear Laboratory
- 38. Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland
- 39. Calico Life Sciences LLC
- 40. Universitätsmedizin Greifswald
- 41. Kobe University
- 42. Chan Zuckerberg Initiative Foundation
- 43. UCL & The Alan Turing Institute
- 44. HHMI Janelia Research Campus
- 45. EMBL Heidelberg
- 46. MetaCell
- 47. Delft University of Technology
- 48. Apex Systems
- 49. Sainsbury Wellcome Centre - University College London
- 50. University of California, Los Angeles
- 51. Georg-August-Universität Göttingen
- 52. University Hospital Würzburg - Institute of Neuroradiology
- 53. University of Oregon
- 54. Kavli Institute for Systems Neuroscience at NTNU, Trondheim, Norway
- 55. Algarve Centre of Marine Sciences (CCMAR)
- 56. Yikes LLC
- 57. Department of Electrical and Electronic Engineering, Stellenbosch University
- 58. EPFL
- 59. Brown University
- 60. NanoString Technologies, Inc.
- 61. European Bioinformatics Institute - European Molecular Biology Laboratory
- 62. University of Wisconsin-Madison
- 63. AI lab for Living Technologies, University Medical Centre Utrecht (The Netherlands)
- 64. DFG cluster of excellence 'Physics of Life', TU Dresden
- 65. Houston Methodist Research Institute
- 66. Aix Marseille University, CNRS, Fresnel, I2M, IBDM, Turing Centre for Living systems
- 67. TU-Dresden / EPFL
- 68. ETH Zurich / University of Zurich
- 69. Tobeva Software
- 70. European Molecular Biology Laboratory (EMBL)
- 71. Baylor College of Medicine
- 72. Chinese Academy of Sciences - SIAT, Shenzhen, China
- 73. Data Science Lab, University of Bern, Switzerland
- 74. Katana Labs
- 75. Galgotias University
- 76. Institute of Cell Biology, University of Bern, Switzerland
Description
napari 0.7.1
⚠️ Note: these release notes are still in draft while 0.7.1rc1 is in prerelease testing. ⚠️
Wed, May 27, 2026
We're happy to announce the release of napari 0.7.1! napari is a fast, interactive, multi-dimensional image viewer for Python. It's designed for browsing, annotating, and analyzing large multi-dimensional images. It's built on top of Qt (for the GUI), vispy (for performant GPU-based rendering), and the scientific Python stack (numpy, scipy).
For more information, examples, and documentation, please visit our website, https://napari.org.
napari follows EffVer (Intended Effort Versioning); this is a Meso release containing awesome new features, but some effort may be needed when updating previous projects to use this version.
Highlights
The napari 0.7.1 release is mainly a bug fix release, but it also includes some new features and improvements. Here are some of the highlights:
Signed Windows bundle
Starting with the napari 0.7.1 release, our bundle on Windows is now signed with a NumFOCUS certificate, like our macOS bundle has been. This means that you should be able to run napari without any warnings about the application being from an unknown publisher. This is an important step forward for our Windows users, as it enhances security and trust in our application, especially in managed IT environments where unsigned applications may be blocked by default.
The certificate is issued for the NumFOCUS foundation, which supports napari and a large number of other open source projects.
If you encounter any issues related to this change, please let us know!
Selection of the rendered level for multiscale layers
Prior to napari 0.7.1, when rendering a multiscale layer:
- in 3D display, napari would always render the lowest resolution level of the pyramid
- in 2D display, the pyramid level would be automatically selected based on the viewport
Thanks to #8917, users can now select a multiscale level to render. For the case of 3D display, for example, this allows for choosing a higher resolution rendering than before, as long as the selected level can fit within GPU texture limits. Meanwhile, for 2D display, you can fix the resolution level, which can be useful for annotation or previewing data prior to an analysis or export step.
Colorbars for points layer
The points allows coloring points based of their feature values; in napari 0.7.1 we added support for colorbars (#8624), so you can now easily see the mapping between feature values and colors, just like the colorbars for image colormapping. This is especially useful when you have a large number of points and want to quickly understand the distribution of feature values.
<img width="1019" height="783" alt="napari_colorbar" src="https://github.com/user-attachments/assets/1522aa7c-3520-4e41-85e6-99e9a91c47ee" />
Scalebar with units
In previous versions of napari, if you added A scale bar using View > Scale Bar > Scale Bar visible, it was shown with no units. In napari 0.7.1 we now
set default unit to pixel in #8900 and also add calculation of units for scale bar based on currently added layers in #8907, if they have units set.
Lock layer to prevent accidental deletions
In #8736 we added initial lock mechanism for layers. When a layer is locked, it cannot be accidentally deleted or destructively modified. This is especially useful when you have a complex project with many layers and want to prevent accidental changes to important layers. Note: the layer controls are not affected by the lock at this time. In the future we plan to expand this feature to prevent not only deletion but also other modifications.
New Features
- Add points layer face and border colorbar (#8624)
Improvements
- Add handler for show message when napari fails to import (#8609)
- Example: Enhance theme sample widget with theme colors, widgets (#8662)
- Do not connect to children events of EventedDict items if there is no callback (#8673)
- ENH: For multiscale 2d: store materialized thumbnail_level (#8715)
- UX: Add Layer.locked property to protect layers from accidental deletion (#8736)
- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path (#8785)
- Perf: Defer importing scipy.spatial (#8789)
- Add handler for show message when napari fails to import v2 (#8803)
- Update text in mac installer to improve UX (#8806)
- Fix: Use Python's tokenize script decoding for builtin reader (#8838)
- Add note for user how to reset the reader preference (#8848)
- Ensure all napari and plugin commands use . instead of : (#8883)
- Improve dask check to support more dask-backed array types (#8896)
- Set pixel as default scalebar unit (#8900)
- ScaleBar units from layers (#8907)
- Turn off contrast/color controls when surface has
vertex_colors(#8909) - Actually use theme type from npe contrib (#8915)
- Add multiscale level lock for scalar field layers (#8917)
- Do not add a new colormap if one already exists in napari (#8924)
- Improve sizing of dims ordering popup (#8952)
- typing: add type hints to
napari/utils/shortcuts.py(#8983)
Performance
- ENH: For multiscale 2d: store materialized thumbnail_level (#8715)
- Enh, minor, builtins: use urllib (and defer) instead of requests if reading a remote script path (#8785)
- Perf: Defer importing scipy.spatial (#8789)
- Improve dask check to support more dask-backed array types (#8896)
- Use pep562 to defer AVAILABLE_LABELS_COLORMAPS which imports skimage.color -> scipy.linalg (#8903)
Bug Fixes
- Add max depth_value to avoid clipping volumes in 3d (#8809) (#8810)
- Fix TypeError with anisotropic data in 3D ray intersections (#8812)
- Reuse QMarginSlidersPopup between rightclicks (#8819)
- Fix: Use Python's tokenize script decoding for builtin reader (#8838)
- Fix: Blocks dims slider widget creation feedback to dims model (#8840)
- Fix: play button loop mode duplication (#8841)
- Improve dask check to support more dask-backed array types (#8896)
- Wrap Labels multiscale data in MultiScaleData object in setter (#8922)
- Fix Labels show_selected_label being silently dropped after color shuffle (#8947)
- Fix Volume visual crash when adding invisible scalar field in 3D (#8968)
Documentation
- Fix typo in 0.7.0 release notes (docs#967)
- Remove draft note from 0.7.0 release notes. (docs#968)
- Reorganize cards in homepage (docs#970)
- Rename "latest" version switch to "dev" (docs#971)
- Use stable version for dev docs bundle links (docs#973)
- Remove mention of unmaintained plugin in quick start (docs#976)
- Rename navbar entries (API and Contribute) (docs#978)
- Update team page (docs#980)
- Add "Edit on Github" to secondary sidebar (docs#982)
- Add deprecation warning section in contributing guide (docs#984)
- Enable search as you type and remove sidebar search (docs#989)
- Use flexible search field for navbar (docs#991)
- Add more info about example tags and _.py (docs#994)
- Remove napari-hub from navbar and add to sidebar (docs#995)
- Update deprecation warning guidance to use
FutureWarning(docs#997) - Update Jupyter notebook example screenshot (docs#1003)
- Update multiscale documentation to describe new level selection (docs#1004)
- Add release notes for 0.7.1a1 (docs#1009)
- Add sample databases (docs#1010)
- Minimal all-contributors setup (docs#1011)
- Add Carlos to Core Team page (docs#1012)
- Update release notes for 0.7.1 (docs#1019)
- Add Curtis and Brian to SC members (docs#1020)
- Add Windows bundle signing and reputation info (docs#1022)
- Fix:
pyqt6for conda install instructions (docs#1023) - Document layer locking in napari GUI and API (docs#1025)
- Clean up button css for homepage and gallery (docs#1026)
- Example: Enhance theme sample widget with theme colors, widgets (#8662)
- Add note to Camera.angles docstring about quaternion normalisation (#8864)
- Docs: Bump lower version of napari-sphinx-theme (#8886)
- Replace v (shorter) with viewer in the examples (#8940)
- Add Carlos Rodríguez-Reza to core team section of citation file (#8971)
- Unpin sphinx for docs (#8993)
- add Yann-P to Citation.cff (#8994)
- Add units to Dims docstring and clarify Layer.units (#8996)
Other Pull Requests
- ci(dependabot): bump the github-actions group with 3 updates (docs#975)
- Fix minor typos (docs#1005)
- ci(dependabot): bump the github-actions group with 3 updates (docs#1006)
- Remove "auto author assign" workflow (docs#1008)
- Update workflows to python 3.14 (#8666)
- Improve typing in qt_dims_slider and clean local functions (#8683)
- Drop triangle from 3.14 docs dependencies (#8703)
- Use viewer-based caching for font manager (#8761)
- Enable
TC003- typing-only-standard-library-import rule in ruff config (#8791) - Solve "Could not resolve type hint for required parameter 'qt_viewer'." (#8792)
- Add app-model to mypy task dependencies and fix errors (#8794)
- Update
coverage,dask,fsspec,hypothesis,ipython,numpy,pint,pygments,pyside6,qtconsole,superqt(#8796) - Move from
appdirstoplatformdirs(#8797) - [pre-commit.ci] pre-commit autoupdate (#8800)
- Enable TC002 ruff rule (#8804)
- Fix layerlist_context by move Calable from TYPE_CHECKING block (#8805)
- Add zizmor security CI check (#8811)
- Ban expensive import in ruff (#8815)
- Remove
trianglefromnapari[all](#8824) - Add a Linux aarch64 test run (py313, pyqt6) to --pre, PR, and comprehensive tests (#8825)
- [maint] Use ubuntu-slim 1 vCPU runners for simple jobs (#8826)
- [maint] Add
bermudato testing dependencies (#8827) - [pre-commit.ci] pre-commit autoupdate (#8831)
- Add more debug information on fail to import Qt (#8834)
- maint: replace
StringEnumbase class with withStrEnum(#8835) - Do not import builtins from core (and forbid doing so) (#8842)
- ci(dependabot): bump the actions group with 8 updates (#8844)
- Remove sentinel leftover from
napari.utils.misc(#8846) - Fix checking autogenerated type stubs (#8847)
- Deprecate str_to_rgb which is unused (#8849)
- Revert Citation validator from ubuntu-slim to use ubuntu-latest (#8851)
- Deprecate make_default_color_array (#8852)
- Dependabot cooldown (#8853)
- Use bash script instead of docker image for checking PR labels (#8856)
- Check untyped defs in labels (#8861)
- add jasper-tms to citation (#8862)
- Rename tox test step names to include 'qt_backend' (#8866)
- Update
hypothesis,npe2,pandas,pillow,pydantic-extra-types,pyqt6(#8868) - [pre-commit.ci] pre-commit autoupdate (#8869)
- Deprecate color_dict_to_colormap with FutureWarning (#8871)
- Update
hypothesis,lxml,magicgui,platformdirs,pytest,rich,virtualenv(#8876) - Add session type to --info (#8880)
- Improve make_release workflow's release steps (#8882)
- [pre-commit.ci] pre-commit autoupdate (#8884)
- ci(dependabot): bump the actions group with 4 updates (#8889)
- Restore ability to push changes to napari-bot/napari repo (#8891)
- Checkout only citation.cff in milestone checker (#8892)
- Use hynek for build wheel (#8893)
- Deprecate image_reader_to_layerdata_reader (#8895)
- Finish typing bounding box and brush circle overlays (#8902)
- Update
hypothesis,lxml,pydantic,pydantic-extra-types,virtualenv,xarray(#8906) - [pre-commit.ci] pre-commit autoupdate (#8908)
- Update
certifi,hypothesis,ipython,matplotlib,pydantic,pydantic-settings(#8920) - [pre-commit.ci] pre-commit autoupdate (#8923)
- Scalar base data setter (#8925)
- Instead of checking if milestone is added, add the milestone on merge (#8926)
- Adapt tests that use zarr to work on zarr < 3 and zarr > 3.2.0 (#8943)
- Don't use random floats for image layer data in screenshot tests (#8945)
- Update
coverage,fsspec,hypothesis,pydantic,pydantic-settings,tensorstore,tifffile,virtualenv(#8949) - [pre-commit.ci] pre-commit autoupdate (#8951)
- Fix auto milestone workflow (#8954)
- Explicitly pass the repository name in command setting milestone (#8955)
- Update python version used to generate title and body of update constraints PR (#8957)
- Use
gh release createinstead ofsoftprops/action-gh-release(#8958) - Remove CODEOWNERS (#8959)
- Restore testing on windows-latest (Revert 5d6ab46) (#8960)
- ci(dependabot): bump the actions group across 1 directory with 8 updates (#8963)
- Pass token to make
ghworking in create release workflow (#8964) - Next fix of release workflow by pass directly
dist/*(#8966) - Try to fix passing prerelease to
gh release create(#8969) - Explicitly set repository in make release workflow (#8970)
- Update
hypothesis,pandas,pyside6,pytest-rerunfailures,virtualenv(#8981) - In vispy overalys use **kwargs instead of synchronizing signature (#8982)
- Update
numpy,tensorstore,tifffile(#8986) - [pre-commit.ci] pre-commit autoupdate (#8988)
- Bump vispy to 0.16.2 (#8992)
- Docs: Bump napari-sphinx-theme to use sticky banners (#8997)
- Deprecate scale_bar.unit (#9007)
22 authors added to this release (alphabetical)
(+) denotes first-time contributors 🥳
- Aniket (docs) - @Aniketsy +
- Austin Epiphane Yann Tung-Shan Lefebvre - @aelefebv +
- Carlos Mario Rodriguez Reza - @carlosmariorr
- Carol Willing - @willingc
- Caroline Malin-Mayor (docs) - @cmalinmayor +
- Constantin Aronssohn - @cnstt
- David Stansby - @dstansby
- Draga Doncila Pop - @DragaDoncila
- Grzegorz Bokota (docs) - @Czaki
- hiroalchem - @hiroalchem
- Jacopo Abramo - @jacopoabramo
- Kabilar Gunalan - @kabilar
- LiudengZhang - @LiudengZhang
- Lorenzo Gaifas - @brisvag
- Lucien Hinderling - @hinderling +
- Margot Chazotte - @MargotCh
- Martin Weigert - @maweigert
- Melissa Weber Mendonça - @melissawm
- Peter Newstein - @pnewstein +
- Peter Sobolewski - @psobolewskiPhD
- Tim Monko (docs) - @TimMonko
- Wulin Teo - @wulinteousa2-hash +
22 reviewers added to this release (alphabetical)
(+) denotes first-time contributors 🥳
- Aniket (docs) - @Aniketsy +
- Anniek Stokkermans - @AnniekStok
- Carlos Mario Rodriguez Reza - @carlosmariorr
- Carol Willing - @willingc
- Caroline Malin-Mayor (docs) - @cmalinmayor +
- Constantin Aronssohn - @cnstt
- David Stansby - @dstansby
- Draga Doncila Pop - @DragaDoncila
- github-advanced-security[bot] - @github-advanced-security[bot]
- Grzegorz Bokota (docs) - @Czaki
- hiroalchem - @hiroalchem
- Jacopo Abramo - @jacopoabramo
- Juan Nunez-Iglesias - @jni
- Kabilar Gunalan - @kabilar
- Lorenzo Gaifas - @brisvag
- Lucien Hinderling - @hinderling +
- Margot Chazotte - @MargotCh
- Melissa Weber Mendonça - @melissawm
- Peter Sobolewski - @psobolewskiPhD
- Tim Monko (docs) - @TimMonko
- Wulin Teo - @wulinteousa2-hash +
- Yann Pellegrini - @Yann-P
Notes
Files
napari/napari-v0.7.1rc2.zip
Files
(3.9 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:80fa732e7207b7d35c783a3e14a6725c
|
3.9 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/napari/napari/tree/v0.7.1rc2 (URL)
Software
- Repository URL
- https://github.com/napari/napari