One computational graph, from fields to designs

Open source · JAX native · independently benchmarked

Electromagnetics at accelerator speed.

FDTDX is a differentiable finite-difference time-domain solver for photonic simulation and inverse design. This Hood Lab fork develops and tests the solver against analytical physics and pinned Tidy3D reference data.

46passing cases
6active failures
16executed notebooks
3honestly blocked

One computational graph, from fields to designs#

FDTDX expresses geometry, sources, Maxwell time stepping, detector readout, and objectives with JAX arrays. The result is a simulation that can be JIT-compiled onto accelerators and differentiated end-to-end. The Hood Lab fork adds the validation and interoperability needed to use that foundation with confidence.

FDTDX workflow from geometry through Maxwell stepping to optimization

A forward simulation and its reverse-mode gradient share the same JAX-native model.#

⚡ JAX-native execution

JIT compilation, GPU execution, vectorization, and automatic differentiation are part of the numerical model—not wrappers around a separate engine.

🌊 Full-wave time domain

Yee-grid electric and magnetic fields, PML and periodic boundaries, dispersive media, anisotropy, phasor monitors, mode sources, and S-parameters.

◇ Differentiable design

Optimize material density through a real Maxwell solve. Gradient plumbing is validated; device-level parity is now fail-closed while each reference’s initialization, symmetry, constraints, and FOM are reproduced exactly.

⬡ Geometry as code

Compose boxes, polygons, cylinders, material tensors, sources, detectors, and boundaries using immutable, transformation-friendly objects.

✓ Evidence first

Every claim here traces to a runnable analytical test or a frozen Tidy3D golden. Coarse-grid comparisons use declared resolution-aware budgets.

⟲ Open and inspectable

MIT-licensed solver code, readable benchmark runners, checked-in compact goldens, and no paid cloud simulation in the test loop.

Choose a path#

First simulation →

Learn the scene → placement → configuration → run pattern with a compact dielectric-scattering example.

Your first simulation
Understand the solver →

Follow Maxwell’s curl equations onto the staggered Yee grid, through boundaries and detector readout.

Maxwell on a Yee grid
Design a splitter →

Work through density filtering, differentiable material maps, objective normalization, and optimization diagnostics.

Inverse design without normalization shortcuts
Inspect every result →

Browse every currently passing case, exact metrics, implementation paths, and rerun commands. Excluded inverse-design audits remain visible separately.

Validated example atlas
Tour real devices →

Compare ten validated forward notebooks, the fitted-Q high-Q cavity optimization, and the fail-closed inverse-design audits with independent forward checks of final binary geometries.

Real-world device reproductions and inverse-design audit
Watch the beta-first optimizer →

Find every live, paused, stopped, and completed optimization through paired geometry and field thumbnails, then open its full evidence page.

Optimization campaign atlas

Project identity

FDTDX is the upstream open-source solver created by Yannik Mahlau and collaborators. fdtdx-hoodlab is a research fork that extends and validates it toward Tidy3D-like FDTD coverage. These docs distinguish validated behavior from work still in progress.