JaxLayerLumos is open-source transfer-matrix method (TMM) software designed for scientists, engineers, and researchers in optics and photonics. It provides a powerful yet intuitive interface for calculating the reflection and transmission (RT) of light through multi-layer optical structures. By inputting the refractive index, thickness of each layer, and the frequency vector, users can analyze how light interacts with layered materials, including the option to adjust for incidence angles.
Our mission is to offer a lightweight, flexible, and fast alternative to commercial software, enabling users to perform complex optical simulations with ease. JaxLayerLumos is built with performance and usability in mind, facilitating the exploration of optical phenomena in research and development settings.
pip install jaxlayerlumospip install .dev, benchmarking, and examples, where dev is defined for installing the packages required for development and software testing, benchmarking is for installing the packages required for benchmarking against differnt TMM software programs, and examples is needed for running the examples included in the examples directory. One of these modes can be used by commanding pip install .[dev], pip install .[benchmarking], or pip install .[examples].
examples directory exhibits various use cases and capabilities of our software. We provide the following examples:
tests directory. Before running the test files, the required packages should be installed by using pip install .[dev]. They can be run by commanding pytest tests/. Moreover, these test files are automatically tested via GitHub Actions, of which the configuration is defined in .github/workflows/pytest.yml.
@article{LiM2025joss,
author={Li, Mingxuan and Kim, Jungtaek and Leu, Paul W.},
title={{JaxLayerLumos}: A {JAX}-based Differentiable Optical and Radio Frequency Simulator for Multilayer Structures},
journal={Journal of Open Source Software},
volume={10},
number={114},
pages={8572},
year={2025}
}