stanfordnqp / spins-b

Photonic optimization library
GNU General Public License v3.0
290 stars 114 forks source link

pypi black Binder image

SPINS-B 0.0.2

SPINS-B is the open source version of SPINS, a framework for gradient-based (adjoint) photonic optimization developed over the past decade at Jelena Vuckovic\'s Nanoscale and Quantum Photonics Lab at Stanford University. The full version can be licensed through the Stanford Office of Technology and Licensing (see FAQ).

The overall architecture is explained in our paper Nanophotonic Inverse Design with SPINS: Software Architecture and Practical Considerations.

Documentation

Documentation is continually updated over time.

SPINS Photonics Inc

We launched SPINS Photonics Inc to bring inverse design to commercial nanophotonic products!

Installation

You can install from pypi

pip install spins

Or you can install the development version if you plan to contribute

git clone https://github.com/stanfordnqp/spins-b.git
cd spins-b
make install

Features

Upcoming Features

We are protoyping the next version of SPINS-B. This version of SPINS-B will support these new features:

Overview

Traditional nanophotonic design typically relies on parameter sweeps, which are expensive both in terms of computation power and time, and restrictive in their parameter space. Likewise, completely blackbox optimization algorithms, such as particle swarm and genetic algorithms, are also highly inefficient. In both these cases, the computational costs limit the degrees of the freedom of the design to be quite small. In contrast, by leveraging gradient-based optimization methods, our nanophotonic inverse design algorithms can efficiently optimize structures with tens of thousands of degrees of freedom. This enables the algorithms to explore a much larger space of structures and therefore design devices with higher efficiencies, smaller footprint, and novel functionalities.

Publications

Any publications resulting from the use of this software should acknowledge SPINS-B and cite the following papers:

For general device optimization:

For grating coupler optimization: