napari 0.9.2#
⚠️ Note: these release notes are still in draft while 0.9.2rc1 is in prerelease testing. ⚠️
Sun, Sep 27, 2026
We’re happy to announce the release of napari 0.9.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.
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#
Vispy update#
In #9499 we improved and updated Vispy (napari’s rendering engine), which brings us a few fixes and new features. Some important ones:
perspective rendering of points and text is no longer broken (Shift+right-click-drag to change FOV in 3D!)
RGB data can now be viewed in 3D. This might still have some kinks to smooth out, so if you see issues, make sure to report them on the issue tracker.
Change of type-checker#
In #9395 we decided to change from mypy to pyrefly.
pyrefly is faster and support more typing features than mypy.
add blogpost link here
More strict release cadence#
Based on our experience and feedback from the community, we decided to make our release cadence more strict. We decided to go to monthly cadence with exception for December. The formalization is added in napari/docs#1126. The actual policy is here.
New Features#
Add multiscale level extraction as a
LayerListaction (#9495)
Improvements#
Add setting for global multisampling/antialiasing (#8570)
Reorder font-family declaration in console QSS (#9325)
Performance: Avoid redundant unit conversion when aggregating layer extents (#9411)
Add
RenamedEmittersubclass ofWarningEmitterto simplify renaming (#9482)Bump vispy: rgb volumes, fixed perspective and overlay bleed (#9499)
Add nD projection modes to points layer (replaces
out_of_slice_display) (#9534)
Performance#
Bug Fixes#
Allow
fourier_transform_playground.pyto work via drag’n’drop (#8175)Fix view direction and refactor camera logic into vispy module (#9389)
fix(vectors): emit edge_color_mode when the color setter changes the mode (#9396)
Fix _unique_element crash and incorrect result for list-valued features (#9409)
Keep dock widgets resizable when their widget asks for vertical space (#9462)
Fix keeping properties and equality operators from parent class (#9479)
Bump vispy: rgb volumes, fixed perspective and overlay bleed (#9499)
Fix calculation of number of viewboxes (#9509)
Fix qt command palette row indexing (#9512)
Frozen overlay dicts (#9525)
Add nD projection modes to points layer (replaces
out_of_slice_display) (#9534)
Build Tools#
Bump vispy: rgb volumes, fixed perspective and overlay bleed (#9499)
Documentation#
Other Pull Requests#
CI: skip docs build for CI-only changes (#8859)
fix(typing): add typing and fix mypy error in
qt_layer_model.py(#9168)chore: cleanup unused functions (#9387)
Remove stale viewer context (#9406)
Update
coverage,dask,hypothesis,ipython,platformdirs,pydantic,virtualenv,wrapt(#9471)Fix –pre testing workflows to run only specific subset of environments (#9480)
Update
coverage,hypothesis,ipython,lxml,matplotlib,numpy,pint,platformdirs,psygnal,pytest-rerunfailures,tifffile,tqdm,virtualenv,wrapt(#9492)[pre-commit.ci] pre-commit autoupdate (#9496)
[pre-commit.ci] pre-commit autoupdate (#9510)
Disable graphviz on macos-intel, generate dependency pdf conditionally (#9514)
TYP: add type hints in
mouse_bindings.py(#9540)
14 reviewers added to this release (alphabetical)#
(+) denotes first-time contributors 🥳
Aditya Nikam - @adityaanikam +
Aniket - @Aniketsy
Ashley Anderson - @aganders3
Carlos Mario Rodriguez Reza - @carlosmariorr
Carol Willing - @willingc
Draga Doncila Pop - @DragaDoncila
Grzegorz Bokota (docs) - @Czaki
Jacopo Abramo - @jacopoabramo
Juan Nunez-Iglesias - @jni
Lorenzo Gaifas - @brisvag
Matt Einhorn - @matham +
Matthias Schabel - @matthiasschabel
Peter Sobolewski - @psobolewskiPhD
Tim Monko - @TimMonko