# Invdes smoke: transmission FOM improves under gradient steps

<span class="validation-badge">validated · 2026-08-28</span>

<div class="case-meta"><span>invdes</span><span>resolution 1</span><span>invdes</span><span>p5</span><span>fom</span><span>high_yield</span></div>

This case checks optimization performance: the best objective reached, not geometry identity or convergence speed.

```{figure} ../../_static/generated/inverse_design_splitter.png
:alt: Technical schematic associated with Invdes smoke: transmission FOM improves under gradient steps

Differentiable inverse-design result and convergence history.
```

## What is exercised

Small 3D periodic permittivity design region; maximize final field energy for N=12 Adam steps. Pass only if the best FOM is at least 2x the initial FOM, the trajectory and first gradient are finite, and inverse permittivity stays inside the declared [0.08, 1.0] material bounds. This is an AD optimizer smoke case, not a Tidy3D parity or geometry match.

This case runs at its declared full benchmark resolution (resolution factor 1.0).



## Recorded result

| Metric | Observed / error | Reference / limit | Error | Effective budget | Result |
|---|---:|---:|---:|---:|---:|
| `best_fom_gain` | 2.40244 | 2 | -0.402436 | — | <span class="metric-pass">PASS</span> |
| `optimization_finite` | 1 | 1 | 0 | 0 | <span class="metric-pass">PASS</span> |
| `design_bound_violation` | 1.788e-09 | 0 | 1.788e-09 | 1.000e-06 | <span class="metric-pass">PASS</span> |

The table is rendered from `progress.json`; it is not a hand-written success claim. For metrics that report an error directly, the “observed” column repeats that error and the reference column is the acceptance threshold.

## Reproduce

```bash
uv run fdtdx-bench run --case invdes_fom_improve
```

Implementation and provenance: `benchmarks/cases/invdes_fom_improve/case.yaml`, `benchmarks/cases/invdes_fom_improve/run.py`.

[Return to the example atlas](../index.md)
