Install & Compatibility
Where this runs
tested against v2.11.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.9
✕ build_error
✓ 29.7s
540MB installed
● package 540MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Simulation
✓ from tidy3d import Simulation
✗ import tidy3d as td
td.Simulation(...)
Creates a basic waveguide with a point dipole source and field monitor. For cloud execution, uncomment the web.run() call and set your API key via environment variable TIDY3D_API_KEY.
import tidy3d as td
import numpy as np
# Define a simple waveguide simulation
sim = td.Simulation(
size=(4.0, 2.5, 2.0),
grid_spec=td.GridSpec.auto(min_steps_per_wvl=10),
boundary_spec=td.BoundarySpec.pml(x=False, y=True, z=True),
structures=[
td.Structure(
geometry=td.Box(center=(0, 0, 0), size=(td.inf, 0.5, 0.22)),
medium=td.Medium(permittivity=2.0)
)
],
sources=[
td.PointDipole(
center=(-1.5, 0, 0),
polarization='Ex',
source_time=td.GaussianPulse(freq0=200e12, fwidth=40e12)
)
],
monitors=[
td.FieldMonitor(center=(0,0,0), size=(0,0,0), freqs=[200e12], name='point')
],
run_time=1e-12
)
# Run locally (requires solver; for cloud use: web.run(sim, task_name='test'))
# data = web.run(sim, task_name='quickstart')
print('Simulation created successfully.')
Upgrade
Version history
2.11.2latest on PyPI · released May 7, 2026
Audit
Dependencies
numpyrequiredCore numerical library, version <2.4 required (patched in 2.10.1)
pydanticrequiredData validation and settings management, v2 used since 2.10.0rc3
autogradoptionalAutomatic differentiation for adjoint optimization