pyspeckle
pyspeckle is a Python library for generating and analyzing laser speckle fields. It provides reproducible numerical implementations of physically motivated speckle models used in optical metrology, coherent imaging, and biomedical photonics.
The methods implemented in this package are derived from Duncan & Kirkpatrick (Algorithms for simulation of speckle (laser and otherwise), Proc. SPIE 6855, 2008). These algorithms unify a variety of simulation approaches across:
objective speckle (non-imaged fields),
subjective speckle (imaged fields),
static speckle, and
dynamic speckle including translation, strain, boiling, and decorrelation.
Scientific Context
Coherent imaging systems—including SAR, OCT, ultrasound, ESPI, and laser speckle contrast imaging—produce granular interference patterns defined by the random phase relationships of scattered waves.
Representative Outputs
1D speckle
2D speckle
Documentation
Full documentation and algorithm demonstrations are available at:
https://pyspeckle2.readthedocs.io
Try in JupyterLite (no install required):
Installation
pip:
pip install pyspeckle
conda:
conda install -c conda-forge pyspeckle
Citation
If you use pyspeckle in academic, instructional, or applied technical work, please cite:
Prahl, S. (2026). pyspeckle: Tools for objective and subjective laser speckle analysis (Version 0.6.1) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.8311677
BibTeX
@software{pyspeckle_prahl_2026,
author = {Scott Prahl},
title = {pyspeckle: Tools for objective and subjective laser speckle analysis},
year = {2026},
version = {0.6.1},
doi = {10.5281/zenodo.8311677},
url = {https://github.com/scottprahl/pyspeckle},
publisher = {Zenodo}
}
License
pyspeckle is released under the MIT License. Contributions are welcome.