Using genetic algorithms to drive space colonization and growth (details after the videos).
Points compete for resources (a noise-based vector field), with per-channel parameters for growth rate (positive or negative) and per-channel attack / defense bonuses.
On each step, each point accumulates resources from its position in space, on the basis of its growth factors. Its defense score is based on its growth stage and its local resources. Attacks are sampled from neighbouring points within a radius influenced by growth stage, and the net Attack-Defense value (per-channel) is subtracted from the harvested resources. Growth rate is determined by the final resource score.
After growth rates are applied: points exceeding 1.0 in growth stage are deemed ‘mature’ and start accumulating seed resources, while points lower than 0.0 in growth stage are culled.
Points reaching 2.0 in growth stage are eligible to disperse seeds. A random set of new points are generated nearby, with mutated parameters for growth, attack, and defense. The seed-dispersing point is culled.
Finally, all points are subjected to unbiased density-based culling.
The visualizations represent attack (outer) and defense (inner) parameters in terms of color for each point, and growth stage as size.