LightPipes: beam propagation toolbox for MatLab and MathCAD
LightPipes is a set of software tools for simulation of propagation, diffraction and interference of coherent light. Algorithms are based on the scalar theory of diffraction. The toolbox includes spectral, FFT-based and finite-difference based propagation models. Special tools have been developedd for the propagation through lenses with coordinate transforms, simulation of any combination of Zernike aberrations, mode analysis in laser resonators, interferometers, inverse problems, waveguides and propagation in media with non-uniform distribution of refraction index.

LightPipes for *NIX
In April 1999 OKO released the source code of LightPipes under GNU GPL.
This source was written for Unix, it compiles by any C compiler. The simplest way to create the package in its original form is to put it into a separate folder on a Unix/Linux computer (Cygwin under Windows works as well) and type "make". Then go to the examples directory and run scripts. Then read the manual. Reading the manual first helps.
LightPipes port to MathCAD and MatLab
LightPipes is also availbale as toolbox either for MathCAD or for MatLab (click here for more details). Free demo versions and manual can be downloaded here.
LightPipes for Python
LightPipes is also availbale as a package for Python. Free full version can be downloaded here.
LightPipes turbulence simulation module
A module for generating of Kolmogorov phase screen with different strength integrates smoothly into LightPipes for MATLAB framework and can be used to simulate light propagation under turbulent atmospheric conditions. Some sample images obtained for different values of Fried's coherence length are shown below (simulation area size 15 cm, gaussian beam width 8 cm, wavelength is 633 nm, propagation length 2 km, left image without turbulence, other with r0=6 cm, 3 cm, 2cm, 1.5 cm and 0.5 cm).