Installation#
All commands below use pip. For editable (development) installs from a local
clone, pass the -e flag (e.g. pip install -e .).
Tip
We recommend uv as a fast, modern package
manager. To use it, substitute uv pip for pip in all commands below.
Note that uv pip install defaults to editable mode, so the -e flag
is not needed.
PyPI#
Install the stable version of slmsuite from PyPI using:
pip install slmsuite
GitHub#
Install the latest version of slmsuite from GitHub using:
pip install git+https://github.com/holodyne/slmsuite
One can also clone slmsuite directly and add its directory to the Python path.
Remember to install the dependencies (next sections).
git clone https://github.com/holodyne/slmsuite
Required Dependencies#
The following python packages are necessary to run slmsuite. These are listed as PyPI
dependencies and thus are installed automatically if PyPI is used to install.
One can also install these dependencies directly by calling the following inside the package directory.
pip install -e .
Hardware Dependencies#
The following python packages are optional acceleration or hardware requirements, which the user can install selectively.
- GPU
pip install -e ".[gpu]" cupy, highly recommended for GPU-accelerated holography. Sometimes, installation is made complicated by a pre-installed version of CUDA. You can find the CUDA version with
nvcc --versionin a terminal, and then install an installation ofcupyspecific to CUDA versionYYwithpip install cupy-cudaYYx.
- GPU
- Gradients
pip install -e ".[torch]" pytorch, required for conjugate gradient hologram optimization, either in GPU or CPU mode. Uses
cupy-torchinteroperability to pass data between modules without copying overhead, even on the GPU.
- Gradients
- Cameras
pip install -e ".[cameras]" mvsdk (non-PyPI)
PySpin (non-PyPI)
tisgrabber (non-PyPI)
thorlabs_tsi_sdk (non-PyPI)
VmbPy (non-PyPI)
Other cameras are loaded directly via .dll.
- Cameras
- SLMs
pip install -e ".[slms]" Other SLMs are loaded directly via .dll.
- SLMs
- Image saving
pip install -e ".[images]" For most images and videos, imageio
Many video formats additionally require pyav
For .gif optimization, pygifsicle
- Image saving
Jupyter#
We highly recommended using Jupyter
notebooks for interactive computing. Consider also using
IPython
magic,
features like %autoreload 2 or %matplotlib inline.
If Jupyter is not used, the default matplotlib plots will block further
execution, so the user should avoid plotting by using plot=False flags on functions.
Use the following to install recommended jupyter-related packages.
pip install -e ".[jupyter]"
All Dependencies#
To install all optional dependencies at once (including GPU, SLMs, cameras,
images, Jupyter, docs, and testing), use the dev extra:
pip install -e ".[dev]"