Specification¶
This section is the authoritative reference for the Zarr Vector Format
(ZVF) as implemented in zarr-vectors-py. It is written to serve two
audiences simultaneously:
Users who want to understand precisely what the format does and why, so they can make informed decisions about chunk sizes, metadata, and resolution pyramids.
Contributors who want to implement new geometry types, extend the validation suite, or propose changes to the format itself.
Each page follows a consistent structure: a Terms section defining all vocabulary used on that page, a plain-English Introduction, and a detailed Technical reference section with schemas, pseudocode, and worked examples.
Design goals¶
ZVF was designed to satisfy the following constraints simultaneously:
Cloud-native random access. Spatial queries should require only the minimum number of I/O operations, whether the store is on a local file system or in an object store (S3, GCS). This is achieved through spatial chunking at the chunk level and sub-chunk indexing at the bin level.
Multi-resolution out of the box. Viewers that render large-scale 3-D data (Neuroglancer, napari, custom WebGL) need coarser representations for overview rendering. ZVF encodes resolution pyramids natively, with OME-Zarr-compatible metadata so any NGFF-aware viewer can discover them.
Geometry-type agnostic layout. Points, streamlines, graphs, and meshes
all use the same spatial chunking layout. This means a single I/O layer
handles all types; type-specific logic lives only in the arrays present
within each chunk group (e.g. meshes have a links/<delta> array that point
clouds do not).
Format transparency. A ZVF store is a plain Zarr v3 directory tree.
No binary wrapper, no proprietary codec required for the base format. Every
array can be opened with the standard zarr library.
Contributor-accessible. The format is fully documented in this spec so that an external contributor can implement a compliant reader, writer, or validator without access to the original authors.
Relationship to upstream specifications¶
Specification |
Relationship |
|---|---|
ZVF stores are valid Zarr v3 stores. All array storage, codec, and metadata conventions are inherited from Zarr v3. |
|
ZVF borrows the |
|
The original specification by Forest Collman. |
|
A related format for static Neuroglancer hosting. See comparison. |
|
A streamline-specific format. See comparison. |
Specification sections¶
- Zarr v3 primer
- Store types and the backend layer
- Dimensionality
- Codec pipeline
- Directory structure
- Root metadata
- Level groups
- Chunk arrays
- Fragment-index arrays
- Chunk shape
- Bin shape
- Chunk vs bin
- Rechunking
- Sharding
- Multiscale metadata
- Pyramid construction
- Object sparsity
- Geometry types
- Vertex groups and fragments
- Object manifest
- Links and cross-chunk links
- Object attributes
- Validation overview
- ZVF and Neuroglancer precomputed
- ZVF and TRX format
- ZVF and OME-Zarr
- Spec change process
- Adding a new geometry type
- Compliance testing