This release is a pre-release and may not be stable for production use.
Lodstone
Lodstone is a renderer-neutral engine for view-dependent streaming of multiscale chunked arrays. Given a pyramid, camera, and renderer target, it selects visible levels and chunks, prioritizes them by visual value, and delivers updates without blocking the viewer.
Lodstone is an alpha. The core supports Python 3.11–3.14 and only requires NumPy. Viewer integrations currently use development branches while their streaming APIs stabilize.
Install
pip install lodstone==0.1.0a1
pip install "lodstone[ome-zarr]==0.1.0a1" # remote OME-Zarr sources
For the runnable viewer demos below, clone Lodstone so the example scripts are available:
git clone --depth 1 https://github.com/kephale/lodstone.git
cd lodstone
All commands use the public ZSNS001 Zebrahub light-sheet dataset at timepoint
400. Clone the viewer repositories next to lodstone, giving this layout:
work/
├── lodstone/
├── napari/
├── ndv/
└── chimerax-ome-zarr/
Run with napari
The napari integration uses a single multiscale layer, bounded resident intervals, partial texture uploads, and a shared Lodstone runtime.
cd ..
git clone --depth 1 --single-branch --branch lodstone-integration \
https://github.com/kephale/napari.git
cd napari
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[pyqt6,progressive]"
.venv/bin/python -m pip install -e "../lodstone[ome-zarr]"
cd ../lodstone
../napari/.venv/bin/python examples/napari_zebrahub.py \
--time 400 --ndisplay 3
Add --trace-chunks to log plans, cache hits, source reads, and evictions, or
--diagnostic-levels to color pixels by the pyramid level that supplied them.
Run with ndv
Both ndv backends use the same source, planner, runtime, and dense clipmap target. Only the canvas renderer changes.
cd ..
git clone --depth 1 --single-branch --branch lodstone-integration \
https://github.com/kephale/ndv.git
cd ndv
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[pyqt,vispy,pygfx]"
.venv/bin/python -m pip install -e "../lodstone[ome-zarr]"
cd ../lodstone
../ndv/.venv/bin/python examples/ndv_dense.py \
--backend vispy --time 400
Close the VisPy window, then run the identical data path with PyGFX:
../ndv/.venv/bin/python examples/ndv_dense.py \
--backend pygfx --time 400
| VisPy | PyGFX |
|---|---|
Run with ChimeraX
The ChimeraX integration is provided by the OME-Zarr bundle's streaming
branch. The commands below use ChimeraX Daily on macOS; adjust
CHIMERAX_PYTHON and CHIMERAX for another installation.
cd ..
git clone --depth 1 --single-branch --branch codex/lodstone-streaming \
https://github.com/kephale/chimerax-ome-zarr.git
cd chimerax-ome-zarr
export CHIMERAX=/Applications/ChimeraX_Daily.app/Contents/bin/ChimeraX
export CHIMERAX_PYTHON=/Applications/ChimeraX_Daily.app/Contents/bin/python3.14
"$CHIMERAX_PYTHON" -m pip install --no-deps --force-reinstall ../lodstone
PYTHONPATH="$PWD" "$CHIMERAX_PYTHON" -m chimerax.core --nogui --exit \
--cmd "devel build ."
"$CHIMERAX_PYTHON" -m chimerax.core --nogui --exit --cmd \
"toolshed install $PWD/dist/chimerax_ome_zarr-1.0.0a1-py3-none-any.whl noDeps true reinstall true"
"$CHIMERAX" --cmd \
"open ngff:https://public.czbiohub.org/royerlab/zebrahub/imaging/single-objective/ZSNS001.ome.zarr streaming true"
Restart ChimeraX after replacing Lodstone or reinstalling the bundle.
How it fits
Source + View + Target
│
Planner
│
Stream
Sourceexposes pyramid metadata and asynchronous regional reads.Viewcaptures displayed axes, selections, viewport, and camera matrix.Targetdescribes renderer residency and applies completed updates.Plannerselects visible levels and chunks within the target budget.Streamowns scheduling, cancellation, caching, batching, and stale-work rejection.
Storage chunks and display tiles are independent. A renderer may request small
bricks while a remote Zarr source stores larger chunks; Lodstone coalesces and
caches the native reads needed to assemble those updates. Multiple layers can
share one Runtime while retaining independent stream state.
See Camera-aware multiscale rendering for the planner math and the roadmap for metadata culling, sharding, and virtual texture residency.
Viewer status
| Viewer | Integration | Status |
|---|---|---|
| ChimeraX OME-Zarr | PR 22 | 3-D clipmap streaming; visually validated |
| napari | integration PR 34 | Image and Labels; visually validated |
| ndv + VisPy | kephale/ndv:lodstone-integration |
Reference ndv backend; visually validated |
| ndv + PyGFX | kephale/ndv:lodstone-integration |
Same data path; visually validated |
Integrations should pin an exact Lodstone prerelease. Compatibility is claimed only for combinations covered by native tests and visual smoke tests.
Develop
uv run --extra test pytest
uv run --group dev ruff check .
uv run --group dev pyright src
The test suite is network-independent. See CHANGELOG.md, RELEASING.md, and the renderer architecture for deeper reference material.
Metadata
Release files for lodstone 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| lodstone-0.1.0a1.tar.gz | 10.6 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lodstone-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.7 MB
Release files / lodstone-0.1.0a1.tar.gz
| Download URL | lodstone-0.1.0a1.tar.gz |
|---|---|
| Size | 10.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b9f15d1b3a0d068910e6c22a05690d8821dee725d1aa2540f7f520b8abb6128
|
|
BLAKE2b-256 checksum How to use checksums |
6ff514fefbd8e262137008ee517bee47191c7bcecb33baebc69c9f20fc1695b9
|
| 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 Aug 30, 2026.
Transparency logRelease files / lodstone-0.1.0a1-py3-none-any.whl
| Download URL | lodstone-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 70.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
688ba32905c3acb14683282221ef79fc97b9546b99ff2b68d8b2487cef8ca93c
|
|
BLAKE2b-256 checksum How to use checksums |
90c245f332a03646ffcf54b47b3f158d203a13de15b1d75ce6fbc0a08c4e970b
|
| 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 Aug 30, 2026.
Transparency logSecurity for lodstone 0.1.0a1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for lodstone-0.1.0a1.tar.gz
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 Aug 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.