A method of computing the propagation of waves based on geometric optics. In this case, as well as accounting for reflection from surfaces, the effects of diffraction from surfaces and around edges is taken into account. This results in reliable models at longer wavelengths compared with methods using geometric optics alone. In particular it allows waves that would diffract into shadowed regions of an object to do so.