Ceviche Challenges is an open-source Python package from Google with a suite of photonic inverse design problems. Inverse design means that a computer searches for the shape of a device that gives a wanted behavior, instead of an engineer drawing the shape; photonic devices guide light on a chip. The suite is a benchmark for topology optimization algorithms, which decide where material goes in each pixel of a design area.
It contains four integrated photonic components: a waveguide bend, a beam splitter, a mode converter and a wavelength division multiplexer (WDM). Each has a model class whose simulate() method takes the design as an array and returns the scattering parameters (how much light passes from each port to each other port) and the fields. The physics comes from ceviche, a separate open-source finite-difference frequency-domain (FDFD) simulator of Maxwell's equations under the MIT license, and gradients come from the HIPS autograd library, so a design can be improved by gradient-based optimization.
The package installs with pip and is free under the Apache 2.0 license. Google archived the repository in March 2025, so it is now read-only.