My goal was to create a virtual Petri dish that would live on a phone and evolve depending on how the user interacted with it. The concept was inspired by the game Viridi. Made in 2020 using p5.

The source code is available on GitHub.

How it works

The program runs a primitive physics simulation, where several particles can move around while being repeled by each other. Each particle has a mass that increases with time, which affects the way it moves and how strongly it pushes other particles away.

On each frame a Voronoi graph is drawn on the screen, with each cell encasing a single particle. The color and size of the cell depend on the particle's attributes. At any given time, a cell might "split", creating two new cells with slighltly different hues.

The user can "pop" a cell by touching it.