MClone

MClone, or Clonal Mosaic, is a pattern formation algorithm proposed in 1998 used specially for simulating the visible patches of color in the fur of giraffes and members of the Felidae of the mammalians. It was primarily proposed as a 2D model and lately was extended to 3D. An important feature of the algorithm is that it is biologically plausible.

Since the algorithm was created in order to address some of the problems with texture mapping, its main goal is to produce, with the same set of parameters, a variable number of color patterns for a 2D or 3D object model. This way, for a relatively big amount of different entities represented by the same model, instead of using the same texture (and, doing so, each object would be equal to the others), one could use the different color patterns created by the MClone algorithm. Another useful feature of MClone is that it can be used to create patterns along with growing data of the object model.

The algorithm
The MClone algorithm, essentially, works as follows: given the 3D model of the object which we want to create a new pattern, we first randomly place n cells on the model's surface. Each cell has a type, which defines many cell's properties, including its color. This way, for instance, if we want to simulate a pattern that has only two colors, we should use just two types of cells.

Now that the model has the defined cells, and they are placed randomly, we want them to create a pattern. For this to happen, we make relaxations between all cells. We have two fundamental parameters in these relaxations: the mitosis rate of each cell type (which indicates the delay in days for the cell type multiplication) and the adhesion rate of each cell type to the others (and to itself too). This last one is a number smaller than 1 that subtracts from the resultant force of the relaxation (thus, keeping the cells together).

Each relaxation happens has a defined "day" in which it occurs (this is the way MClone calls the relaxation process). The number of relaxations per day is defined at the beginning of the algorithm. The mitosis rate is defined as a number that indicates in how many days a cell is going to reproduce "again". For example, if the mitosis rate of a given cell type is 4, the cells of that cell type are going to reproduce themselves in average every 4 days (i.e., for a cell born in the first day, it reproduces itself in the fifth day, and in the ninth day, and so on).

Passed a given number of days, we are going to have a well defined pattern, which can be, or not be what we were waiting for. Although it could not seem intuitive through the explanation above, an important feature of the algorithm is that it is easy to predict how it will become a pattern just after taking a look at the parameters passed to the algorithm.