wgms3d is a full-vectorial electromagnetic waveguide mode solver. It computes the modes of dielectric waveguides at a specified wavelength using a second-order finite-difference method. The waveguide cross section may consist of several adjacent regions of constant refractive index (i.e., step-index profiles). Dielectric interfaces do not have to be aligned with the discretization grid; they may be arbitrarily slanted or curved. The entire waveguide may be curved along the propagation direction. Leakage and curvature losses can be computed using Perfectly Matched Layers as absorbing boundaries.