napari: a multi-dimensional image viewer for Python
Bibliographic record
Abstract
napari 0.6.2 ⚠️ Note: these release notes are still in draft while 0.6.2 is in release candidate testing. ⚠️ Mon, Jun 23, 2025 We're happy to announce the release of napari 0.6.2! 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. Highlights Qt controls for thick slicing (#6146) Add grid overlay (#7827) Grid mode using vispy ViewBox and linked cameras (#7870) Features table widget as builtin (#7877) Move napari into src layout (#7952) Add public API to get access to docked widgets (#7965) New Features Qt controls for thick slicing (#6146) Add automatic area and perimeter measurement for shapes + action (#7262) Add canvas color to public API (#7778) Add grid overlay (#7827) Tiling canvas overlays (#7836) Features table widget as builtin (#7877) Improvements Allow use functions from PartSegCore-compiled-backend as numba alternative for data to texture mapping (#6617) Reduce warmup of numba if non numba backend is selected (#7917) Optional rotation handle for selection box overlay + simplify inheritance for Vispy overlays (#7958) Add public API to get access to docked widgets (#7965) Implement pasting spatial information into higher dimensions (#7973) Allow to use ViewerModel as annotation of plugin constructor argument (#8002) speedup edge width set by use batched_updates context manager (#8006) Performance Allow use functions from PartSegCore-compiled-backend as numba alternative for data to texture mapping (#6617) [Shapes] Use the plural methods to update colors of all selected shapes at once (#7995) Bug Fixes Fix scalebar theme connection (#7902) Don't add widgets to non-contributable menus (#7926) Fix handle mouse events (#7936) Fix moving of first/last vertex of polygons added in ring mode (#7942) Update shapes highlight on zoom (#7953) Fix invalidate of extent cache in Layers (#7972) [Points] Fix events.data_indices for ActionType.ADDED event when adding single point (#7983) Fix interaction box initialization (#8011) Fix angles not showing correctly in UI (#8013) API Changes Expose force_sync context manager (#7908) Documentation Add example linking the cameras of two viewers (#6881) Update README to use imshow and add example to generate image (#7989) Update version switcher for 0.6.1 (docs#713) Update contributing docs page (docs#715) Update code of conduct committee members (docs#716) Add initial documentation about widget communication (docs#721) Update installation.md to link to conda getting started not miniconda (docs#726) Update governance docs (docs#729) Initial release notes for alpha of 0.6.2 (docs#734) Other Pull Requests Layer controls widgets refactor (#7355) Add codespell support (config, workflow to detect/not fix) and make it fix few typos (#7619) Add docs constraints for python 3.12 (#7714) Include Qt PyPI server for pre-releases (#7803) Refactor layer overlays visuals from VispyLayer to VispyCanvas (#7835) Use information about units when calculate scale of layers when render (#7889) Add cron check to update reader extensions (#7907) Update dask, hypothesis, numpy, tensorstore, vispy (#7948) Move export ROI implementation into qt_viewer (#7950) [pre-commit.ci] pre-commit autoupdate (#7951) Add cron check to update reader extensions v2 (#7957) Restore image in Readme (#7959) Add cron check to update reader extensions v3 (#7966) Update coverage, dask, fsspec, hypothesis, pydantic, tifffile, vispy (#7967) fix vendored script and trigger workflow on pull_request (#7968) [pre-commit.ci] pre-commit autoupdate (#7970) Remove layers_change event that is marked to be removed in 0.5.0 (#7971) [maintenance] Use Wandalen/wretry.action to auto-retry fail in --pre tests (#7986) Update hypothesis, ipython, jsonschema, tifffile (#7987) [pre-commit.ci] pre-commit autoupdate (#7988) Stop status thread on Keyboard Interruption (Ctrl+C) (#7994) Update hypothesis, magicgui, pandas, pyqt6, pytest, pytest-pretty (#8000) Update pyproject.toml to fix coverage paths (alt) (#8001) [Maintenance] Remove redundant initialization in Points layer and restructure for clarity (#8005) Update[shortcuts]: add Ctrl/Cmd-A as secondary keybinding for select_all_shapes (#8015) Fix comment and manual dispatch triggered build jobs (docs#723) 10 authors added to this release (alphabetical) (+) denotes first-time contributors 🥳 Draga Doncila Pop (docs) - @DragaDoncila Grzegorz Bokota (docs) - @Czaki Jacopo Abramo - @jacopoabramo + Juan Nunez-Iglesias - @jni Lorenzo Gaifas - @brisvag Maximilian Mayrhauser - @Llewi + Melissa Weber Mendonça - @melissawm Peter Sobolewski (docs) - @psobolewskiPhD Rahul Kumar - @rahul713rk + Tim Monko (docs) - @TimMonko 13 reviewers added to this release (alphabetical) (+) denotes first-time contributors 🥳 Ashley Anderson - @aganders3 Carol Willing - @willingc Daniel Althviz Moré - @dalthviz Draga Doncila Pop (docs) - @DragaDoncila Grzegorz Bokota (docs) - @Czaki Jacopo Abramo - @jacopoabramo + Juan Nunez-Iglesias - @jni Lorenzo Gaifas - @brisvag Melissa Weber Mendonça - @melissawm Peter Sobolewski (docs) - @psobolewskiPhD Tim Monko (docs) - @TimMonko Wouter-Michiel Vierdag - @melonora Yaroslav Halchenko - @yarikoptic
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.001 | 0.004 |
| 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.003 | 0.005 |
| Open science | 0.005 | 0.004 |
| Research integrity | 0.001 | 0.004 |
| Insufficient payload (model declined to judge) | 0.317 | 0.269 |
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".