reZonator a powerful cross-platform software for designing laser resonators and calculating light beam propagation (as Gaussian as ray vectors) in complex optical systems, not only resonators but also single-pass systems. It is proven to be useful by many people around the globe.
It's written by a professional programmer with many years of experience having a classical scientific background. Initially, it was done as a working tool for internal usage. So we know what we want from the tool and implement it as it would be convenient to use. Sure, different people have different understandings of what “convenience” means and different needs for features. So suggestions and bug reports are welcomed, and especially bug reports 🫣😀
See project's Home page or GitHub Releases page for binary packages for Windows, Linux, and macOS. See build instructions for building from source code.
Despite the number of good examples, in the professional scientific software today there is still an ancient trend for wasting users's money even if the functions they offer are rather generic and straightforward and well-described in the literature. These days, most of such calculations could be carried out by a good student using just Python. Python and its libraries are extremely powerful and open-source, and it is a great example of in what direction software development, even commercial, goes in the modern world. Unlike commercial scientific software, it opens its internals and encourages users to learn and enhance, almost not requesting anything back. This project follows the same open source principle. It tries to bring at least a bit of the same level of openness to the world of “scientific” software. It just offers you conventional, well-known approaches, wrapping them into a convenient interface, not pretending it implements some “patented” algorithms that “only we know how to do, and we will keep it a secret.” Everyone can go to the sources, check the correctness, implement their own functions, or enhance the existing ones. It doesn't intend to offer all the features that paid monsters have, but to offer enough to help and be useful.
-
Optical systems: reZonator supports different optical system types — standing wave laser cavities and running wave (ring) resonators, as well as conventional single-pass systems, e.g., pump roads or beam expanders. The M² beam quality factor also is taken into account for single-pass systems.
-
Optical elements: programs' elements catalog contains many essential optical elements — ranges, lenses, mirrors, crystals, and many more. The ABCD ray matrix algorithm is used for simulation of optical elements, so you also can define your own element by providing its matrix. ⚡️Coming soon: Fully custom elements where you can provide formulas for computing matrices from parameters.
-
🆕 🔥 Custom parameters allow you to extend elements with additional user-defined parameters beyond their standard built-in parameters which is useful when you need to track or calculate additional properties specific to your optical system.
-
Unrestricted design: the app doesn't calculate any particular optical geometry. Instead, it is possible to construct an arbitrary optical system from proposed or user-defined optical elements. reZonator automatically creates a rendition of the system under investigation — almost as if you could sketch it on a paper sheet or your drawing board.
-
Stability maps: for advanced system optimization, reZonator can compute cavity stability maps against values of one or two parameters of any element. Also, automatic computation of stability boundaries is provided.
-
Wavefront calculation: reZonator can plot the size and the wavefront curvature radius of the Gaussian beam over one or a few elements, astigmatism also taken into account. It is possible to compute beam size at any position inside the system. Automatic determination of the position and size of the waist at an element where it is, calculation of the radius of diffractive divergence, and other parameters of the Gaussian beam are provided.
-
🆕 🔥 Custom functions provide a powerful way to extend reZonator's capabilities by writing your own Python code to analyze optical schemas, perform specialized calculations, and visualize results in ways that suit your specific needs.
-
Tuning: the adjustment tool allows you to gradually change any parameter of any element — just like you rotate a screw of some mirror mount or a translating stage. Any results are instantly recalculated while the parameter value is changed.
-
Parametric design: global parameters can interconnect different elements; parameter values given by custom formulas allow you to construct a dynamic and parameterized system.
-
And more: other convenient and useful tools and functions are also available: repetition rate, beam parameters at all elements, misalignments of elements (coming soon), “freezing” results, full plot format customization, copying results to the clipboard, and more…
