A curated list of awesome resource for photonic engineers, physicists and hobbyists
Most tools in this list are written or have a python interface, which require some basic knowledge of python. If you are new to python you can find many books, YouTube videos and courses available online. If you are new to Git and Python I recommend reading this article
- layout: define the geometrical shapes that guide the light.
- simulation: simulate how photons propagate, and optimize the geometrical shapes
- lab automation: Control instruments in the lab
- data analysis
- visualization
- electronics
- other links
-
gdsfactory code - includes plugins to other tools.
-
gdstk - faster than gdspy (from same author)
-
- phidl - made for superconducting detectors
- picwriter
- BerkeleyPhotonicsGenerator
- Ayar cell generator
-
klayout - layout viewer with python API
- kfactory
- zero-pdk - klayout pure python pdk.
- flayout
- xsection, klayout-ipc, klayout-gadgets, lytest, lymask
- KQcircuits - Quantum circuits pdk.
- siepic-tools - code driven PCells and GUI driven layouts.
- siepic-ebeam-pdk
- gds3xtrude
- spicex: netlist extraction
- simplify polygons
- klayout python
- klayout cross-section in python - Port from ruby to python to xsection macro
-
shapely based tools
- gdshelpers - includes superconducting detectors.
- dphox - includes 3D MEMs structures
-
qiskit-metal - IBM superconducting based qubits.
-
layout viewers
-
mode solver:
-
Finite Element
-
Finite Difference
-
-
component design:
- FDTD - Finite differences time domain.
- khronos
- fdtdx
- Luminescent
- fdtdz
- meep FDTD
- emopt FDTD
- Python 3D FDTD simulator - Written in PyTorch.
- tidy3d client docs and code - Server is propietary.
- GSvit - GPU support
- FDFD - Finite differences frequency domain.
- EME - Eigen mode expansion.
- FEM:
- gyptis - based on FEniCS, automatic differentiation with dolfin-adjoint
- RCWA:
- Bempp - Open-source computational boundary element platform to solve electrostatic, acoustic and electromagnetic problems
- OpenModes - Mode solver for open electromagnetic structures based on the method of moments (MOM)
- pyGDM - Green dyadic method for nanophotonics, including evolutionary optimization
- SiPANN (neural networks for photonics component design)
- inverse design
- glonet: global optimization based on generative neural networks
- wavetorch
- lumopt
- angler - Frequency-domain photonic simulation and inverse design optimization for linear and nonlinear devices.
- SPLayout code docs
- ceviche-challenges code - Photonic inverse designs based on the FDFD simulator Ceviche
- NIDN - Inverse design of metamaterials, photonic crystals, ... using PyTorch
- A Neural Operator-based Surrogate Solver for Free-Form Electromagnetic Inverse Design [Paper] [Github]
- TCAD tcad repos TCAD Overview spreadsheet here
- devsim - Semiconductor Device Simulator
- BOSIM
- Suprem4 - Process simulator (no python)
- pisces - Poison and continuity equation solver (no python)
- TCAD docker containers
- Charon - Paralell TCAD simulator. GitHub mirror
- ray tracing:
- adaptive optics
- multisolvers
- transfer matrix
- FDTD - Finite differences time domain.
-
circuit simulation:
- Sparameter linear solvers
- SAX code and docs - Differentiable circuit solver.
- lekkersim
- simphony (linear circuit solver)
- photontorch docs - code - Includes time domain.
- opics
- SignalIntegrity (linear circuit simulation)
- scikit-rf RF simulator
- pyFDA filter design code and docs
- Optical communications
- RF photonic link analysis
- Spice
- Sparameter linear solvers
-
nonlinear schrodinger equation (NLSE): calculate the propagation of pulses along a fiber/waveguide in the presence of dispersion and nonlinearity.
- Laserfun aims for simplicity
- PyNLO more capable, but unmaintained
- PyNLO fork includes Chi2 simulation capabilities
-
Lugiato Lefever Equation (LLE) to calculate propagation in ring resonators:
-
material database
-
lithography simulation
-
free space
- parasitic extraction
-
backend:
-
lab automation repos:
- pymeasure
- autosweep docs
- measurement sequencer
- drivers
- https://github.com/AlexShkarin/pyLabLib
- lightlab docs
- instrumental
- pyrolab
- LabEXT docs and code
- SiePIC lab
- hardware testing framework - Google
- pic-wafer
- laval python lab
- labrad
- autogator - camera-assisted motion control and experiment configuration of photonic integrated circuit interrogation platforms.
- pandas
- dask
- wafermap
- wafer data
- Webapp
-
schematic capture:
- skidl: netlist formatting, writing, and reading
- elkjs code demo - Javascript schematic editor.
-
layout
-
circuit simulation
-
open source pdks
-
transmission line wcalc