Meep is a free and open-source software package for electromagnetics simulation via the finite-difference time-domain (FDTD) method.


  • Free and open-source software under the GNU GPL.
  • Complete scriptability via Python, Scheme, or C++ APIs.
  • Simulation in 1d, 2d, 3d, and cylindrical coordinates.
  • Distributed memory parallelism on any system supporting MPI.
  • Portable to any Unix-like operating system such as Linux, macOS, and FreeBSD.
  • Precompiled binary packages of official releases and nightly builds via Conda.
  • Arbitrary anisotropic electric permittivity ε and magnetic permeability μ, along with dispersive ε(ω) and μ(ω) including loss/gain, nonlinear (Kerr & Pockels) dielectric and magnetic materials, electric/magnetic conductivities σ, and saturable gain/absorption.
  • Perfectly-matched layer (PML) absorbing boundaries as well as Bloch-periodic and perfect-conductor boundary conditions.
  • Exploitation of symmetries to reduce the computation size, including even/odd mirror planes and 90°/180° rotations.
  • Arbitrary current sources including a guided-mode launcher.
  • Frequency-domain solver for finding the response to a continuous-wave (CW) source.
  • ε/μ and field import/export in the HDF5 data format.
  • GDSII file import for planar geometries.
  • Materials library containing predefined broadband, complex refractive indices.
  • Field analyses including Poynting flux, mode decomposition, near to far transformations, frequency extraction, local density of states (LDOS), modal volume, Maxwell stress tensor, arbitrary functions; completely programmable.

Time-Domain Simulation

A time-domain electromagnetic simulation simply evolves Maxwell's equations over time within some finite computational volume, essentially performing a kind of numerical experiment. This can be used to calculate a wide variety of useful quantities. Major applications include:

  • Transmittance and Reflectance Spectra — by Fourier-transforming the response to a short pulse, a single simulation can yield the scattering amplitudes over a broadband spectrum.
  • Resonant Modes and Frequencies — by analyzing the response of the system to a short pulse, one can extract the frequencies, decay rates, and field patterns of the harmonic modes of lossy and lossless systems including waveguide and cavity modes.
  • Field Patterns (e.g. Green's functions) — in response to an arbitrary source via a continuous-wave (CW) input (fixed-ω).

Meep's scriptable interface makes it possible to combine many sorts of computations along with multi-parameter optimization in sequence or in parallel.

Tutorial/Basics provides examples of all these kinds of computations.


The source repository is on GitHub. Gzipped tarballs of stable versions are in Releases. The release history is described in NEWS. Installation instructions are in Installation.


See the left navigation sidebar. In particular, the Introduction, Tutorial/Basics, and FAQ are the most important things to review when starting.

Mailing Lists

Subscribe to the read-only meep-announce mailing list to receive notifications of updates and releases. Subscribe to the meep-discuss mailing list for discussions regarding using Meep. The meep-discuss archives includes all postings since 2006 spanning a large number and variety of discussion topics related to installation, setting up simulations, post-processing output, etc.

Bug Reports and Feature Requests

For bug reports and feature requests, please file a GitHub issue.


The Meep project is maintained by Simpetus and the open-source developer community on GitHub. Acknowledgements provides a complete listing of the project contributors.

Support and Feedback

If you have questions or problems regarding Meep, you are encouraged to query the mailing list.

Professional consulting services for photonic design and modeling including development of custom, turn-key simulation modules, training, technical support, and access to Meep in the public cloud via Amazon Web Services (AWS) are provided by Simpetus.