Clusters is particle system designed by Jeffrey Ventrella to give life-like behaviors to the particles. It is an attraction – repulsion system (particles are attracted and repelled by each other). Particles are divided into different groups (clusters), and the rules (attraction range, attraction strength, repulsion range, repulsion strength) are defined between the groups. It means that all the particles from group A will have the same behavior towards particles from group B, another behavior towards group C… so on so forth.
This simple set of rules can give birth to breathtaking behaviors between the particles. Life-like organisms seems to take life in this chaotic system, and as a matter of fact the organisms have behaviors that can be linked to natural phenomena.
I first wanted to explore this system in depth because I was too amazed by the results I was seeing. I posted some exploration of organisms growth on my instagram.
I then introduced another set of rules to isolate one of the groups and have it fight the others. The particles would fear the isolated group, species X, so I gave them more repulsion towards X. I also introduced a new organism in the species X, a much bigger one that would not be feared by the other particles, but would attract the small species X by a lot. I was hoping this organism could eat the other particles and be used by the species X as a mean to gather nutrients. By giving such a variety of new interactions, I was hoping to see the emergence of more complexe mass behaviors.
This project was also a great candidate to apply a new design concept to my artworks. I used to expose all the parameters having influence over my simulations, and in the end I was struggling a bit to find and save nice combinations I explored. I realized that creating presets that would generate values for these parameters based on a range defined by some higher level controls could benefit the quality of my control over my simulations. For instance in Clusters X, I can control the likeness of a new set of rules to output a particular type of organisms.
Rather than moving arbitrary sliders for a weird value, being able to dictate how the simulation evolves is much more interesting. I now try to apply this concept to all my generative work.
I did not implement the nutrients. A possible amelioration would be to implement it, as well as a way for the particles to share energy upon contact.