A plugin for making animations in napari
Project description
napari-animation
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.
You can read the documentation at https://napari.org/napari-animation
Installation
PyPI
napari-animation
is available through the Python package index and can be installed using pip
.
pip install napari-animation
`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](https://conda-forge.org/docs/#what-is-conda-forge) (`conda install -c conda-forge ffmpeg`)
or using [`homebrew`](https://brew.sh) (`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
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
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 .
We recommend using a virtual environment, for example conda
.
Ensure you have a suitable Qt backend for napari! We recommend `PyQt5`.
For more information, see the napari [Qt backend installation guide](https://napari.org/stable/tutorials/fundamentals/installation.html#choosing-a-different-qt-backend)
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.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.
We use [`pre-commit`](https://pre-commit.com) to sort imports and lint with
[`ruff`](https://github.com/astral-sh/ruff) and format code with
[`black`](https://github.com/psf/black) 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 ".[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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file napari_animation-0.0.8.tar.gz
.
File metadata
- Download URL: napari_animation-0.0.8.tar.gz
- Upload date:
- Size: 819.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f0888cc56bb164d7d3d129b7fb6482dca268ff15f4fc0fb49a1996b3864bcc |
|
MD5 | dbbdefd5371319fa181b8ca8df1330b5 |
|
BLAKE2b-256 | 815c6a68fc184711f6b0fe0e9cb9a4946329bb8f41e0cb9a6ea589c35e27d0fc |
File details
Details for the file napari_animation-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: napari_animation-0.0.8-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09afe0b7b637a3f5cbc6a1d6d0f7a0ad66a19a3e380a77d6bb3f5f2602d1c660 |
|
MD5 | c935265a19f57dd597939ff66326dadc |
|
BLAKE2b-256 | a95e2f337dc8329ed6d7bb5821553e33fa70a8642c2a0e5e36a6ab408f4ba72d |