Skip to content

VIPP 0.13.0a9

VIPP 0.13.0a9 is a focused correctness release for workflows that combine declared 3D image axes, CPU-only processing steps, reviewed GPU providers, and multiple downstream measurements. It packages fixes found while testing real microscopy workflows before development returns to the broader 0.14 line.

This remains alpha software. Preserve original images and workflows, test representative inputs, and review important outputs before using them for scientific conclusions or publication.

Highlights

Prefer GPU through mixed CPU/GPU workflows

Prefer GPU now carries exact shape, dtype, and axis facts through CPU-only operations such as Rescale Axes, Rescale Intensity, and Unsharp Mask. A reviewed downstream CuPy or CuPyX implementation therefore remains eligible after a required host operation. The host operation itself still runs on CPU, and every node continues to report the implementation that actually ran.

Prefer GPU does not bypass runtime, dependency, scientific-parity, dtype, parameter, workload, or memory admission. If an installation cannot use an otherwise reviewed GPU implementation, select the node and read its compute details for the exact CPU decision or fallback reason.

Reliable declared 3D processing

  • Changing an Image Source from QYX to ZYX immediately refreshes effective axes along the active branch. Gaussian Blur 3D exposes Sigma Z without waiting for a successful full pixel calculation, retains the authored value while hidden, and restores the correct control after save/reopen.
  • Skeletonize now makes its resolved spatial processing explicit. Auto uses Lee thinning for declared ZYX, processes each leading ZYX block once as a volume, and records the resolved method and dimensionality. Zhang remains a 2D-only method.
  • Ambiguous TIFF page axes still fail closed. Declare QYX -> ZYX only after acquisition information confirms that the pages are depth slices.

Sibling measurements remain ready together

Re-materializing an unchanged file no longer changes its effective source identity merely because the array wrapper is new. Sequential manual sibling measurements can remain ready together and feed Merge Tables in either execution order, including after low-memory cache pruning. A genuine source, parameter, connection, labels, or intensity change still invalidates the affected descendants.

Actionable GPU VRAM preflight

When a planned GPU segment cannot fit before execution, the diagnostic now identifies the CUDA device and every affected graph node. It reports estimated peak use, effective available VRAM, and the shortfall in readable MiB or GiB; technical details retain exact byte counts and distinguish the free-VRAM safety reserve from a configured cap. Suggested remedies include reducing the input, moving a listed node to CPU to split the segment, closing other GPU applications, or accepting visible CPU fallback when planning offers it.

This is a conservative pre-execution admission result, not a CUDA allocation failure and not evidence that ordinary system RAM is exhausted.

Installation

Windows installer

Download the explicitly unsigned installer and checksum file from the official v0.13.0a9 GitHub release:

  • VIPP-Setup-0.13.0a9-Windows-x86_64-UNSIGNED.exe
  • SHA256SUMS-Windows-0.13.0a9.txt

Verify the complete SHA-256 value before opening the installer. Windows reports Unknown publisher for this unsigned alpha and may require More info -> Run anyway. Stop if the checksum differs or antivirus reports a threat; never disable Windows security.

The managed installer continues to offer CPU and NVIDIA CUDA 13 installations side by side. The CUDA route includes the pinned CuPy/CuPyX and CUDA component stack; no separate GPU add-on is required.

Manual installation

CPU on Windows, Linux, or macOS:

python -m pip install --upgrade "napari[pyqt6]>=0.6" "napari-vipp==0.13.0a9"

The reviewed native-Windows CUDA route uses CPython 3.12:

python -m pip install --upgrade "napari[pyqt6]>=0.6" "napari-vipp[gpu-cuda13]==0.13.0a9"
vipp-compute-doctor --track cuda13

Compatibility and migration

  • VIPP accepts workflow schemas 3 and 4 and writes schema 4.
  • Batch configurations and manifests remain schema 3.
  • Existing 0.13 workflows remain supported, but cached scientific results are not stored in workflow JSON; recalculate and validate after upgrading.
  • Generated Python remains pinned to the exact VIPP version that created it; regenerate exports after upgrading.
  • Preserve an important workflow before changing its source-axis declaration, then verify the effective axes and Z calibration before volumetric analysis.
  • Recheck actual CPU/GPU badges after upgrading. Saved compute intent is not a promise that another machine has a healthy compatible CUDA runtime.

Scientific boundary

CPU remains the portable reference and fallback. GPU eligibility is specific to the operation, exact workload, installed runtime, and device. VIPP does not silently cast an image or change a scientific parameter to make a node run on GPU.

The release workstation completed the original affected workflow under global Prefer GPU. Subtract Background, Convert Dtype, Gaussian Blur, Otsu, Remove Outliers, and Remove Small Objects used reviewed CuPy/CuPyX implementations across CPU-only Rescale Axes, Rescale Intensity, and Unsharp Mask boundaries with no fallback. This bounded result verifies the planner and those reviewed providers in that environment; it is not a claim that every installation has a healthy CUDA runtime.

Release verification

The annotated tag, public prerelease, PyPI files, and six GitHub assets resolve to the exact release commit and hashes below. The unchanged installer transaction/dependency baseline carries forward from 0.13.0a8; a9 regenerated the exact-tag package, installer, checksum, publication, and focused changed- behavior evidence.

Check Exact release record
Annotated v0.13.0a9 tag d476c8976c91679faaaf0fe196c90b1ab4d63458
Exact-main application CI Passed: run 32825042433
Windows installer build smoke Passed: run 32825073086
Exact-tag unsigned installer integrity Passed: the release manifest records development=false, exact tag/commit/version, the qualified embedded wheel, and NotSigned; lifecycle evidence is carried forward from a8 because transaction/toolchain inputs did not change
Public GitHub alpha prerelease Passed: six exact assets
Public PyPI wheel and source archive Passed: workflow 32827936977; public digests and sizes match the GitHub assets
Wheel napari_vipp-0.13.0a9-py3-none-any.whl c2f04335fd0a3a82e4b73ef570d42d27edd1dc0660482e806e2942566d4bab1f
Source archive napari_vipp-0.13.0a9.tar.gz 27d91b47cc2ada55e38af4ffc090099f1bb594fb185fd1d99c9d1d2c517c3e42
VIPP-Setup-0.13.0a9-Windows-x86_64-UNSIGNED.exe 7fbad9300db5d6b49963713248696d69302c11e5c23754fd0cae6864b5a2c0b8
VIPP-Setup-0.13.0a9-Windows-x86_64-UNSIGNED-release.json b264a58536eb9e147bf2f4fa36ff6e12058e075f56e21ed6cb58b88f10722123
VIPP-Setup-0.13.0a9-Windows-x86_64-UNSIGNED-THIRD-PARTY-NOTICES.txt 95ca668d0977be347ab39af820f97652ed3565ed7ea4218205bb3a716a847e2d
SHA256SUMS-Windows-0.13.0a9.txt 534f45e46c834c54ac2d01de8ed796dde6ac95830d1a4881ccb4624cf6ecc49f

The application release and PyPI project page are the canonical distribution locations.

Continue reading