Hello friends Jello.jl uses a Fourier domain algorithm for generating manufacturable geometry for topology optimization & generative inverse design. Will take couple days for merging into general registry. Thanks

Nice package and neat idea! I am hoping to integrate some of these ideas in TopOpt.jl if possible. Is there a publication I can read for the theory?

Thanks! I’m doing a preprint soon. Collaboration welcome. A simple way to interface with a mesh is to interpolate the density array. Some methods in Interpolations.jl work with AD. Here’re papers on Fourier geometry generation though ours presents some improvements:

Awesome, thanks for the references. I will give them a read.

Similar to filtering, using a Fourier representation is not sufficient to ensure manufacturability constraints like a minimum lengthscale — the reason is that once you do a nonlinear projection/thresholding step to binarize the structure, arbitrarily small features can re-appear. That’s why, even with filtering/smoothing, people concerned with manufacturability still impose explicit lengthscale constraints (e.g. see Hammond et al (2021) and references therein). Did you implement something similar?

Thanks for the comment. While undesirably small features can appear during initialization, they usually disappear during adjoint optimization. The final result usually passes DRC. If not, we tune up the scale parameter or re-initialize, without explicit constraints. Fourier representations are inherently global and can kill off small features during gradient descent. Your reference takes the conventional approach of local morphological transforms.

Fourier representations are equivalent (in terms of what functions they allow) to starting with a position-space representation and low-pass filtering, no? So they should hit the same problem — once you threshold/project, the nonlinearity allows small features to re-appear unless you add explicit lengthscale constraints. If the optimization objective favors small features, gradient descent will push the design into this regime unless you constrain it.

Yes the global optimum is the same but the local minima are very different as the gradients are wrt a different basis.

If the problem favors a smooth optimum, then our approach does well in not getting gnarled by checkerboard instability or minima.

If the problem favors sharp or fractal features, as you mentioned for narrow band resonant behavior, then they might get resurfaced by the nonlinearity. In such cases, maybe we can add a morphological opening/closing stage to ensure manufacturability.