-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
more general TriangleMesh
differentiation support
#1208
Comments
Just 2c; massive +1 for this. My integration relies on geometry generated using Blender 3D's "Geometry Nodes", a visual scripting system for intuitive and interactive geometry generation. With the flexibility of arbitrary triangle meshes comes some caveats; namely, that the scripted parameterized inputs to geometry-generating GeoNodes trees must be realized at the time of generating a I imagine this is far from the most exotic geometry generation floating around. Thus, the optimization loop of any "generate arbitrary geometry w/optimization of symbolic inputs" would probably need to be local+cloud loop, ex. with So, not easy. Still, if this were to be undertaken, then almost infinite flexibility would be available to us users with very little effort, when it comes to structures that can be optimized! Which is very fun. |
I think this should be possible.. hopefully in the next few months we can implement it. |
FYI: We are in the process of deprecating the adjoint (jax) plugin and making tidy3d natively compatible with Once we get this working, implementing things like triangle mesh will be a lot simpler. |
@tylerflex That sounds amazing! I'm glad it's in the plan. Just to make sure I'm understanding correctly; the If so, two thoughts/worries:
|
Yea that's the one.
That's true. We are considering forking autograd ourselves and maintaining a version of it, since we're mainly just using it for auto-diff.
It would be interesting to learn more about how you use jax + tidy3d for JIT and GPU processing on the front end. These features seem to not work for me with tidy3d. We are planning to support autograd 'natively'. but also write converters from jax/pytorch/tensorflow to tidy3d autograd. So you should still be able to use |
Well, that makes sense!
As mentioned, I'm currently sticking to
Sure, if you're curious. So, all of this is in the context of a visual node-based system I'm building in Blender for my BSc thesis (https://github.com/so-rose/blender_maxwell/; I wouldn't try to install it right now, it's quite unstable as of writing). Tl;dr: My use case is not "normal" by a long stretch, but I just deal with the data directly by leaving Each "math node" composes a function lazily, with data originating from an "extract data" node that pulls out a jax-compatible array sourced directly from
My completely average laptop can process a 100x1x100x200 complex frequency-domain Of course, generally one just needs to deduce things like transmission losses, alone for which all of this is vastly over-engineered. But my hope is that this approach is also flexible enough to do some really exotic stuff. Especially loss functions. Or trying to deduce which presumptions differ from simulations to experiments.
I mean, there's relatively little "just works" if we're talking about directly
Fantastic. I'd be happy to give feedback on the I hope it's at least interesting why I ask about |
TriangleMesh
support in adjoint pluginTriangleMesh
differentiation support
just fyi for anyone reading this: this is basically done in #2095 , but we need to make |
No description provided.
The text was updated successfully, but these errors were encountered: