In-depth explanations


These pages describe advanced usage and how napari works internally. If you are just getting started, check out our tutorials or how-to guides instead.

Advanced usage

magicgui is a python package that assists in building small, composable graphical user interfaces (widgets). To learn about using magicgui in napari, see the Using magicgui in napari guide.

If you’d like to start customizing the behavior of napari, it pays to familiarize yourself with the concept of an Event Loop. For an introduction to event loops and connecting your own functions to events in napari, see the An introduction to the event loop in napari.

If you use napari to view and interact with the results of long-running computations, and would like to avoid having the viewer become unresponsive while you wait for a computation to finish, you may benefit from reading about Multithreading in napari.

If you are interested in using napari to explore 3D objects, see 3D interactivity.

See Rendering in napari for two experimental features than can optionally be enabled to add non-blocking rendering to napari. You can also check out the dedicated guide on asynchronous rendering in napari.

To understand how to test and measure performance in napari, see napari performance.

Architecture documents

See Preferences for the list of preferences that can be set via the preferences dialog.

If you are writing a plugin manifest, or are interested in contributing to napari, you can also read about the concept of Contexts and Expressions in napari.

For a full list of events you may connect to, see Events reference.