Generative Textures
Generative Textures is a projection-mapping work that creates emergent textures on the surface of a cube.
produced by: Claire Fleischmann
I am fascinated by interesting processes that drive systems and I wanted to explore this as part of work.
My starting point was an interest in Slime Mould. Slime Mould is a single cell organism, that is able to generate complex and interesting patterns depending on their interactions with each other and with the environment. Slime mould are alos able to solve problems e.g. finding the shortest path between locations. Find out more about Slime Mould here.
On researching slime mould, I came across a blog post by softology which referenced a paper by Jeff Jones. Inspired by the paper, softology describes simulating slime mould via a data map of particles at an x, y location that are able to sense from and deposit to a pheromone map. Particles move around the environment based on the level of pheromone that they sense at three different locations: front_left, front and front_right. Each time they move they deposit a level of pheromone back onto the pheromone map. The level of pheromone at each location is also diffused at each time step.
Implementing this system and tweaking parameters, softology was able to create some fantastic textures. Inspired by the similar approach taken by Julien Verneuil in his Slime mold simulation, I set out to create my own interesting texture/system for the first scene. The result is something that does feel organic but also moves from something unordered towards more order.
The final three scenes generate textures using random noise. Drawing on a Graphics Tutorial by Lode Vandevenne, the first texture layers different scales of noise to generate 'Turbulence’. Two further textures use this as the basis. A ‘Marble Texture’ adds the Turbulence to a sine pattern. A ‘Wood Texture’ adds turbulence to a sine pattern centred in the middle of the sketch. The parameters can be tuned to vary the textures offering further variation (unfortunately I did not have time to fully exploit this). In all cases the value of the noise at each x, y location is used to adjust the colour the pixel at that location.
On reflection, I am not sure that the piece works. Although the individual textures are interesting, the focus on the generative nature of the surface means that the piece does not feel choreographed. It doesn’t tell a story. I have also not made full use of the geometry available.
I invested time in understanding the processes that drive the textures. As a result, the sketches are more complicated than they perhaps need to be. I found the process of porting the sketches from Processing to OpenFrameworks and ironing out the niggles to be more time consuming that I had anticipated. This results in a piece that feels unfinished. I perhaps would have been better to invest time in the overall design of the piece and the knitting together of less complicated, but deliberate, processes.
References
Lode's Computer Graphics Tutorial - Texture Generation using Random Noise - https://lodev.org/cgtutor/randomnoise.html
Jones, J. (2010). Characteristics of pattern formation and evolution in approximations of physarum transport networks. Artificial Life, 16(2), 127-153. https://doi.org/10.1162/artl.2010.16.2.16202
Verneuil, Julian. Slime mold simulation - https://www.openprocessing.org/sketch/781586
softologyblog (2019) Physarum Simulations - https://softologyblog.wordpress.com/2019/04/11/physarum-simulations/