-
Notifications
You must be signed in to change notification settings - Fork 66
docs update for seminar notebooks #2998
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
Open
yaugenst-flex
wants to merge
1
commit into
develop
Choose a base branch
from
FXC-3767-publish-october-2025-inverse-design-seminar-notebooks
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+55
−1
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| Fabrication-aware inverse design | ||
| ================================ | ||
|
|
||
| .. meta:: | ||
| :description: Fabrication-aware inverse design seminar notebooks and walkthrough | ||
| :keywords: tidy3d, inverse design, fabrication-aware, adjoint, grating coupler | ||
|
|
||
| The October 9, 2025 seminar walks through a complete dual-layer grating coupler workflow: start from a uniform baseline, pull a strong seed design with Bayesian optimization, switch to adjoint gradients for per-tooth control, study fabrication sensitivities, and close the loop with measurement-driven calibration. Everything runs inside Tidy3D, so you can rerun the exact same jobs or adapt the utilities to your own device stack. | ||
yaugenst-flex marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| Seminar recording: `YouTube link <https://www.youtube.com/watch?v=OpVBJmomzoo>`_ | ||
|
|
||
| Notebook lineup | ||
| ---------------- | ||
| * :doc:`Setup Guide: Building the Simulation <../notebooks/2025-10-09-invdes-seminar/00_setup_guide>` - builds the nominal SiN stack, launches the reference simulation, and visualizes the initial geometry so the later notebooks can reuse the cached job ID. | ||
| * :doc:`Bayesian Optimization: Finding a Strong Baseline <../notebooks/2025-10-09-invdes-seminar/01_bayes>` - uses a five-parameter Bayesian search to quickly find a good uniform grating. This provides a practical baseline before investing in gradients. | ||
| * :doc:`Adjoint Optimization: High-Dimensional Refinement <../notebooks/2025-10-09-invdes-seminar/02_adjoint>` - expands to per-tooth parameters and applies Adam with adjoint sensitivities to apodize the grating and boost efficiency. | ||
| * :doc:`Fabrication Sensitivity Analysis: Is Our Design Robust? <../notebooks/2025-10-09-invdes-seminar/03_sensitivity>` - sweeps :math:`\pm 20` nm etch bias, runs Monte Carlo samples, and logs adjoint-derived sensitivity units (:math:`\Delta` objective / :math:`\Delta` parameter) so readers understand what the gradients mean physically. | ||
| * :doc:`Robust Adjoint Optimization for Manufacturability <../notebooks/2025-10-09-invdes-seminar/04_adjoint_robust>` - penalizes variance across nominal/over/under corners, illustrating a fabrication-aware adjoint loop that matches what we demoed live. | ||
| * :doc:`Monte Carlo View: Nominal vs Robust Grating <../notebooks/2025-10-09-invdes-seminar/05_robust_comparison>` - reruns the Monte Carlo campaign for both nominal and robust devices to quantify yield improvements. | ||
| * :doc:`Measurement Calibration: Bridging Simulation and Fabrication <../notebooks/2025-10-09-invdes-seminar/06_measurement_calibration>` - demonstrates gradient-based calibration of tooth widths against (synthetic) spectra, using adjoint sensitivities to recover the as-fabricated geometry from optical measurements. | ||
|
|
||
| Getting the code | ||
| ---------------- | ||
| The notebooks are available in the `Tidy3D notebooks repository <https://github.com/flexcompute/tidy3d-notebooks/tree/develop/2025-10-09-invdes-seminar>`_. You will need the ``.ipynb`` files as well as the helper scripts `setup.py <https://github.com/flexcompute/tidy3d-notebooks/blob/develop/2025-10-09-invdes-seminar/setup.py>`_ and `optim.py <https://github.com/flexcompute/tidy3d-notebooks/blob/develop/2025-10-09-invdes-seminar/optim.py>`_ to run the examples. | ||
|
|
||
| How to run the series | ||
| --------------------- | ||
| 1. Install ``tidy3d`` and ``bayesian-optimization`` (``pip install tidy3d bayesian-optimization``) and configure your API key. | ||
| 2. Execute the notebooks in order; each step writes results into ``results/`` and later notebooks assume those JSON files exist. | ||
|
|
||
| Supporting assets | ||
| ----------------- | ||
| * `setup.py <https://github.com/flexcompute/tidy3d-notebooks/blob/develop/2025-10-09-invdes-seminar/setup.py>`_ - shared simulation builders, fabrication constraints, and helper functions. | ||
| * `optim.py <https://github.com/flexcompute/tidy3d-notebooks/blob/develop/2025-10-09-invdes-seminar/optim.py>`_ - a lightweight, autograd-friendly Adam implementation with parameter clipping. | ||
| * ``results/`` - JSON checkpoints (Bayes best point, adjoint refinements, robust design) consumed by subsequent notebooks. | ||
|
|
||
|
|
||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| :orphan: | ||
|
|
||
| .. toctree:: | ||
|
|
||
| ../notebooks/2025-10-09-invdes-seminar/00_setup_guide | ||
| ../notebooks/2025-10-09-invdes-seminar/01_bayes | ||
| ../notebooks/2025-10-09-invdes-seminar/02_adjoint | ||
| ../notebooks/2025-10-09-invdes-seminar/03_sensitivity | ||
| ../notebooks/2025-10-09-invdes-seminar/04_adjoint_robust | ||
| ../notebooks/2025-10-09-invdes-seminar/05_robust_comparison | ||
| ../notebooks/2025-10-09-invdes-seminar/06_measurement_calibration | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So if you don't want to duplicate the content you can just do an
.. include:: <path/to/notebooks/docs/fabrication_aware_invdes.rst>Have you given that a shot? Technically you can consolidate the README and this into a single doc but involves correct notebook linking and checking.Just suggesting. You probably don't have to duplicate this file at the minimum, but just proposing to give it a shot if you also want to consolidate with the README.rst.
Have you built the docs and seen it looks how you want too?