JB

juliaphysics/beamletoptics.jl

Productivity workflow
20 stars Quality 44 Trend 31

Optics simulation in Julia using geometrical and Gaussian beamlet tracing – simulate lasers, beam propagation, and simple optical systems.

Overview

, or for short, is a 3D Gaussian beamlet tracing package mainly intended for the simulation of breadboard optical setups -- e.g. laser interferometers -- with simple components like lenses or beamsplitters. It offers a flexible kinematic API for the easy placement and movement of components. For more information, refer to the documentation. - Non-sequential 3D ray tracing without paraxial approximation - TEM₀₀ Gaussian beamlet models - Various 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, and an interactive GUI via BeamletOpticsGUI To install this package in your current project environment, enter the Pkg REPL-mode via ] and add BeamletOptics or in the REPL enter: BMO requires .

README

About

BeamletOptics.jl, or BMO for short, is a 3D Gaussian beamlet tracing package mainly intended for the simulation of breadboard optical setups – e.g. laser interferometers – with simple components like lenses or beamsplitters. It offers a flexible kinematic API for the easy placement and movement of components.

For more information, refer to the documentation.

Features

  • Non-sequential 3D ray tracing without paraxial approximation
  • TEM₀₀ Gaussian beamlet models
  • Various 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, and an interactive GUI via BeamletOpticsGUI

Installation

To install this package in your current project environment, enter the Pkg REPL-mode via ] and add BeamletOptics or in the REPL enter:

using Pkg; Pkg.add("BeamletOptics")

BMO requires Julia 1.12 or newer. On older Julia versions, Pkg will automatically fall back to the latest release that still supports them.

Agent skill

An Agent Skill for AI coding assistants is included in skills/beamletoptics/. Copy the version that matches your installed package into your project with:

using BeamletOptics; BeamletOptics.install_agent_skill()   # -> ./.claude/skills/beamletoptics

Alternatively, npx skills add JuliaPhysics/BeamletOptics.jl installs the skill from the development branch.

Examples

For a variety of illustrated examples and tutorials, refer to the Tutorials and Examples in the Getting started sections of the documentation linked to above.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add juliaphysics/beamletoptics.jl
New to MCP? Start with the mcpskill.org guide →