[ANN] BeamletOptics.jl

Dear all,

we are happy to announce BeamletOptics.jl (or BMO for short), a newly registered Julia package for simulating optical (breadboard) systems. BMO is intended to be a simplistic simulation environment for people that primarily build laser-based laboratory optical setups. For more information, refer to the documentation.

Features

While the development of BMO is a ongoing process and we consider it to be in an alpha-state (v0.10.2 as of this post), the following capabilities are currently available and work to a standard where we feel comfortable to request feedback:

  • Hybrid sequential and non-sequential 3D ray tracing without paraxial approximation
  • TEM₀₀ Gaussian beamlet model
  • Various premade optical components
    • Mirrors
    • Lenses
    • Beamsplitters
    • Detectors
  • Surface-like modeling of rotationally symmetrical lens systems
  • Extendable API design for the implementation of custom optical interactions
  • Easy visualization via the Makie package

Similar packages within the Julia ecosystem are listed here.

Showcase

For a showcase of “practical applications” refer to the Michelson interferometer tutorial or the master’s thesis of A. Manny.

Way forward

The primary motivation for the existence of BMO is the kinematic simulation of laser interferometer setups. Refer to the Development roadmap for a rough outline on where we want to take this package. Since this is a pre-1.0 release, expect the API to break in future releases.

10 Likes

I’ve been working on adding Gaussian beamlets and polarization to OpticSim for a while. Perhaps we could work together. Ping me if you are interested, or just if you want to discuss the technical issues of simulating beamlets and polarization.