We present BurnMan, an open-source mineral physics toolbox to determine elastic properties for specified compositions in the lower mantle by solving an Equation of State (EoS). The toolbox, written in Python, can be used to evaluate seismic velocities of new mineral physics data or geodynamic models, and as the forward model in inversions for mantle composition. The user can define the composition from a list of minerals provided for the lower mantle or easily include their own. BurnMan provides choices in methodology, both for the EoS and for the multiphase averaging scheme. The results can be visually or quantitatively compared to observed seismic models. Example user scripts show how to go through these steps. This paper includes several examples realized with BurnMan: First, we benchmark the computations to check for correctness. Second, we exemplify two pitfalls in EoS modeling: using a different EoS than the one used to derive the mineral physical parameters or using an incorrect averaging scheme. Both pitfalls have led to incorrect conclusions on lower mantle composition and temperature in the literature. We further illustrate that fitting elastic velocities separately or jointly leads to different Mg/Si ratios for the lower mantle. However, we find that, within mineral physical uncertainties, a pyrolitic composition can match PREM very well. Finally, we find that uncertainties on specific input parameters result in a considerable amount of variation in both magnitude and gradient of the seismic velocities.