metabox is a Python package built on TensorFlow, enabling the design, evaluation and optimization of complex diffractive optical systems with ease, flexibility, and high performance.
metabox
is a high-level Python package specifically designed for the creation, evaluation, and inverse optimization of diffractive optical systems. Leaning on the robust capabilities of TensorFlow, metabox
offers a comprehensive and user-friendly API for optical system design.
The package is built with flexibility at its core, making it easy to add new components, define custom merit functions, and employ various optimization algorithms. It's designed to be highly performant and scalable, capable of managing systems with millions of degrees of freedom. With its intuitive structure, metabox
facilitates the design of intricate diffractive optical systems with minimal lines of code.
Key features of metabox
include:
- A
rcwa
solver, derived from rcwa_tf, for direct computation of meta-atoms' diffraction efficiency. - A built-in
raster
module for parameterizing meta-atoms' features. - An easy-to-use sampling system for features, which can train a metamodel to replace the
rcwa
solver, thus significantly speeding up simulations and optimization processes. - A module for sequential optics to model light propagation through the optical system.
- An
assembly
module offering a suite of tools for building the optical system from meta-atoms, apertures, and other optical components. - A
merit
module for evaluating and inverse-designing the performance of the optical system. - An
rcwa.Material
class for accessing pre-defined materials and their optical properties. - An
export
module that allows for the export of the diffractive optical design to a.gds
file for fabrication.
Overall, metabox
is a powerful tool for both beginners and experienced users in the field of optical system design. By simplifying and accelerating the design process, it paves the way for innovative developments in the optical industry.
If you find this tool helpful, please cite our paper:
@article{huang2024broadband, title={Broadband thermal imaging using meta-optics}, author={Huang, Luocheng and Han, Zheyi and Wirth-Singh, Anna and Saragadam, Vishwanath and Mukherjee, Saswata and Fr{\"o}ch, Johannes E and Tanguy, Quentin AA and Rollag, Joshua and Gibson, Ricky and Hendrickson, Joshua R and others}, journal={Nature Communications}, volume={15}, number={1}, pages={1662}, year={2024}, publisher={Nature Publishing Group UK London} }
Prerequisites: python==3.8
Install metabox
via pip
:
pip install metabox
Try out metabox
for free on Google Colab. Here are some tutorials on Colab. You can find the local versions here.
Tutorial 2: Lens Optimization and Exporting
Tutorial 3: Optimization Serialization
Tutorial 4: Zemax Binary2 Import
Tutorial 5: Refractive Surfaces Simulation
Tutorial 6: Refractive Surfaces Optimization
Tutorial 7: Hologram Optimization
- Luocheng Huang: luocheng@uw.edu, https://github.com/Luochenghuang
This project uses pre-commit, please make sure to install it before making any changes:
pip install pre-commit cd metabox pre-commit install
It is a good idea to update the hooks to the latest version:
pre-commit autoupdate
To make an editable installation, run the following commands:
git clone https://github.com/Luochenghuang/metabox.git cd metabox pip install -e .