A simulation of cellular reproduction using a model based on a point-mass physics engine.
This is what one might call a "rule-based simulation." It is intended to be a reductionist model of cellular mitosis, in which each cell can either "split" into two cells or die, based on how much "food" it has eaten.
So what are the rules? First, the point-mass system only gives it the sense that these "cells" live in a physical space. They have mass (from the particles), live in a viscous fluid (modeled by the "drag" parameter of the particle system), and have forces that give the appearance of solidity and a mild cohesion to each other.
Next are the rules that govern reproduction. The white background represents "food" available for the cells to consume, parameterized simply by an array of numbers. When a cell "eats," it subtracts an amount from the environment holding the food, and records it as an amount eaten. Once the cell has eaten enough, it "splits," or spawns a new cell at its location. If the cell doesn't have enough to eat given where it is, then it dies, and is removed from the simulation.
The only inconsistent rule sets a hard limit on the total population of cells, which is purely for performance purposes. More than 300 cells tends to slow the simulation down too much.
As for representation, the cells are just black circles, and the food's consumption is rendered as a change in hue against the white. This reveals the cells' consumption patterns shown in the renderings. Once the initial population appears, they begin to expand in a donut-shaped pattern. But interestingly, this movement comes more from the splitting and reproduction than single cells actually moving. Increasing the viscosity in the environment continues to reveal a similar pattern.
An Additive Process
The code hosted on Github has three sketches. The first just models the behavior of the cells. The second adds food to the mix, which results in the rendering above. The third enables you to "draw" the food onto a virtual petri dish. Then different growth patterns start to emerge:
A "smarter" simulation would start to model how cells actually metabolize. Also extending these to model single-cell organisms would be interesting, as we could model movements.
Get the code on Github.