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
-
Ambroset, Mélodie19
-
Amsalem, Oren20
-
Andò, Edward21
-
Annex, Andrew22
-
Archit, Anwai23
-
Aronssohn, Constantin
-
Balzaretti, Filippo24
- Boone, Peter
-
Bestak, Kresimir25
- Bragantini, Jordão16
-
Bunten, David26
-
Bussonnier, Matthias11
-
Caporal, Clément27
-
Chazotte, Margot25
-
Coccimiglio, Ian28
-
Čočková, Zuzana29
- Defauw, Arne30
- Czasak, Sara
-
Eglinger, Jan31
-
Eisenbarth, Andreas32
- Freeman, Jeremy1
-
Fukai T., Yohsuke33
- Garnett, Arbor34
- Gohlke, Christoph35
- Gunalan, Kabilar
-
Halchenko, Yaroslav Olegovich36
- Har-Gil, Hagai37
-
Harfouche, Mark38
-
Hilsenstein, Volker32
-
Huijben, Teun A.P.M.39
- Hutchings, Katherine40
-
Kawai, Hiroki41
-
Kozar, Robert42
-
Lauer, Jessy43
-
Le Meur-Diebolt, Samuel40
-
Lefebvre, Austin E. Y. T.44
-
Lichtner, Gregor45
-
Liu, Hanjin46
- Liu, Ziyang47
- Lowe, Alan48
-
Malin-Mayor, Caroline49
-
Marconato, Luca50
-
Martin, Sean51
- McGovern, Abigail8
- Migas, Lukasz52
-
Miller, Nadalyn53
-
Miñano, Sofía54
-
Muñoz, Hector55
-
Müller, Jan-Hendrik23
- Nauroth-Kreß, Christopher56
-
Newstein, Peter57
-
Obenhaus, Horst A.58
-
Palecek, David59
-
Pape, Constantin23
- Pellegrini, Yann
-
Perlman, Eric60
-
Theart, Rensu Petrus61
- Pevey, Kim
-
Peña-Castellanos, Gonzalo10
-
Phelps, Jasper62
-
Pierré, Andrea63
- Pinto, David
- Reksoatmodjo, Anthony64
-
Ross, David65
-
Russell, Craig T.66
- Ryan, James
-
Saveur, Tom
-
Schabel, Matthias Christian67
-
Selzer, Gabriel68
-
Sharma, Rupesh69
- Sheikh, Imad Uddin70
-
Sirmpilatze, Nikoloz54
-
Smith, MB71
-
Smith, Paul40
- Sofiiuk, Konstantin
-
Soltwedel, Johannes72
-
Stansby, David40
- Steuer, Michal
-
Teo, Wulin73
-
Vanaret, Jules74
- Wadhwa, Pam11
-
Weigert, Martin75
-
Windhager, Jonas76
- Winston, Philip77
-
Yu, Qin78
-
Zhang, Liudeng79
-
Zhao, Rubin80
-
Witz, Guillaume81
-
Leomil Zoccoler, Marcelo82
-
Yadav, Aniket Singh83
-
Hinderling, Lucien84
-
Kabde, Omkar85
-
Roald-Arbøl, Mikkel86
-
Rochat, Giliane87
-
Castelli, Filippo Maria88
- Venugopal, Revathy89
- Coussoux, Edouard89
-
Seth, Mridul90
- Becht, Job91
- Creeten, Christophe91
- Morais, Sébastien89
- Bloemsaat, Bas92
-
Kania, Kamil
-
Liaskas, Ioannis93
-
Hada, Aroj94
- 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. INRAE, Nantes, France
- 20. Harvard Medical School, BIDMC
- 21. EPFL Center for Imaging
- 22. SETI Institute/NASA ARC
- 23. Georg-August-Universität Göttingen
- 24. University of California, Santa Cruz
- 25. Heidelberg University, Germany
- 26. University of Colorado Anschutz
- 27. Laboratory for Optics and Biosciences, Ecole Polytechnique, INSERM, CNRS, Palaiseau, France
- 28. Unaffiliated
- 29. Imaging Methods Core Facility at Biocev, Charles University
- 30. Flemish Institute for Biotechnology
- 31. Friedrich Miescher Institute for Biomedical Research (FMI), Basel (Switzerland)
- 32. EMBL Heidelberg, Germany
- 33. Pioneering Research Institute, RIKEN
- 34. University of Minnesota
- 35. University of California, Irvine
- 36. Dartmouth College
- 37. Tel Aviv University, Israel
- 38. Ramona Optics Inc, Durham, North Carolina, USA
- 39. Biohub, San Francisco
- 40. University College London
- 41. The University of Tokyo / LPIXEL Inc.
- 42. Naval Nuclear Laboratory
- 43. Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland
- 44. Calico Life Sciences LLC
- 45. Universitätsmedizin Greifswald
- 46. Kobe University
- 47. Chan Zuckerberg Initiative Foundation
- 48. UCL & The Alan Turing Institute
- 49. HHMI Janelia Research Campus
- 50. EMBL Heidelberg
- 51. MetaCell
- 52. Delft University of Technology
- 53. Apex Systems
- 54. Sainsbury Wellcome Centre - University College London
- 55. University of California, Los Angeles
- 56. University Hospital Würzburg - Institute of Neuroradiology
- 57. University of Oregon
- 58. Kavli Institute for Systems Neuroscience at NTNU, Trondheim, Norway
- 59. Algarve Centre of Marine Sciences (CCMAR)
- 60. Yikes LLC
- 61. Department of Electrical and Electronic Engineering, Stellenbosch University
- 62. EPFL
- 63. Brown University
- 64. Translucence Biosystems
- 65. NanoString Technologies, Inc.
- 66. European Bioinformatics Institute - European Molecular Biology Laboratory
- 67. Oregon Health & Science University
- 68. University of Wisconsin-Madison
- 69. Mangalmay Institute of Management & Technology
- 70. Indiana Wesleyan University
- 71. AI lab for Living Technologies, University Medical Centre Utrecht (The Netherlands)
- 72. DFG cluster of excellence 'Physics of Life', TU Dresden
- 73. Houston Methodist Research Institute
- 74. Aix Marseille University, CNRS, Fresnel, I2M, IBDM, Turing Centre for Living systems
- 75. TU-Dresden / EPFL
- 76. ETH Zurich / University of Zurich
- 77. Tobeva Software
- 78. European Molecular Biology Laboratory (EMBL)
- 79. Baylor College of Medicine
- 80. Chinese Academy of Sciences - SIAT, Shenzhen, China
- 81. Data Science Lab, University of Bern, Switzerland
- 82. Katana Labs
- 83. Galgotias University
- 84. Institute of Cell Biology, University of Bern, Switzerland
- 85. Chaitanya Bharathi Institute of Technology
- 86. University of Bonn
- 87. Institute of Neuropathology, University Hospital of Zürich
- 88. Delta Tribe SRL
- 89. Synopsys, Inc.
- 90. European Spallation Source
- 91. Netherlands Forensic Institute
- 92. QStarsIT
- 93. Aix Marseille University, IBDM, Turing Centre for Living systems
- 94. University Hospital Heidelberg
Description
napari 0.9.0
⚠️ Note: these release notes are still in draft while 0.9.0a1 is in prerelease testing. ⚠️
Mon, Aug 17, 2026
We're happy to announce the release of napari 0.9.0! 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 Macro release containing awesome new features, but may require dedication of some significant time when upgrading projects to use this version.
Highlights
Fuzzy find in command palette
Implement fuzzy find for the command palette (#8661)
Adjust grid rendering with hidden layers
If using grid layout without using stride, there are no blanks fields for hidden layers thanks to #9244
Inherit axis labels from layers
Thanks to #9282 the axis labels in interface, next to slide and Dims.axis_labels
are calculated based on axis labels of layers
Status bar coordinates as floats
Thanks to #9287 we no longer render coordinates on scale bar
as integers, but as floats. It is important for all who use fractional
Layer.scale
Public API for auto contrast limit
In #9271 the public API for auto contrast limits is added
Canvas model (#8633)
Implement Surface slicing with async request/response (#8783)
Remove translations code (#8935)
Add builtin Wavefront OBJ to surfaces reader (#9228)
Dynamically construct layer controls based on selection (#9318)
New Features
- Implement fuzzy find for the command palette (#8661)
- Implement Surface slicing with async request/response (#8783)
- Small refactor of point slicing +
rescaleprojection mode to replace out_of_slice_display (#8786) - feat: add
newlabel button to the labels controls (#9215) - Add builtin Wavefront OBJ to surfaces reader (#9228)
- Dynamically construct layer controls based on selection (#9318)
Improvements
- MAINT Always raise error when
widget_namegiven inget_widget_contribution(#6544) - move features table widget command to the Metadata menu (#9231)
- fix: change the order of edge/face color and border (#9232)
- Move the layer lock to group with link/unlink, rather than with visib… (#9235)
- fix: adjust the layout based on the hidden layers in grid (#9244)
- Improve slider handle conspicuity by using theme's
currentcolor for active dim (#9255) - publicly expose auto contrast limits (#9271)
- update dims axis labels from layers axis labels (#9282)
- Status bar coordinates as floats (#9287)
- UX: Indicate web links in Help menu with ↗ (unicode character) (#9291)
- New layer inherits axis labels when derived from another layer (#9293)
- Adding histogram to surfaces (#9306)
- Dynamically construct layer controls based on selection (#9318)
- UX/UI: Bump the splitter (separator) size by 1px (#9344)
Performance
- [perf] Defer PIL import in labels.py polygon mask (#9205)
Bug Fixes
- Fix multiscale level selection for anisotropic data (#9201)
- fix async colormap (#9209)
- Fix cross layer in multiple viewer example to use line vectors. (#9213)
- Do not update
current_propertieson Shapes selection changed (#9221) - fix: action binding the
new-labeltooltips with shortcuts (#9230) - fix: add minimum value to grid mode strides to allow negative strides (#9236)
- fix(qt): dimension sliders need a minimum width (#9254)
- Fix sync slicing when toggling to 3D with auto contrast (#9263)
- Fix enum breaks from translations removal (#9274)
- Fix auto_contrast button state initialization (#9289)
- Vectors: make edge_color_mode = 'direct' actually leave the feature mapping (#9333)
- Use magnitude of Layer.scale for points/shape handles (#9339)
- Change
Dimsslider connection fromtextChangedtotextEditedto stop wrong updates (#9355)
Documentation
- [pre-commit.ci] pre-commit autoupdate (docs#1069)
- Update homepage video for 0.8.0/.1 changes (docs#1070)
- Enhance contributing documentation with GitHub edit info (docs#1075)
- Adding uv to getting started - installation (docs#1076)
- make napari logo usage page (docs#1077)
- Delete useless line (docs#1078)
- Update auto-fill-labels loop video to extend end frame (docs#1082)
- Bring several NAPs up to date (docs#1091)
- [pre-commit.ci] pre-commit autoupdate (docs#1095)
- Update dev instructions to use prek (docs#1096)
- Add initial release notes for 0.9.0 (docs#1097)
- Update recommended Python version in README from 3.11 to 3.13 (#9223)
- Load data from zarr in map example if contextily fails (#9307)
Other Pull Requests
- Update label name in condition of label trigger build (docs#1067)
- Update version switcher to point to 0.8.0 as stable (docs#1071)
- Remove contributing text about adding translations (docs#1081)
- ci(dependabot): bump the github-actions group with 4 updates (docs#1094)
- fix(typing): add typing and fix mypy error in
qt_mode_buttons.py(#9110) - Use shared version of label clean workflow (#9116)
- Remove
qt_dict_table.pyas its unused (#9119) - fix(typing): add typing and fix mypy error in
qt_face_color.py(#9123) - fix(typing): add typing and fix mypy error in
_base_item_model.py(#9126) - fix(typing): add typing and fix mypy error in
_base_item_view.py(#9127) - fix(typing): add typing and fix mypy error in
qt_axis_model.py(#9167) - fix(typing): add typing and fix mypy error in
qt_list_model.py(#9169) - typing: remove
experimental.qt_poll.pyfrom mypy ignore (#9171) - fix(typing): add typing and fix mypy error in
qt_border_color.py(#9179) - fix(typing): add typing and fix mypy error in
qt_edge_color.py(#9183) - fix(typing): resolve mypy errors for
qt_widget_controls_base(#9185) - Update
coverage,dask,hypothesis,imageio,matplotlib,platformdirs,tifffile,tqdm,virtualenv,xarray(#9194) - [pre-commit.ci] pre-commit autoupdate (#9197)
- Add
exampletoallowed_labelsincheck_labelsjob oflabel_and_milestone_checker.ymlworkflow (#9214) - TST: parameterizing with iterables is deprecated in pytest (#9217)
- Add stereo 3D viewer widget example (#9219)
- Make tensorstore optional dependency of
test_labelsagain (#9220) - Remove unnecessary
FutureWarningignore fortest_layers_save_svg(#9225) - Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)
- Add (Euro)SciPy Sprint Authors to Citation (#9234)
- fix(typing): add typing and fix mypy error in
qt_brush_size_slider.py(#9238) - fix(typing): add typing and fix mypy error in
_evented_dict.py(#9240) - Gallery example of using a background map (#9245)
- Adding 4D sample data as a heat diffusion (#9246)
- Disable interaction with vispy.gloo in test_vispy_labels_polygon_overlay (#9264)
- ci(dependabot): bump the actions group across 1 directory with 11 updates (#9265)
- Remove missing translations GH action (#9266)
- Asynchronous loading text fix (#9267)
- Pin octokit to tag, not use main branch (#9268)
- Fix typing problem by provide strict version of _BaseEventedItemModel.getItem (#9272)
- Fix test failures when running napari in tiling window managers by forcing the screenshot size. (#9284)
- Update
certifi,hypothesis,pandas,platformdirs,tqdm,virtualenv(#9295) - deprecate setting dims axis labels in examples (#9297)
- [pre-commit.ci] pre-commit autoupdate (#9303)
- Update latlon with map example to follow PEP8 (#9312)
- Example: combine points and vectors to build a 3D structured object (#9340)
- Revert "Disable part of test matrix to increase runner availability during sprints/hackathon (#9226)" (#9348)
24 authors added to this release (alphabetical)
(+) denotes first-time contributors 🥳
- Aniket - @Aniketsy
- Arne Defauw - @ArneDefauw +
- Aroj Hada - @ArozHada +
- BadPrograms - @BadPrograms +
- Bas Bloemsaat - @basbloemsaat +
- Christophe Creeten - @ccreeten +
- Edouard Coussoux - @ecoussoux-ansys +
- Filippo Maria Castelli, PhD - @filippocastelli +
- girochat - @girochat +
- Grzegorz Bokota (docs) - @Czaki
- Jacopo Abramo - @jacopoabramo
- Juan Nunez-Iglesias (docs) - @jni
- Kamil Kania - @Grzyb33k +
- Lorenzo Gaifas (docs) - @brisvag
- Margot Chazotte - @MargotCh
- Matthias Schabel - @matthiasschabel +
- michalslabs (docs) - @michalslabs +
- Mridul Seth - @MridulS +
- Peter Sobolewski - @psobolewskiPhD
- Revathy Venugopal - @Revathyvenugopal162 +
- Sara Czasak - @sara-czasak +
- Sébastien Morais - @SMoraisAnsys +
- Tim Monko (docs) - @TimMonko
- Zuzana Čočková - @cockovaz
16 reviewers added to this release (alphabetical)
(+) denotes first-time contributors 🥳
- Aniket - @Aniketsy
- arbor - @arbormoss
- Arne Defauw - @ArneDefauw +
- Carol Willing - @willingc
- Draga Doncila Pop - @DragaDoncila
- Filippo Maria Castelli, PhD - @filippocastelli +
- girochat - @girochat +
- Grzegorz Bokota (docs) - @Czaki
- Jacopo Abramo - @jacopoabramo
- Juan Nunez-Iglesias (docs) - @jni
- Lorenzo Gaifas (docs) - @brisvag
- Maxime Rey - @MaxJPRey
- Peter Sobolewski - @psobolewskiPhD
- Sara Czasak - @sara-czasak +
- Tim Monko (docs) - @TimMonko
- Zuzana Čočková - @cockovaz
Notes
Files
napari/napari-v0.9.0a1.zip
Files
(4.0 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:081027a229d88c36bf70a563c9ded21f
|
4.0 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/napari/napari/tree/v0.9.0a1 (URL)
Software
- Repository URL
- https://github.com/napari/napari