Skip to main content
Pre-release

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.

Lodstone streaming in napari

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
ndv with VisPy ndv with 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.

Lodstone streaming in ChimeraX

How it fits

Source + View + Target
          │
        Planner
          │
        Stream
  • Source exposes pyramid metadata and asynchronous regional reads.
  • View captures displayed axes, selections, viewport, and camera matrix.
  • Target describes renderer residency and applies completed updates.
  • Planner selects visible levels and chunks within the target budget.
  • Stream owns 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)

Source distribution for lodstone 0.1.0a1
File Size Uploaded Provenance
lodstone-0.1.0a1.tar.gz 10.6 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lodstone 0.1.0a1
File Interpreter ABI Platform
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page