Geologists’ interpretations about the earth typically involve distinct rock units with contacts between them. Three-dimensional geologic models typically comprise surfaces of tessellated polygons that represent the contacts. In contrast, geophysical inversions typically are performed on voxel meshes comprising space-filling elements. Standard minimum-structure voxel inversions recover smooth models, inconsistent with typical geologic interpretations. Various voxel inversion methods have been developed that attempt to produce models more consistent with such interpretations. However, many of those methods involve increased numerical challenges and ultimately the underlying parameterization of the earth is still inconsistent with geologists’ interpretations. Surface geometry inversion (SGI) is a fundamentally different approach that effectively takes some initial surface-based model and alters the position of the contact surfaces to better fit the geophysical data. Many authors have developed SGI methods. In contrast to those, we are the first to develop a method with the following characteristics: we work directly with 3D explicit surfaces from an input geologic model of arbitrary complexity; we incorporate intersection detection methods to avoid unacceptable topological scenarios; we use global optimization strategies and stochastic sampling to solve the inverse problem and aid model assessment; and we use surface subdivision to reduce the number of model parameters, which also provides regularization without adding the complication of trade-off parameters in the objective function. We test our methods on simpler synthetic examples taken from early influential literature, and we demonstrate their typical use on a more complicated example based on a seafloor massive sulfide deposit. Our work provides a geophysical inversion approach that can work directly with 3D surface-based geologic models. With this approach, geophysical and geologic models can share the same parameterization; there is only a single model, with no need to translate information between two inconsistent parameterizations.