napari-animation is a plugin for making animations in napari.
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.
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.
napari-animation
is available through the Python package index and can be installed using pip
.
pip install napari-animation
You can clone this repository and install locally with
pip install -e .
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
napari-animation can also be run headless, 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 can be found in our examples folder. Simple examples for both interactive and headless use of the plugin follow.
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
.
We recommend using a virtual environment, for example conda
.
Important
Ensure you have a suitable Qt backend for napari! We recommend PyQt5
.
For more information, see the napari Qt backend installation guide
conda create -n nap-anim python=3.10
conda activate nap-anim
pip install -e ".[dev]" PyQt5
Tests are run with pytest
.
You can make sure your [dev]
installation is working properly by running
pytest .
from within the repository.
Note
We use pre-commit
to sort imports with
isort
, format code with
black
, and lint with
flake8
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
Distributed under the terms of the BSD-3 license, "napari-animation" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.