A technique is presented to invert full waveforms using a genetic algorithm. The inversion scheme is based on a finite-difference solution of the 2-D elastic wave equation in the time-distance domain. The strength of this approach is the ability to generate all possible wave types (body waves and surface waves, etc.) and thus to simulate complex seismic wavefields that are then compared with observed data to infer subsurface properties. The capability of this inversion technique is tested with both synthetic and real experimental data sets. The inversion results from synthetic data show the ability of characterizing both low- and high-velocity layers, and the inversion results from real data are generally consistent with crosshole, SPT N-value, and material log results, including the identification of a buried low-velocity layer. Based upon the cases presented, coupling of global optimization with full waveforms is computationally practical, as the results presented herein were all achieved in about two hours of computer time on a standard laptop computer.