Software

This is a selected list of the open source projects I have developed or contributed to as part of my research. See my GitHub profile for a more detailed list.

The asterisk (*) on author names in publication entries indicates equal contribution to the work.

wavetorch

This package provides recurrent neural network (RNN) modules for computing time-domain solutions and gradients of the wave equation with pytorch. This library is the basis for our analog machine learning paper [1].

  1. Wave Physics as an Analog Recurrent Neural Network
    Tyler W. Hughes*, Ian A. D. Williamson*, Momchil Minkov, Shanhui Fan
    arXiv:1904.12831 [physics]
    April 2019
    arXiv

GitHub Repository

ceviche

This is a package developed primarily by Tyler Hughes based on our code and learnings from angler and fdfdpy. Ceviche is designed to use the flexible automatic differentiation (AD) capabilities of the HIPS autograd package. This design choice carries over into optimizing photonic devices because AD simplifies the process of constructing objective / loss functions and taking gradients of several simulations simultaneously. Having a fully differentiable optical simulation framework also facilitates the integration of inverse design and machine learning models.

This code is the basis for the results presented in our forward mode differentiation paper [1].

  1. Forward-Mode Differentiation of Maxwell’s Equations
    Tyler W Hughes, Ian A.D. Williamson, Momchil Minkov, Shanhui Fan
    ACS Photonics
    October 2019
    pdf

GitHub Repository

neurophox

Simulation of optical neural networks (ONNs) based on on-chip interferometer meshes and electro-optic nonlinear activation functions; based on Tensor Flow and Python. This framework was used for the simulations in our ONN activation function paper [1] and our parallel nullificaiton paper [2].

  1. Reprogrammable Electro-Optic Nonlinear Activation Functions for Optical Neural Networks
    Ian A. D. Williamson, Tyler W. Hughes, Momchil Minkov, Ben Bartlett, Sunil Pai, Shanhui Fan
    IEEE Journal of Selected Topics in Quantum Electronics, vol. 26, num. 1, pp. 1-12
    January 2020
    pdf
  2. Parallel Fault-Tolerant Programming of an Arbitrary Feedforward Photonic Network
    Sunil Pai, Ian A. D. Williamson, Tyler W. Hughes, Momchil Minkov, Olav Solgaard, Shanhui Fan, David A. B. Miller
    arXiv:1909.06179 [physics]
    September 2019
    arXiv

GitHub Repository Notebooks

FDFD.jl

This is a pure Julia package for solving Maxwell’s equations with the finite difference frequency domain (FDFD) method, with support for dynamic modulation and eigenmode analysis.

GitHub Repository

angler

Python-based library for simulating and optimizing linear and nonlinear optical devices, as demonstrated in our paper [1]. The underlying algorithms are the finite difference frequency domain (FDFD) method and adjoint variable method (AVM). The underlying FDFD code is based on fdfdpy.

  1. Adjoint Method and Inverse Design for Nonlinear Nanophotonic Devices
    Tyler W. Hughes*, Momchil Minkov*, Ian A. D. Williamson, Shanhui Fan
    ACS Photonics, vol. 5, num. 12, pp. 4781-4787
    December 2018
    pdf

GitHub Repository

fdfdpy

Python-based library for solving Maxwell’s equations with the finite difference frequency domain (FDFD) method. Most of this code was later used as the basis for angler.

GitHub Repository