# Tools
A list of tools and libraries with OME-Zarr support. These are developed by various members of the NGFF community. If you think your tool/library should be listed here, please [open a pull request](https://github.com/ome/ngff).
For tools supporting the core Zarr specification, agnostic to NGFF, see the [Zarr documentation](https://zarr.dev/implementations/).
While some tools would fit multiple categories, we assigned each tool to a single candidate best matching category.
## Contents
- [Tools](#tools)
- [Contents](#contents)
- [Tools with a graphical interface](#tools-with-a-graphical-interface)
- [Zarr viewers](#zarr-viewers)
- [Zarr converters (with a UI)](#zarr-converters-with-a-ui)
- [Tools for the programmatically inclined](#tools-for-the-programmatically-inclined)
- [Zarr converters](#zarr-converters)
- [Zarr readers \& writers](#zarr-readers--writers)
- [Zarr validation](#zarr-validation)
- [Rendering libraries](#rendering-libraries)
## Tools with a graphical interface
### Zarr viewers
Want to view a Zarr? Use one of these.
[Check this out](https://ome.github.io/ome-ngff-tools/) to see viewer compatibility with various OME-Zarr features & versions.
| Name | Link | Description |
| -------- | ------- | ------- |
| AGAVE | [
](https://www.allencell.org/pathtrace-rendering.html) | Desktop application for viewing multichannel volume data powered by your GPU |
| FIJI (MoBIE / BigDataViewer) | [
](https://mobie.github.io/) | [FIJI](https://fiji.sc/) plug-in for exploring and sharing big multi-modal image and associated tabular data |
| FIJI (n5-ij) | [
](https://github.com/saalfeldlab/n5-ij) | [FIJI](https://fiji.sc/) plug-in for loading and saving image data to OME-Zarr and other formats supported by the N5 API |
| ITKWidgets | [
](https://github.com/InsightSoftwareConsortium/itkwidgets) | Python tool for interactively viewing images (ex. in Jupyter) |
| Kiln | [
](https://github.com/MPanknin/kiln-render) | A WebGPU-native out-of-core rendering system for virtualized volumetric data |
| Microscopy Nodes |[](https://github.com/aafkegros/MicroscopyNodes) | [Blender](https://www.blender.org/) add-on for visualizing high-dimensional microscopy data |
| napari | [
](https://github.com/ome/napari-ome-zarr) | [napari](https://napari.org/) plug-in for viewing Zarr |
| Neuroglancer | [
](https://github.com/google/neuroglancer) | A browser-based volume viewer |\
| Odon | [
](https://github.com/alexcoulton/odon) | A spatial proteomics OME-Zarr viewer built in Rust.|
| QuPath | [
](https://github.com/qupath/qupath) | Open source software for digital pathology image analysis |
| syGlass | [
](https://www.syglass.io/) | A VR desktop application for visualizing and segmenting 3D image data, with OME-Zarr streaming support. |
| Viv (Avivator, Vizarr, Vitessce, ...) | [
](https://github.com/hms-dbmi/viv) | A toolkit for interactive visualization of high-resolution, multiplexed bioimaging datasets. The viv toolkit is used by the [Avivator](https://avivator.gehlenborglab.org), [Vizarr](https://github.com/hms-dbmi/vizarr) and [Vitessce](http://vitessce.io) image viewers, among others |
| Vol-E | [
](https://vole.allencell.org/) | A browser-based volume viewer |
| WEBKNOSSOS | [
](https://home.webknossos.org/) | An open-source tool for annotating and exploring large 3D image datasets |
### Zarr converters (with a UI)
Want to convert your file to Zarr? Use one of these tools that has a user interface.
| Name | Link | Description |
| -------- | ------- | ------- |
| NGFF-Converter | [](https://github.com/glencoesoftware/NGFF-Converter) | A desktop application for conversion of bioimage formats into OME-Zarr or OME-TIFF. |
## Tools for the programmatically inclined
### Zarr converters
Want to convert from a different file format to a Zarr? Use one of these tools.
Check out the [readers and writers below](#zarr-readers--writers) to interact with Zarrs in others ways as well conversion.
| Name | Link | Description |
| -------- | ------- | ------- |
| BatchConvert | [](https://github.com/Euro-BioImaging/BatchConvert) | A Nextflow based command-line tool that wraps bioformats2raw for parallelised conversion of image data collections to OME-Zarr. |
| bioformats2raw | [](https://github.com/glencoesoftware/bioformats2raw) | Java application to convert image file formats, including .mrxs, to an intermediate Zarr structure compatible with the OME-Zarr specification. |
| BioIO Conversion | [
](https://github.com/bioio-devs/bioio-conversion) | CLI & scripting tool for easily converting images to OME-Zarr. Requires [bioio-ome-zarr](https://github.com/bioio-devs/bioio-ome-zarr) |
| EuBI-Bridge | [](https://github.com/Euro-BioImaging/EuBI-Bridge) | A tool for distributed conversion of microscopic image collections into the OME-Zarr format. |
| ITKIOOMEZarrNGFF | [](https://github.com/InsightSoftwareConsortium/ITKIOOMEZarrNGFF) | An ITK external module for IO of images stored in OME-Zarr file format. | Reading & Writing |
| kfb2zarr | [](https://github.com/camlloyd/kfb2zarr) | Convert KFBio whole slide images (.kfb, .kfbf) to OME-Zarr. |
| multiscale-spatial-image | [](https://github.com/spatial-image/multiscale-spatial-image) | Generate a multiscale, chunked, multi-dimensional spatial image data structure that can serialized to OME-Zarr. | Reading & Writing |
| nd2 | [](https://github.com/tlambert03/nd2) | A Python library for reading nd2 files with native export to OME-Zarr, supporting multi-well plates and complete metadata preservation. |
| Nextflow (nf-omezarr) | [
](https://github.com/JaneliaSciComp/nf-omezarr) | A Nextflow pipeline for converting directories of images to OME-Zarr using bioformats2raw |
| PyMIF | [](https://github.com/grinic/pymif) | A modular Python package to read, visualize, and convert multiscale microscopy image data from various microscope platforms to OME-Zarr. |
| stack-to-chunk | [](https://stack-to-chunk.readthedocs.io) | A Python library to convert stacks of 2D images to OME-Zarr with minimal memory use and maximum concurrency. |
| stack_to_multiscale_ngff | [](https://github.com/CBI-PITT/stack_to_multiscale_ngff) | A tool for converting multi-terabyte stacks of images into a multiscale OME-Zarr. |
### Zarr readers & writers
Want to read or write a Zarr? Use one of these tools.
[Check this out](https://github.com/jwindhager/ome-ngff-readers-writers/) to see reader/writer compatibility with various OME-Zarr features & versions.
| Name | Link | Description |
| -------- | ------- | ------- |
| bfio | [](https://github.com/PolusAI/bfio) | A Python interface to Bioformats using jpype for direct access to the library. |
| bia-zarr | [](https://github.com/BioImage-Archive/bia-zarr) | A Python library for reading, writing, and manipulating OME-Zarr datasets, including thumbnail generation and OME-Zarr type detection. |
| Bio-Formats | [](https://github.com/ome/bioformats) | A standalone Java library for reading and writing life sciences image file formats. Requires [OMEZarrReader](https://github.com/ome/ZarrReader) |
| BioIO | [
](https://github.com/bioio-devs/bioio) | Image/Metadata Reading Writing for Microscopy Images in pure Python. Requires [bioio-ome-zarr](https://github.com/bioio-devs/bioio-ome-zarr) (formerly [AICSImageIO](https://github.com/AllenCellModeling/aicsimageio)) |
| iohub| [](https://github.com/czbiohub-sf/iohub) | Pythonic and parallelizable I/O for N-dimensional imaging data with OME metadata |
| ngff-zarr | [](https://github.com/fideus-labs/ngff-zarr) | A lean and kind Open Microscopy Environment (OME) Next Generation File Format (NGFF) Zarr implementation. |
| ngio | [](https://biovisioncenter.github.io/ngio/stable/) | Python package for bject-based API for opening, exploring, and manipulating OME-Zarr images and high-content screening (HCS) plates |
| ome-writers | [](https://github.com/pymmcore-plus/ome-writers) | A Python library for streaming acquisition data to OME-Zarr or OME-TIFF, supporting multiple array backends. |
| ome-zarr-py | [](https://github.com/ome/ome-zarr-py)| A Python library for reading and writing multi-resolution images stored as Zarr filesets, according to the OME-Zarr spec. |
| Zarr.NET | [](https://github.com/BiologyTools/Zarr.NET) | A native .NET library for reading and writing Zarr microscopy data. |
### Zarr validation
Want to validate a Zarr? Use one of these.
| Name | Link | Description |
| -------- | ------- | ------- |
| ome-ngff-validator | [
](https://ome.github.io/ome-ngff-validator/) | Web page for validating OME-Zarr files. |
| ome-zarr-models | [](https://github.com/ome-zarr-models/ome-zarr-models-py) | Python package and command line interface that can validate OME-Zarr files |
| yaozarrs | [](https://github.com/imaging-formats/yaozarrs) | Bottom-up python library with models and CLI for creating & validating OME-Zarr groups and documents with optional extras for array-backend-agnostic I/O |
## Rendering libraries
Libraries that support the rendering and navigation of OME-Zarr data, but that are not themselves applications with a graphical user interface.
| Name | Link | Description |
| -------- | ------- | ------- |
| OMEZarrTileSource | [](https://github.com/TissUUmaps/OMEZarrTileSource) | An OpenSeadragon tile source for the OME-Zarr bioimage file format. |
| ome-zarr.js | [](https://github.com/BioNGFF/ome-zarr.js) | A JavaScript library for simple rendering of thumbnails and images. |