ScopeSim aims to simulate images of astronomical objects observed with visual and infrared instruments. It does this by creating models of the optical train and astronomical objects and then pushing the object through the optical train. The resulting 2D image is then broadcast to a detector chip and read out into a FITS file.
This code was originally based on the SimCADO package
The main set of documentation can be found here: https://scopesim.readthedocs.io/en/latest/
A basic Jupyter Notebook can be found here: scopesim_basic_intro.ipynb