flimkit-zstack-explorer
3D intensity and FLIM volume explorer for FLIMKit z-stacks. Takes a z-stack
you've already loaded or fitted in FLIMKit, stacks its per-slice intensity
and lifetime maps into (Z, Y, X) volumes, saves them as an OME-Zarr store,
and opens a popout 3D viewer with the two volumes side by side.
What it does
- Adds Tools > 3D Z-stack Explorer... to FLIMKit.
- Only does anything once a z-stack is loaded (FOV mode > Z-stack); otherwise it tells you to load one first.
- Walks every slice in the loaded z-stack through the FOV preview panel's own display code (the same path used when you drag the z-slider), so the volume matches what's on screen slice by slice.
- Saves a 2-channel OME-Zarr store (channel 0 = intensity, channel 1 = lifetime in ns, NaN where a slice had no per-pixel fit).
- Opens a PyVista volume viewer in its own process — intensity on the left, FLIM lifetime on the right, camera-linked — so it doesn't compete with FLIMKit's Tkinter UI for the main thread.
Install
pip install flimkit-zstack-explorer[gui]
[gui] adds PyVista, which does the actual 3D rendering. Without it, the
volume-building and OME-Zarr saving still work, but the viewer step will
tell you it's missing and how to install it.
FLIMKit discovers this through the flimkit.plugins entry point, so there's
nothing else to wire up. On start it appears under Tools.
From code
from flimkit_zstack_explorer import build_zstack_volumes, save_ome_zarr, load_ome_zarr
# app is FLIMKit's running App instance, with a z-stack loaded in its
# FOV preview panel
intensity_stack, lifetime_stack = build_zstack_volumes(app)
save_ome_zarr('volume.zarr', intensity_stack, lifetime_stack,
voxel_size_um=(2.0, 0.5, 0.5))
intensity_stack, lifetime_stack = load_ome_zarr('volume.zarr')
To view a store outside FLIMKit:
python -m flimkit_zstack_explorer.viewer --zarr volume.zarr
Why a separate process for the viewer
FLIMKit's UI is Tkinter; PyVista's is VTK. Running VTK's render loop on a
background thread inside a Tkinter process is unreliable, especially on
macOS, where GUI toolkits generally expect to own the main thread. Building
the volume and saving to disk happens inside FLIMKit; the popout viewer is a
plain python -m flimkit_zstack_explorer.viewer subprocess reading the
saved store, so it gets its own main thread and doesn't touch Tkinter at
all.
Development
pip install -e .[gui,test]
pytest
tests/test_volumes.py exercises the z-stack-to-array logic against a fake
FOV preview panel, so it runs without Tkinter or a real FLIMKit install.
tests/test_zarr_io.py round-trips real arrays through zarr/ome-zarr.
Release files for flimkit-zstack-explorer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flimkit_zstack_explorer-0.1.0.tar.gz | 10.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flimkit_zstack_explorer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.9 kB
Release files / flimkit_zstack_explorer-0.1.0.tar.gz
| Download URL | flimkit_zstack_explorer-0.1.0.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b33c2ef6119323baa34734d007569797422726c60f4fee0e3f5023384a775b65
|
|
BLAKE2b-256 checksum How to use checksums |
3d832f4aa6755e697187f966f1fc624f38621883f79401f93e27d3d91cfff2ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logRelease files / flimkit_zstack_explorer-0.1.0-py3-none-any.whl
| Download URL | flimkit_zstack_explorer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e5a40f5eb45b00b66a430cab3a482d4aed70abd09224cfbd138a39a323f5f85
|
|
BLAKE2b-256 checksum How to use checksums |
c03b6e9ad74aa3133bae0a3a71c41f688251ad3fd5ba76dc26b90e2c55f29658
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency log