Multipath is detrimental for both GPS positioning and timing applications. However, the benefits of GPS multipath for reflectometry have become increasingly clear for monitoring soil moisture, snow depth, and vegetation growth. In positioning applications, a simulator can support multipath mitigation efforts in terms of, e.g., site selection, antenna design, receiver performance assessment, and in relating different observations to a common parameterization. For reflectometry, in order to convert observed multipath parameters into useable environmental products, it is important to be able to explicitly link the GPS observables to known characteristics of the GPS receiver/antenna and the reflecting environment. Existing GPS multipath software simulators are generally not readily available for the general scientific community to use and/or modify. Here, a simulator has been implemented in Matlab/Octave and is made available as open source code. It can produce signal-to-noise ratio, carrier phase, and code pseudorange observables, based on L1 and L2 carrier frequencies and C/A, P(Y), and L2C modulations. It couples different surface and antenna types with due consideration for polarization and coherence. In addition to offering predefined material types (water, concrete, soil, etc.), it allows certain dimensional properties to be varied, such as soil moisture and snow density.