PROPER is a library of IDL (Interactive Data Language) routines for simulating optical propagation in the near and far fields using Fourier-based Fresnel and angular spectrum methods. The goal of PROPER is to provide a free, easy-to-use, and versatile means for simulating systems that require diffraction-based rather than geometrical analyses, such as spatial filtering systems with intermediate optics (e.g. a stellar coronagraph for extrasolar planet imaging). It has routines for creating complex apertures and obscurations, wavefront errors (defined by Zernikes, power spectra, or user-supplied maps), amplitude modulators (e.g. coronagraphic occulters), simple lenses, and deformable mirrors. The routines automatically select which propagator (near or far-field) is best at each surface based on analytically propagating a Gaussian pilot beam. The library includes a comprehensive manual and is distributed as IDL source code.