  This report introduces Juno, a modular Python package for optical design and
simulation. Juno consists of a complete library that includes a graphical user
interface to design and visualise arbitrary optical elements, set up wave
propagation simulations and visualise their results. To ensure an efficient
visualisation of the results, all simulation data are stored in a structured
database that can filter and sort the output. Finally, we present a practical
use case for Juno, where optical design and fabrication are interlaced in a
feedback cycle. The presented data show how to compare the simulated and the
measured propagation; if a difference or unexpected behaviour is found, we show
how to convert and import the optical element profile from a profilometer
measurement. The propagation through the profile can provide immediate feedback
about the quality of the element and a measure of the effects brought by
differences between the idealised and the actual profile, therefore, allowing
to exclude the experimental errors and to weigh every aspect of fabrication
errors.
