Alongside rapid GPU-resident numerical integration, OpenMM offers a number of features enabling a user to run custom potentials and enhanced sampling simulations. The Python API offers a number of ways to add custom potential between atoms in a simulation setup such as harmonic restraints to "pull" atoms together or custom conditional potentials that only apply restraints when certain conditions are met. This enables a user to run many different simulation conditions in parallel, maximally leveraging modern HPC and distributed infrastructures.