Category: Art

  • Patterns of Life

    Patterns of Life

    Patterns of Life

    , , ,

    Life is full of patterns: From the stripes of the tiger to the spots on the leopard, the coats of animals come in many colours or shapes. Still there is a shared element between all the biological patterns, a similar aesthetic. Some patterns are clearly shaped by morphology, e.g. the wings on a bird having a different colour from the rest of the body. But there are also patterns that exist on otherwise uniform parts of the body, such as the stripes of the zebras and tigers.

    We did a mathematical study of a mathematical instability that creates these biological patterns, and even rotating spiral waves. The result was a highly cited paper and interactive exhibit in a major science museum.

    Stripes on a Tiger

    In 1952 Alan Turing proposed that patterns can form as the result of diffusion. What a crazy idea! In our daily life we know diffusion as the great equalizer. Clearly the reason why the tiger has stripes is rooted in the differentiation of hair cells, some of which become black-hair-producing cells, while others become orangy-yellow-hair-producing cells. Because the different colours are organized in neat stripes the hair cells must somehow coordinate. At some point of deveolpement of the tiger the hair cells must have had a sort of discussion on who is going to produce what kind of hair.

    The hair cells themselves are too big to move around much, so there dialogue must be facilitated by much smaller signalling molecules that carry information between the cells. The precise mechanisms are still unknown, but for the sake of argument we can assume that there is one type of signalling molecule that signals blackness while another signals orangeness. When the time arrives for a hair cell to make a choice it looks at the signalling molecules that arrive at its cell membrane. If the majority signals orange, we get an orange hair, otherwise we get a black one.

    In our experience diffusion tends to average out concentrations. Even if we started out with more signalling molecules for, say, black at one spot, we would expect that over time diffusion would lead to an equal distribution of blackness over the whole tiger. Instead we get clearly defined stripes.

    Turing realized that diffusion can not only wash out patterns, it can also produce them. This is possible when two different substances diffuse that react with each other either directly or indirectly, e.g. via the hair cell. In that case we can start with a blank slate where the signalling molecules are equally distributed and then watch them redistribute to form patterns.

    A Puzzle in Marine Sediments

    Many years after Turings foundational work Martin Baurmann, Ulrike Feudel and I became interested in pattern formation in marine sediments. Even tidal flats that look like uniform expanses of mud to the naked eye have chemical patterns. Imagine standing on a nearly flat plane of mud that is dozens of miles wide, but if you measure the chemicals in the sediments beneath your feet, the results you get in one spot are very different from the results you get only a hand’s breadth away. How is this possible? What causes these differences? Was it possible that the bacteria in marine sediments coordinated in a similar way as the hair cells in the tiger?

    We made a simple mathematical model, which is still perhaps the simplest ecological model that exhibits spontaneous pattern formation. It showed that chemical pattern formation in marine sediments was plausible. More importantly the model was so simple that we could study the pattern-formation mathematically, but there was a surprise waiting for us.

    When we change parameters of a system gradually, the behaviour of a system typically responds gradually as well. But there are specific parameter thresholds at which the behaviour changes radically. These thresholds are called bifurcations and form the boundary between qualitatively different types of behaviour. The onset of pattern formation is such a bifurcation, which is called Turing bifurcation, in honour of Alan Turing. But when we analyzed our mathematical we found not only the Turing bifurcation, but also a Hopf bifurcation which marks the onset of sustained oscillations in the system.

    The "Patterns of Life" installation. A large machiene with four screens on top of each other.

    More Patterns and a Museum

    The Turing and Hopf Bifurcations are two different fundamental instabilities of spatial systems. In our model these instabilities intersect and interact, and if parameters are chosen close to the intersection then pattern formation goes wild. Some first simulation runs revealed a few stationary patterns but many more showed complex spatiotemporal structures that combined oscillations with spatial shapes. Clearly we needed to do many more simulations to explore what else was possible in this system.

    Now there was an idea: We needed to run a lot of simulations of fantastic shifting patterns that created themselves out of nowhere, sometimes collapsed back to nothing, sometimes settled into predictable patterns and sometimes descended into chaos—it was fascinating to watch.

    At the same time a new science museum had just opened in Bremen, the Universum Science Center. In a conversation it came up that science museums only ever show the results of science, but not how the science really happens, and we had the perfect solution: Our simulations were science being done, and they were interesting to watch.

    We approached the museum and obtained some funding from the local EWE foundation. The money paid for a fancy exhibit that we called “patterns of life,” which contained four computers and four screens that were constantly running simulations. Some interactivity allowed visitors to identify interesting parameter values for more simulation runs and thus become participants in the research.

    The “patterns of life” exhibit ran for four years in the permanent exhibition of the Universum Science Center, afterwards the installation had a second life in the lobby of the Institute for Chemistry and Biology of the Marine environment (ICBM).

  • Creative Reactions

    Creative Reactions

    Creative Reactions

    , , ,

    Living in Bristol was fun because there is always something new and exciting happening in the city. One day I became aware of the creative reactions program, an initiative to foster contacts between art and science. Through this program I got into contact with graphical artist Frankie Partridge, we spent long hours talking about complexity and eventually created some art together.

    Cohesion and Chaos

    Our artwork Cohesion and Chaos captures the attempts to rein in the complexities of life through research. The right-hand-side of the artwork depict variations in the style of figures from historical scientific manuscripts. The left-hand-side is a two-dimensional bifurcation diagram of the Takens-Bogdanove bifurcation combined with various phase portraits—one of the transitions that can occur on the route from regularity to chaos.

    Cohesion and Chaos by Frankie Partridge and Thilo Gross. (low resolution preview)

    Reception

    Cohesion and Chaos was shown at Hamilton House Gallery in Bristol, UK, for two weeks in 2016. Later that year it was also exhibited as part of the North Bristol Art trail.

    The initial run of fourty limited edition prints has sold out.

  • Video-Art with Hydra

    Video-Art with Hydra

    Video-Art with Hydra

    , , , ,

    There are many software packages for video editing, which filter, cut and edit all you like, but they all work on videos that are already dead. The source material sits conserved in a file on your hard drive, frozen in time, while the events that are depicted have long since passed. Can you imagine, editing video live, working with a stream of data that has never been stored? Or even mixing, filtering, and combining several such streams?

    Enter: The Hydra

    Hydra is a project by software artist Olivia Jack. In a nutshell it builds on video filters that are already built in your web browser. Hydra gives you direct control over these so-called shaders, using a simple programming language. The result is a website which can pull in files from memory, livestreams and cameras and work with them in various surprising ways.

    For example I was able to make a small script that detects change in the video feed from my laptop camera in just five lines of code. You can see the result below this page….

    Try it yourself

    Want to try this yourself. It’s just one click away:

    How it works …

    Let’s take a look at the script that creates the motion detector. It starts with:

    s0.initCam()

    This tells video source 0 to be a stream that comes from the camera. Next we have

    solid(0.5,0.5,05).out(o0)

    This creates a neutral grey image (all three color channels are set to 0.5) and stores it as output o0. This output is just a convenient place where we can keep the image.

    src(s0).invert(1).out(o1)

    This takes source s0, which is the video camera and inverts all pixels, creating a negative image that is stored as output o1.

    src(s0).blend(o1,0.5).contrast(2).out(o2)

    Now we take the camera source s0 and blend it with the inverted image. The 0.5 means that both sources contribute 50% of the product. Now suppose the camera would be recording a static image, then blending the camera image with it’s own inverse would produce solid grey.

    But the inversion takes a little bit of time, so negative image is always a tiny bit older than the current image. So if the camera is recording a moving object the image and the negative do not cancel perfectly anymore and instead. We get a signal that is different from neutral grey wherever there was movement in the image. Now we only need some cosmetic adjustments:

    src(o0).diff(o2).add(src(o2).diff(o0)).thresh(0.4,0.4).add(o3,0.9).mult(solid(0,1,0)).out(o3)

    At this point the blended image is already stored in o2. We take it and subtract the neutral grey such that a pixel that hasn’t change is now black. Finally the intensity is scaled up, thresholded and we multiply with a pure green image to make everything nice bright green. We add 90 of the result from the previous iteration. This makes the detected differences easier to see by making them linger longer, creating a motion-blur like effect. We save the resulting stream as output o3. Now we only need to tell hydra that that output is what we want to see: