QPG-MIT / slmsuite

Python package for high-performance spatial light modulator (SLM) control and holography.
https://slmsuite.readthedocs.io
MIT License
48 stars 12 forks source link
adaptive-optics cgh computer-generated-hologram computer-generated-holography gerchberg-saxton gerchberg-saxton-algorithm hologram holography optics phase-retrieval photonics slm spatial-light-modulator wavefront-sensing

qp-slm

High-Performance Spatial Light Modulator Control and Holography

Documentation Status License: MIT Code style: black

`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. ## Key Features - [GPU-accelerated iterative phase retrieval algorithms](https://slmsuite.readthedocs.io/en/latest/_examples/computational_holography.html#Computational-Holography) (e.g. Gerchberg-Saxton, weighted GS, or phase-stationary WGS) - [A simple hardware-control interface](https://slmsuite.readthedocs.io/en/latest/_examples/experimental_holography.html#Loading-Hardware) for working with various SLMs and cameras - [Automated Fourier- to image-space coordinate transformations](https://slmsuite.readthedocs.io/en/latest/_examples/experimental_holography.html#Fourier-Calibration): choose how much light goes to which camera pixels; `slmsuite` takes care of the rest! - [Automated wavefront calibration](https://slmsuite.readthedocs.io/en/latest/_examples/wavefront_calibration.html) to improve manufacturer-supplied flatness maps or compensate for additional aberrations along the SLM imaging train - Optimized [optical focus/spot arrays](https://slmsuite.readthedocs.io/en/latest/_examples/computational_holography.html#Spot-Arrays) using [camera feedback](https://slmsuite.readthedocs.io/en/latest/_examples/experimental_holography.html#A-Uniform-Square-Array), automated statistics, and numerous analysis routines - [Mixed region amplitude freedom](https://slmsuite.readthedocs.io/en/latest/_autosummary/slmsuite.holography.algorithms.Hologram.html#slmsuite.holography.algorithms.Hologram.optimize), which ignores unused far-field regions in favor of optimized hologram performance in high-interest areas. - [Toolboxes for structured light](https://slmsuite.readthedocs.io/en/latest/_examples/structured_light.html#), imprinting sectioned phase masks, SLM unit conversion, padding and unpadding data, and more - A fully-featured [example library](https://slmsuite.readthedocs.io/en/latest/examples.html) that demonstrates these and other features ## Installation Install the stable version of `slmsuite` from [PyPi](https://pypi.org/project/slmsuite/) using: ```console $ pip install slmsuite ``` Install the latest version of `slmsuite` from GitHub using: ```console $ pip install git+https://github.com/QPG-MIT/slmsuite ``` ## Documentation and Examples Extensive [documentation](https://slmsuite.readthedocs.io/en/latest/) and [API reference](https://slmsuite.readthedocs.io/en/latest/api.html) are available through readthedocs. Examples can be found embedded in [documentation](https://slmsuite.readthedocs.io/en/latest/examples.html), live through [nbviewer](https://nbviewer.org/github/QPG-MIT/slmsuite-examples/tree/main/examples/), or directly in [source](https://github.com/QPG-MIT/slmsuite-examples).

qp-slm