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
QYXtoZYXimmediately 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 leadingZYXblock 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 -> ZYXonly 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.exeSHA256SUMS-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:
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.