A program written in JAVA using SWING as the graphics framework, based on the idea of cellular automata to simulate grain growth with multiple neighbourhood types (Moore, von Neumann, hexagonal, pentagonal).