
A powerful, easy-to-use computational laboratory for visualizing and exploring vectorial point spread functions.
Free for macOS, Windows, and Linux.
A rigorous model for real optical setups.
Collimated, monochromatic illumination light with uniform or Gaussian illumination profiles. Any linear or elliptical polarization state. Up to three layered media — such as immersion medium, coverslip, and sample. Objectives from low- to high-NA, ideal to aberration-corrected. And full accounting for mismatches between your actual refractive indices and layer thicknesses and the manufacturer’s design values. PSFLab’s model is built to handle exactly that.
Not a plugin. Not a library. No physical model to pick —
a finished, standalone app that just works.
Native installers for: macOS1 · Windows · Linux

Uncompromising accuracy.
PSFLab solves the full diffraction integral numerically. It uses the best available integration routines, not approximations that trade accuracy for speed. The default tolerances of 10-6 (relative) and 10-10 (absolute) can be tightened further if needed. The result: accurate point spread functions. No tradeoffs.
The PSF, from every angle.
The PSF plot is front and center in PSFLab, updating every few seconds as the calculation runs. View total intensity, total field magnitude, or break either down by field component. Add width markers, highlight the peak, choose a linear or log color scale, and pick from a range of colormaps. Save or copy the plot — as a publication-ready image, or as a MATLAB figure for further processing.
An interface built around the user.
Scientific software has a reputation for being clunky and hard to use. We don’t think it has to be. With PSFLab, user experience came first, not last. Every design choice was scrutinized — fonts, parameter grouping, the tabbed layout. The result is an interface that follows your workflow, and one we hope is a genuine pleasure to use.
A GUI when you want it. A command line when you don’t.
PSFLab doesn’t require the graphical user interface (GUI). Power users can invoke PSFLab directly from the command line, running calculations quietly in the background without ever opening a window. Batch mode accepts a human-readable PSFLab parameter file describing one or more PSFs, or a previously saved PSFLab output file. You can specify which PSFs from that file to process, and how many cores to run on2.
This is very nice software!
Alexandre B.
Thanks and kudos for an excellent piece of code
Xavier M.
Update notifications
PSFLab checks for new releases and lets you know the moment one is ready.
Progressive resolution cycles
Queue multiple calculation passes at increasing resolution, from a fast preview to a publication-ready render.
One-click statistics
Min/max, FWHM, and other basic statistical parameters are added to the plot with just a click.
Automatic backup
Your session data is backed up locally on your computer at regular intervals, without any action from you.
Flexible data export
Export the raw PSF data as MATLAB, HDF5, NetCDF, or plain text — whatever format your analysis pipeline already reads.
Multi-core capable
A one-time donation unlocks PSFLab’s parallel processing capabilities.