flaport / inverse_design

https://flaport.github.io/inverse_design
Apache License 2.0
16 stars 5 forks source link

Use `ceviche-challenges` for inverse design examples #15

Closed ianwilliamson closed 1 year ago

ianwilliamson commented 1 year ago

Very cool to see this repository!

I see that the inverse design examples in the documentation are using the much older inverse design workshop code that I created when I was back at Stanford. Just as an FYI, along with the Inverse Design of Photonic Devices with Strict Foundry Fabrication Constraints paper, we did release a codebase that enables one to easily setup and call all of the design challenges we present in the paper. It's really easy to just import one of the prefab devices and throw it into a loss function. That code base lives in google/ceviche-challenges and is also pip-installable as a package.

The only limitation of ceviche_challenges is that it uses HIPS autograd (like base Ceviche) and doesn't speak "JAX." The nice javiche package can be used to plug things into JAX. (See also https://github.com/Jan-David-Black/javiche/issues/1).

lucasgrjn commented 1 year ago

Hi!

If you take a look at notebook11, it is indeed based on ceviche-challenges :) Do you plan to publish any optimizers you use on the paper anytime ?

ianwilliamson commented 1 year ago

Whoops... missed that notebook (only got to 07_inverse_design.ipynb).

We don't currently have plans to release any additional code from the paper. However, this repository seems to do a great job at filling the gap.

lucasgrjn commented 1 year ago

Thanks for the answer!

Some small details to fix and I think, the results will be reproduced!

jan-david-fischbach commented 1 year ago

The only limitation of ceviche_challenges is that it uses HIPS autograd (like base Ceviche) and doesn't speak "JAX." The nice javiche package can be used to plug things into JAX. (See also https://github.com/Jan-David-Black/javiche/issues/1).

You have traced back the origin story of javiche ;)