puzzle simulation: initialization
The simulation requires regions of different phases to already be defined in order to run. It doesn't work if there is empty space. Therefore, before the simulation articulating the boundaries between pieces runs, we have to roughly define the number, position, and shape of all the pieces.
This process could be done in any number of ways. We choose to define pieces by a kind of generalized voronoi diagram. Rather than computing the voronoi diagram directly, we define a number of seed shapes in simulation space, and allow those shapes to diffuse out until they meet neighboring shapes. This is a kind of reaction-diffusion, which allows us to easily define arbitrarily complex boundaries and seeds. Defining seeds with different shapes and spatial density allows us to make different styles of puzzle piece.
Before the simulation begins, the piece boundaries are given an initial oscillating perturbation of simple sine waves. Experiments show that dendritic solidification is very sensitive to the initial seed shape that it grows from. Different wavelengths and amplitudes yield differing morphologies of growth. Therefore, this initial perturbation is one of the main parameters we vary to change the cut style.