Skip to content

Changelog

Unreleased

  • Specification only, no code change: docs/spec.md draft 3 adds the contract for 0.2 (metadata and placed creation: the OME 0.4/0.5 document builder, the level rule, chunk keys, create, opening for write, aligned writes, add_level; Behaviours 10 to 16) and 0.3 (grids and blocks: Grid, blocks, write_chunk, level_factors, public path helpers; Behaviours 17 to 19), written from the five writer sessions' answers and a census of the I/O code the five repos still carry. The package stays read-only until 0.2 ships.

0.1.1 (2026-10-22)

  • funlib voxel_size/offset on the parent group place an array that carries none, for zarr and N5 alike; funlib's keys on an N5 array are read in the array's C order, as zarr-python's N5 store writes them (both from mesh-n-bone's review of its PR #48).
  • A precomputed path that names a scale is that scale under level=0 or "first" too; other levels warn and are ignored, as on an array path.
  • The GCE metadata guard is applied only off Google Cloud (decided from the DMI product name and the GCE_METADATA_* variables), so metadata-server credentials keep working on a Google VM.
  • Pyramid.placements(), voxel_sizes() and translations() read the group document when the pyramid was opened through one of its level paths too; they used to open every level from there, and a missing level made them raise.
  • Placement change. An N5 level with downsamplingFactors and no offset now sits with its corner at the origin at every level, as Neuroglancer draws N5: translation f / 2 * base. 0.1.0 followed BigDataViewer for pixelResolution pyramids, centring the base's voxel 0 on the origin ((f - 1) / 2 * base, half a base voxel lower), while placing resolution pyramids with the corner at the origin, so the two disagreed. Two shared fixture cases move and are renamed: n5_group_pixelresolution_and_downsampling_factors_corner_at_origin (translation 4, 4, 4) and n5_bigstitcher_resolution_with_downsampling_factors_corner_at_origin (0.5, 0.157, 0.157).

0.1.0 (2026-10-21)

  • First version, built to docs/spec.md: open zarr v2, zarr v3, N5 and Neuroglancer precomputed arrays and pyramids through tensorstore; one metadata precedence per format with the voxel-centre rule for translations; index-space and world-box reads with padding; level selection; nearest and linear resampling; retries; shared and capped tensorstore contexts. Built and trialled in one day against the readers it replaces in cellmap-flow, cellmap-analyze, mesh-n-bone and chunkmirage, and checked on their own data by the CineMap, liconn-err, registration-station and salamander repos; see docs/spec.md, "Trial status". Hot-path reads cost 0.1 to 0.2 ms over a raw tensorstore read.