napari: a multi-dimensional image viewer for Python
Bibliographic record
Abstract
napari 0.6.1 Tue, May 20, 2025 We're happy to announce the release of napari 0.6.1! This release is a follow-up to 0.6.0, with a few bug fixes and new features. 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 The HiLo👋 Colormap! Introducing the HiLo colormap to napari! 🎨 This much-loved colormap (LUT) is like grayscale, except it displays values at or above the maximum contrast limit as red 🔴 and values at or below the minimum contrast limit as blue 🔵. In the scientific imaging world, the HiLo colormap is often used to assess overexposed (saturated) ☀️ and underexposed (dark) 🌑 regions in images. Enjoy this animation of the HiLo colormap in action! 👇 The HiLo colormap is now available as a result of the dependency bump to VisPy 0.15.0 (#7846), which will soon unlock even more great new features in the coming napari releases. The dims widget shines brighter! ✨ Have you ever tried to use the dims pop-up widget (accessed by right clicking on the third viewer button) and found it to not work as expected? As part of our bugfixes #7937 , the dims widget will continue to interact as expected. The widget is now available in 3D view! ❓Did you know that the dims widget allows you to rename the axis labels of your data? New Features Add inheritance of spatial data for functional plugin that return layer data. (#6986) Bump to vispy 0.15 and update Colormap model (#7846) Add multiplicative blending (#7868) Improvements Copy units from layer to layer (#7727) Check return value is valid LayerDataTuple (#7851) Fix broken dims order popup and add to 3D (#7937) Bug Fixes Refresh extent on async slicing (#7853) Do not expose vispy BaseColormaps (#7858) Properly determine dtype for view of Labels (#7883) Prevent Shapes corruption when drawing tiny polygons with lasso (#7914) Better refresh extent on async slicing (#7925) Fix async refresh extent (#7929) Mark key events as handled when processed (#7933) Fix broken dims order popup and add to 3D (#7937) Documentation Update the version switcher for 0.6.0 (docs#697) Update conf.py to try to fix opengraph image for dev and future deployments (docs#700) Update sidebar-nav-bs.html to try to fix links (docs#702) Draft release notes for 0.6.1 (docs#704) release 0.6.1 notes update (docs#706) Fix release notes header for 0.6.1 (docs#707) Update release notes for 0.6.1 (docs#708) Update viewer.md to mention that you can rename axes using the roll dims popup (docs#709) 0.6.1 full release notes (docs#712) Other Pull Requests Remove outdated QSS styling elements (#7655) Update hypothesis, ipython, numpy, pillow, pydantic (#7823) Update builtins read extensions (#7826) Skip tests that are failing because of Qt bug (#7884) Use ViewerModel instead of make_napari_viewer in test_toggle_axes_scale_bar_attr (#7885) Update pydantic, pyqt6, xarray (#7886) [pre-commit.ci] pre-commit autoupdate (#7891) Fix test_view_menu.py::test_toggle_menubar to pass locally (#7892) Add information about launch command to napari info dialog (#7897) Add information about installed plugins to info dialog (#7899) Surface original error when a selected plugin fails to read file. (#7901) Update hypothesis, matplotlib, psygnal, scipy, tifffile, virtualenv (#7906) Change @brisvag affiliation (#7909) [pre-commit.ci] pre-commit autoupdate (#7910) Rename action by add missed word separator (#7913) Update build_trigger.yml to fix Circle pipeline (docs#701) 6 authors added to this release (alphabetical) (+) denotes first-time contributors 🥳 Draga Doncila Pop - @DragaDoncila Grzegorz Bokota - @Czaki Juan Nunez-Iglesias - @jni Lorenzo Gaifas - @brisvag Peter Sobolewski - @psobolewskiPhD Tim Monko (docs) - @TimMonko 7 reviewers added to this release (alphabetical) (+) denotes first-time contributors 🥳 Draga Doncila Pop - @DragaDoncila Genevieve Buckley - @GenevieveBuckley Grzegorz Bokota - @Czaki Juan Nunez-Iglesias - @jni Lorenzo Gaifas - @brisvag Peter Sobolewski - @psobolewskiPhD Tim Monko (docs) - @TimMonko
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.002 | 0.005 |
| Meta-epidemiology (narrow) | 0.002 | 0.002 |
| Meta-epidemiology (broad) | 0.001 | 0.002 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.001 | 0.001 |
| Scholarly communication | 0.004 | 0.005 |
| Open science | 0.005 | 0.005 |
| Research integrity | 0.002 | 0.004 |
| Insufficient payload (model declined to judge) | 0.344 | 0.301 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".