A curated list for engineers, physicists and hobbyists interested in inverse design of photonic devices.
- MEEP - MIT's open-source FDTD engine with adjoint solver, the most widely used in photonics.
- BEAMZ - GPU-accelerated, general FDTD and gradient-based optimization with JAX for photonic chip designers.
- FDTDx - GPU-accelerated, differentiable FDTD with memory-efficient autodiff for 3D inverse design with Jax.
- Tidy3D - Cloud-based FDTD with built-in adjoint optimization and mode solver. (Flexcompute; originated in Fan Group, Stanford)
- fdtdz - GPU-accelerated FDTD in JAX. (SPINS Photonics)
- Khronos.jl - Alec Hammond's new Julia FDTD solver for photonics. (Meta Research)
- Luminescent.jl - GPU + autodiff FDTD in Julia for photonics, acoustics, and RF.
Fan Group, Stanford:
- Ceviche - Differentiable FDFD and FDTD simulator with autograd for gradient-based inverse design.
- Angler - Frequency-domain electromagnetic simulator with adjoint-based optimization.
Vuckovic Group, Stanford:
- SPINS-B - Gradient-based photonic optimization library using FDFD.
- EMopt - Shape and topology optimization for 2D/3D EM structures using the adjoint method.
- PhoTOS - Topology optimization with shape libraries and VAE-based feature mapping for fabrication-aware photonic design.
- NIDN - Neural inverse design of nanostructures with PyTorch, RCWA and FDTD forward models. (ESA)
- lumopt - Adjoint optimization wrapper for Lumerical FDTD.
- PreFab - Deep learning model predicting post-fabrication structures from GDS layouts for fab-aware optimization.
- Inverse Design Workshop - Hands-on workshop materials. (Fan Group, Stanford)
- Ceviche Challenges - Suite of photonic inverse design challenge problems. (Google)
- invrs-io Gym - Collection of nanophotonic inverse design challenges with common interface.
- Inverse Design Tutorial (Christiansen & Sigmund, 2021) - Comprehensive tutorial on topology optimization for photonics.
- DTU TopOpt MATLAB Codes - Companion MATLAB/COMSOL code for the Christiansen & Sigmund tutorial.
- Tidy3D Inverse Design Lectures - Free video lecture series on inverse design methods.
- Tidy3D Example Library - Collection of simulation and optimization examples.
- MEEP Adjoint Optimization Notebooks - Jupyter notebooks teaching MEEP's adjoint solver.
- A Newcomer's Guide to DL for Inverse Design (Khaireh-Walieh et al., 2023) - Practical tutorial with companion Python notebooks.
- Validation and Characterization of Algorithms for Photonics Inverse Design (Chen et al., 2024) - Reproducible multi-solver benchmark suite.
- Jensen & Sigmund (2011) - "Topology optimization for nano-photonics." Laser Photonics Rev.
- Piggott et al. (2015) - First experimental inverse-designed silicon photonic device. Nature Photonics
- Molesky et al. (2018) - "Inverse design in nanophotonics." Nature Photonics
- Peurifoy et al. (2018) - Neural networks for nanophotonic inverse design. Science Advances
- Hughes et al. (2019) - Forward-mode differentiation of Maxwell's equations. ACS Photonics
- Christiansen & Sigmund (2021) - Tutorial on topology optimization for photonics. JOSA B
- Jiang, Chen & Fan (2021) - DNNs for evaluation and design of photonic devices. Nature Reviews Materials
- Ma et al. (2021) - Deep learning for design of photonic structures. Nature Photonics
- Awesome Photonics - Comprehensive list of open-source photonics projects.
- Awesome PDA - Papers on photonic design automation.
More tools (less actively maintained or more niche)
- GRCWA - autoGradable RCWA. (Stanford)
- jaxwell - JAX-based FDFD solver. (Vuckovic Group, Stanford)
- fdtd - Python FDTD with PyTorch backend.
- wavetorch - Wave equation backpropagation in PyTorch. (Fan Group)
- pjz - JAX workflow framework on top of fdtdz.
- DL4TO - Deep learning for 3D topology optimization in PyTorch.
- OpenEMS - EC-FDTD electromagnetic solver.
- InverseBench - Benchmarks for diffusion-based scientific inverse problems. (ICLR 2025)
- TMM - Transfer matrix method for thin/thick multilayer film optics.
- S4 - Rigorous coupled-wave analysis (RCWA) for layered periodic structures. (Fan Group, Stanford)
- FMMAX - Fourier Modal Method in JAX with Brillouin zone integration. (Meta Research)
- Meent - RCWA with NumPy, JAX, and PyTorch backends for differentiable optimization.
- torcwa - GPU-accelerated RCWA with PyTorch automatic differentiation.
- tmmax - GPU-accelerated transfer matrix method in JAX.
- MPB - MIT Photonic-Bands: Bloch-mode solver for photonic band structures in periodic media.
- Legume - Guided-mode expansion for photonic crystal slabs with automatic differentiation. (Fan Group, Stanford)
- femwell - FEM waveguide mode solver for photonics.
- meow - Eigenmode expansion (EME) solver for photonic waveguides.