We introduce a new open-source software package written in Python to design and model micro optical elements, such as diffractive lenses, holograms, as well as other components within the broad area of flat optics, and generate their corresponding (production-ready) lithography mask files. To this aim, the package provides functions to design a multitude of kinoform lenses, phase masks and holograms, but is versatile and the user can implement any arbitrary numerical or analytical optical component designs. For validating the designs, this package provides scalar diffraction propagation to simulate optical field propagation in different regimes covering near- and far-field regions (Fresnel, Fraunhofer and Rayleigh-Sommerfeld). Particularly, by implementing Rayleigh-Sommerfeld propagation, we demonstrate accurate field propagation within near- and far-field ranges, providing versatility and accuracy. Importantly, the package allows to directly export production-ready multilevel/binary lithography mask files of the designed optical components. Additionally, metasurface masks can conveniently be generated for any user-defined meta-element library given as input. Finally, the software package capabilities are illustrated with examples of mask design and modeling of diffractive lenses, holograms, and metasurfaces susceptible of being fabricated via lithography techniques. Beyond lithography, the package can also straightforwardly be used in other applications requiring mask generation, such as beam shaping, optical trapping and digital holography.
Read full abstract