ThermoEngine estimates the thermodynamic properties of minerals, fluids, and melts, and calculates phase equilibriums. The Equilibrate module of ThermoEngine provides Python functions and classes for computing equilibrium phase assemblages with focus on MELTS calculations. The Phases module includes Python functions and classes for computing standard thermodynamic calculations utilizing the Berman, Holland and Powell, or Stixrude-Lithgow-Bertelloni endmember databases, and calculations based on solution properties utilized by MELTS. There are many helper functions available in this module that assist in the calculation of pseudosections, univariant equilibria and the construction of phase diagrams.