Of late I’ve been doing some experiments with generative art using Elm, the functional language by Evan Czaplicki. Above is one example. It is created by repeatedly subdividing a square into quadrilaterals, modifying the colors as one goes. A key factor is finding a proper balance between order and randomness. For more details, see these notes. The code is on GitHub.
The image above consists of 247,789 quadrilaterals obtained via 11 repeated subdivisions. One would expect 4^11 = 4,194,304 quadrilaterals. However, at each state there is a 20% chance for a quadrilateral to become inactive, and so not to be subdivided. This results both in more visual variety and fewer quadrilaterals.