Documentation for WebbPSF

WebbPSF is a Python package that computes simulated PSFs for the JWST instruments (and now for WFIRST too), taking into account detector pixel scales, rotations, filter profiles, and point source spectra. It is not a full optical model of JWST, but rather a tool for transforming optical path difference (OPD) maps, created with some other tool, into the resulting PSFs as observed with JWST’s instruments.

Sample PSFs for JWST's instruments.

Sample PSFs for JWST’s instrument suite, all on the same angular scale and display stretch.

Sample PSFs for the filters in the WFIRST WFI.

Sample PSFs for the filters in the WFIRST WFI.

What this software does:

  • Uses OPD map(s) precomputed by detailed optical simulations of these telescopes.
  • Computes from those PSF images with requested properties for any of JWST’s instruments
  • Supports imaging, coronagraphy, and most spectrographic modes with all of JWST’s instruments. IFUs are yet to come.
  • For WFIRST, computes PSFs with the Wide Field Imager, based on recent GSFC optical models, including field- and wavelength-dependent aberrations. A preliminary version of the Coronagraph Instrument is also available.
  • Provides a suite of tools for quantifying PSF properties such as FWHM, Strehl ratio, etc.

What this software does NOT do:

  • Contain in itself any detailed thermal or optical model of JWST or WFIRST. For the results of end-to-end integrated simulations of JWST, see for instance Predicted JWST imaging performance (Knight, Lightsey, & Barto; Proc. SPIE 2012). For WFIRST modeling, see the WFIRST Reference Info page
  • Model spectrally dispersed PSFs produced by any of the spectrograph gratings. It does, however, let you produce monochromatic PSFs in these modes, suitable for stitching together into spectra using some other software.
  • Model any detector effects such as pixel MTF, intrapixel sensitivity variations, interpixel capacitance, or any noise sources. Add those separately with your favorite detector model code.

Getting Started with WebbPSF

The WebbPSF software system is composed of two Python packages: a lower-level optical propagation library (POPPY) plus an implementation of the JWST instruments using that library (WebbPSF). This documentation explains the programming interfaces and graphical user interface of WebbPSF, as well as providing a quick overview of POPPY.

Quickstart IPython Notebook

This documentation is complemented by an Jupyter (IPython) Notebook format quickstart tutorial. Downloading and running that notebook is a great way to get started using WebbPSF.

What’s new in the latest release?

Getting Help

For help using or installing webbpsf, you can contact the STScI Help Desk, Note that WebbPSF is included in the Ureka python distribution, as well as being installable via standard Python packaging tools. For detailed aspects of the JWST models, contact Marshall Perrin at STScI; for WFIRST, contact Joseph Long at STScI.

Appendices and Reference

How to cite WebbPSF

In addition to this documentation, WebbPSF is described in the following references. Users of WebbPSF are encouraged to cite one of these.

In particular, the 2012 SPIE paper gives a broad overview, the 2014 SPIE paper presents comparisons to instrument cryotest data, and the Technical Report document describes in more detail the relevant optical physics, explains design decisions and motivation for WebbPSF’s architecture, and presents extensive validation tests demonstrating consistency between WebbPSF and other PSF simulation packages used throughout the JWST project.

Mailing List

If you would like to receive email announcements of future versions, please contact Marshall Perrin, or visit to subscribe yourself to the “” list.