/napari-animation

A napari plugin for making animations

Primary LanguagePythonOtherNOASSERTION

napari-animation

License PyPI Python Version tests codecov

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.


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.

Installation

PyPI

napari-animation is available through the Python package index and can be installed using pip.

pip install napari-animation

Local

You can clone this repository and install locally with

pip install -e .

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

Headless

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

Examples can be found in our examples folder. 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. 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

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.