strapy is a python package, and a CPython 3 interpreter must be installed before it can be used. For installation guidance for python see the python documentation (on Windows, or Unix systems).

strapy uses numpy and scipy for matrix mathematics, sympy for symbolic mathematics and pyctmm for transfer matrix modelling. If strapy is installed with pip with the exception of pyctmm these dependencies will be installed automatically. pyctmm must be installed before strapy, refer to the ctmm/pyctmm documentation for installation instructions.

Installation from source

Once pyctmm has been installed, from a terminal open in the strapy root folder:

pip install .


Once strapy is installed, to test from the strapy root directory run:

cd test
python -m unittest

Tests are provided for all optical components with the exception of strapy.components.Dump. Components are tested against physical scenarios with known solutions. Although the python unittest framework is used, these tests are not true unit tests, as all tests contain multiple components. The aim is to test that the implemented physics is correct, with the hope that bugs in the software will also manifest themselves as incorrect physical results.