napari-animation#

License BSD-3 PyPI Python Version tests codecov napari hub npe2 Copier

napari-animation is a plugin for making animations in napari.

Overview#

napari-animation provides a framework for the creation of animations in napari. The plugin contains:

  • an easy to use GUI for creating animations interactively;

  • a Python package for the programmatic creation of animations.

This plugin remains under development and contributions are very welcome, please open an issue to discuss potential improvements.

You can read the documentation at https://napari.org/napari-animation

Installation#

You can install napari-animation via pip:

pip install napari-animation

If napari is not already installed, you can install napari-animation with napari and Qt via:

pip install "napari-animation[all]"

Warning

napari-animation uses ffmpeg to export animations. If you are using a macOS arm64 computer (Apple Silicon e.g. M1, M2 processor) the PyPI package does not include the needed binary for your platform. You will need to install ffmpeg using conda from the conda-forge channel (conda install -c conda-forge ffmpeg) or using homebrew (brew install ffmpeg).

Conda#

napari-animation is also available for install using conda through the conda-forge channel.

conda install -c conda-forge napari-animation

Interactive use#

napari-animation can be used interactively.

An animation is created by capturing keyframes containing the current viewer state.

To activate the GUI, select napari-animation: wizard from the plugins menu

Scripting#

napari-animation can also be run programatically, allowing for reproducible, scripted creation of animations.

from napari_animation import Animation

animation = Animation(viewer)

viewer.dims.ndisplay = 3
viewer.camera.angles = (0.0, 0.0, 90.0)
animation.capture_keyframe()
viewer.camera.zoom = 2.4
animation.capture_keyframe()
viewer.camera.angles = (-7.0, 15.7, 62.4)
animation.capture_keyframe(steps=60)
viewer.camera.angles = (2.0, -24.4, -36.7)
animation.capture_keyframe(steps=60)
viewer.reset_view()
viewer.camera.angles = (0.0, 0.0, 90.0)
animation.capture_keyframe()
animation.animate('demo.mov', canvas_only=False)

Examples#

Examples can be found in our Examples gallery, generated from our example scripts. Simple examples for both interactive and headless use of the plugin follow.

Contributing#

Contributions are very welcome and a detailed contributing guide is coming soon. In the meantime, clone this repository and install it in editable mode using pip:

pip install -e . --group dev

We recommend using a virtual environment.

Important

Ensure you have a suitable Qt backend for napari! We recommend PyQt6. For more information, see the napari Qt backend installation guide

To set up your development installation, clone this repository, navigate to the clone folder, and install napari-animation in editable mode using pip.

conda create -n nap-anim python=3.13
conda activate nap-anim
pip install -e . --group dev pyqt6

Tests are run with tox. You can make sure your [dev] installation is working properly by running tox from within the repository.

Note

We use pre-commit to sort imports and lint with ruff automatically prior to each commit. To minmize test errors when submitting pull requests, please install pre-commit in your environment as follows:

pre-commit install

Documentation#

The documentation is available at https://napari.org/napari-animation

The documentation for napari-animation is built with Sphinx and the napari Sphinx Theme.

Building docs locally#

After installing the documentation dependencies with

pip install -e . --group doc

you can see a local version of the documentation by running

make docs

Open up the docs/_build/index.html file in your browser, and you’ll see the home page of the docs being displayed.

Deploying docs#

The napari-animation documentation is automatically built and deployed to the website whenever the main branch is updated, or a new release is tagged. This is controlled by the deploy_docs.yml github actions script.

You can also manually trigger a documenation re-build and deployment from the github actions tab.

License#

Distributed under the terms of the BSD-3 license, “napari-animation” is free and open source software

Issues#

If you encounter any problems, please [file an issue] along with a detailed description.

Acknowledgements#

Merlin Lange used napari-animation to create one of Nature’s best science images for September 2022.

This plugin is built on naparimovie from @guiwitz. naparimovie was submitted to napari in PR#851 before napari plugin infrastructure existed.