A dimer model is a bipartite graph embedded on the torus. First introduced to study crystal physics in the 1960s, the study of dimer models has recently been revived by the mathematical physics community because of new connections with string theory, and this has, in turn, drawn the interests of algebraic geometers, who use dimer models to extract algebras that resolve toric singularities. In these fields, only sufficiently ``nice'' dimer models are useful.
In this thesis we study dimer models from a purely combinatorial perspective. We make rigorous what is meant by the word ``nice'', investigate properties of nice dimer models, and use these properties to develop a graph algorithm that generates an infinite class of useful dimer models.