A key concept in material science is the relationship between the Bravais lattice, the reciprocal
lattice and the resulting Brillouin zones (BZ). These zones are often complicated shapes that are
hard to construct and visualise without the use of sophisticated software, even by professional
scientists. We have used a simple sorting algorithm to construct BZ of any order for a chosen
Bravais lattice that is easy to implement in any scientific programming language. The resulting
zones can then be visualised using freely available plotting software. This method has pedagogical
value for upper-level undergraduate students since, along with other computational methods, it can
be used to illustrate how constant-energy surfaces combine with these zones to create van Hove
singularities in the density of states. In this paper we apply our algorithm along with the
empirical pseudopotential method and the 2D equivalent of the tetrahedron method to show how they
can be used in a simple soft…