  In contrast to designing nanophotonic devices by tuning a handful of device
parameters, we have developed a computational method which utilizes the full
parameter space to design linear nanophotonic devices. We show that our method
may indeed be capable of designing any linear nanophotonic device by
demonstrating designed structures which are fully three-dimensional and
multi-modal, exhibit novel functionality, have very compact footprints, exhibit
high efficiency, and are manufacturable. In addition, we also demonstrate the
ability to produce structures which are strongly robust to wavelength and
temperature shift, as well as fabrication error. Critically, we show that our
method does not require the user to be a nanophotonic expert or to perform any
manual tuning. Instead, we are able to design devices solely based on the users
desired performance specification for the device.
