  Large computer models are ubiquitous in the earth sciences. These models
often have tens or hundreds of tuneable parameters and can take thousands of
core-hours to run to completion while generating terabytes of output. It is
becoming common practice to develop emulators as fast approximations, or
surrogates, of these models in order to explore the relationships between these
inputs and outputs, understand uncertainties and generate large ensembles
datasets. While the purpose of these surrogates may differ, their development
is often very similar. Here we introduce ESEm: an open-source tool providing a
general workflow for emulating and validating a wide variety of models and
outputs. It includes efficient routines for sampling these emulators for the
purpose of uncertainty quantification and model calibration. It is built on
well-established, high-performance libraries to ensure robustness,
extensibility and scalability. We demonstrate the flexibility of ESEm through
three case-studies using ESEm to reduce parametric uncertainty in a general
circulation model, explore precipitation sensitivity in a cloud resolving model
and scenario uncertainty in the CMIP6 multi-model ensemble.
