slmsuite
combines GPU-accelerated beamforming algorithms with optimized hardware control, automated calibration, and user-friendly scripting to enable high-performance programmable optics with modern spatial light modulators.
- GPU-accelerated iterative phase retrieval algorithms (e.g. Gerchberg-Saxton, weighted GS, or phase-stationary WGS)
- A simple hardware-control interface for working with various SLMs and cameras
- Automated Fourier- to image-space coordinate transformations: choose how much light goes to which camera pixels;
slmsuite
takes care of the rest! - Automated wavefront calibration to improve manufacturer-supplied flatness maps or compensate for additional aberrations along the SLM imaging train
- Optimized optical focus/spot arrays using camera feedback, automated statistics, and numerous analysis routines
- Mixed region amplitude freedom, which ignores unused far-field regions in favor of optimized hologram performance in high-interest areas.
- Toolboxes for structured light, imprinting sectioned phase masks, SLM unit conversion, padding and unpadding data, and more
- A fully-featured example library that demonstrates these and other features
Install the stable version of slmsuite
from PyPI using:
pip install slmsuite
Install the latest version of slmsuite
from GitHub using:
pip install git+https://github.com/slmsuite/slmsuite
Extensive documentation and API reference are available through readthedocs.
Examples can be found embedded in documentation, live through nbviewer, or directly in source.
slmsuite
is built upon the work of many others. If you used any technique in particular,
be sure to check our documentation for links to relevant papers.
For acknowledgement of the package or unique features such as
aberration-space holography, please use the following citation:
@misc{
christen2025slmsuite,
Author = {Ian Christen and Christopher Panuski and Thomas Propson and Dirk Englund},
Title = {Full-volume aberration-space holography},
Year = {2025},
Eprint = {arXiv:2505.08777},
}