  We present PyMoosh, a Python-based simulation library designed to provide a
comprehensive set of numerical tools allowing to compute essentially all
optical characteristics of multilayered structures, ranging from reflectance
and transmittance to guided modes and photovoltaic efficiency. PyMoosh is
designed not just for research purposes, but also for use-cases in education.
To this end, we have invested significant effort in ensuring user-friendliness
and simplicity of the interface. PyMoosh has been developed in line with the
principles of Open Science and taking into account the fact that multilayered
structures are increasingly being used as a testing ground for optimization and
deep learning approaches. We provide in this paper the theoretical basis at the
core of PyMoosh, an overview of its capabilities, as well as a comparison
between the different numerical methods implemented in terms of speed and
stability. We are convinced such a versatile tool will be useful for the
community in many ways.
