It was estimated that approximately 35 billion people watched at least some part of the football World Cup in 2002. I’ve got to admit I was one of those who didn’t miss a single game, despite the fact that kick-off for each game was around 9 am local time (when any decent client understandably expects you to work on their project).

It’s getting worse at club-level as well. Freezing in the bitter cold and rain, whilst watching a boring weekend-afternoon-kick swearing that this would be the last time I’d put myself through such a miserable time… just to return to the same place one week later. That’s the price of being a loyal supporter.

Strange behaviour?

If you find such behaviour rather alien you’re certainly not the only one. Still, you don’t need to be a football-fanatic to question what makes this game (or other popular games) so addictive to some people. Personally, I think that apart from the passion and the fact that anyone can kick a ball on a more or less skilled level and thus get involved easily, football holds something that is part of almost any game.

Based on a system of rules and variable factors (players skills, pitch condition, referee etc.) the game evolves in endless variations. No two games are the same. The rules and constraints stay the same but each game unfolds very differently every time. There’s that constant flow of imagination, hope, expectation, fascination, excitement or boredom (admittedly most of the time) and bitter despair. You can never be sure what is going to happen next.

Apart from shouting immature words at the players and the referee, the spectator has a relatively passive role and the game unfolds rather autonomously, but in his mind one is constantly participating and experimenting with the outcome. What would have happened if the coach had not placed this lame left back in the line-up or what would have changed if that shot didn’t just hit the post but went in?

Systems and exploration

Most of these aspects can be found when exploring evolving visuals or generative works. A system serves as a ground where generative processes can emerge. The system leaves room for variation and manipulation and holds the potential to create a huge number of varying but related output. It’s a concept that has been used in art long before and it has since become popular on the computer and the web.

In 1959, Swiss artist Jean Tinguely introduced his series of “Méta-Matics”, machines that were able to draw abstract paintings automatically in thousands of variations. Tinguely’s machines weren’t exactly of the precision you’d expect from a Swiss clock movement.

When building his machines he preferred to go for mechanical imprecision. These mechanical irregularities allowed for somewhat arbitrary movements of the machine and gave room for variation to the drawing process. Another important factor that determined the output was the way the machine was set up and used.

There were several variables (what kind of pen and paper was used or the time the machine ran) that could be manipulated by the viewer that would further influence the machine’s drawings. Here, the kinetics of some parameters formed a system on which an autonomous process evolved to generate variable output.

Processes playing the vital role

What becomes clear is that it is not only the result that is important, but the process that leads to the outcome plays an equally, if not more important role. While the drawings of the machines are remarkable, watching those machines in action is far more fascinating and educating. It’s the process that tells us the most about the underlying system and encourages us to make exploration through experimentation.

Obviously the computer is an ideal tool to realize such systems. It works on conditions, allows for interaction and is able to operate very quickly, which opens up the possibility to visualize processes.

While computer based generative works have been pursued for several decades it has especially gained popularity during the last few years through the web. So, it’s no surprise that you’ll frequently find this generative approach if you look at the sites in the different sections of the FWA-listing.

Experimentation, fun and rewarding

Apart from the fact that it is fun to experiment with evolving visual patterns (which in my opinion is motivation enough) there is also a wealth of other reasons why one would want to do so.

In the field of visual research, for instance, Gestalt-Theorists can apply evolving patterns to find principles with aesthetically pleasing results. By gradually modifying parameters and judging the endless variations by their aesthetical appeal one could try to find which variables (symmetry, continuity, proximity or predictability etc.) and to what extent those variables contribute to beautiful creations.

Visuals and real life situations

By projecting visuals onto surroundings, evolving patterns are used to enhance the emotional and visual substance of our environment. In a lounge or waiting room generative systems can be set up, where graphical elements and structures augment the overall atmosphere. The viewer’s interest is kept high through continuous variation by a process that gradually and softly evolves in the background thus not brutally forcing his attention.

Or, with the right equipment one could measure a person’s pulse, voice-tonality and dynamics to derive his/her mood and feed the data into a projected visual system that mirrors the viewer’s emotions in a sort of generative biofeedback.

Benefits of dynamic processes

Real time commercials could use generative algorithms to change their appearance every time depending on the contextual information. What about a car commercial where abstract surroundings are generated based on local weather data each time the commercial is played?

There is also an educational factor involved. Many dynamic processes like those involved in social-networks, attitude and behaviour or financial markets could be made observable and explorable on an abstract level through generative visual processes and experimental set-ups.

Further, generative systems can be used as a source of inspiration. A designer defines a system that generates countless suggestions of related shapes within a preferred range. He then only has to judge the outputs and pick those that work best.

Experimenting, where to start

The most straightforward and flexible way to start experimenting with generative visuals is to sit down and write code to implement a system, which generates or reads data and applies these data to specific properties of the visual output.

On an abstract level there is a source on one side, in which a flow of signals, defined by procedural rules emerge, and on the other side a destination, where these signals are interpreted and fed to the visual output in a specific way.

The way a system can be set up is almost inexhaustible. One could go for complete randomness, using random numbers that then are applied to colour-values or to the position of visual elements on screen.

Whilst this might be interesting, a little bit more continuity may be required to get some aesthetically more pleasing results. Therefore, one would probably want to add some continuous data to the output using harmonic functions for instance. Later, one could try to modulate the random numbers with external data or via the user interface – the possibilities are endless.

While the procedural rules lay down the general space of the system, the parameters involved can be used to make further adjustments to the output. It’s a constant shift between setting up a system, judging its output and adapting the system into the desired direction, which in fact is the essence of experimentation.

You aim for a specific goal, but you’re never certain what is going to happen next. During this process there will be a lot of output that won’t work in the desired way, some that will surpass our imagination or mistakes we did not expect at all. But each time we run our experiment, the outcome will help us to understand the underlying structure better and act as another source for inspiration to introduce to our system.

No need to reinvent the wheel

Of course there’s no need to reinvent the wheel. There are a great number of concepts to explore like substitution systems, cellular automata, attractors or genetics, that are already well described and in general yield fascinating results that can be used as inspiration, the base for experimentation or mixed in a original way.

Still, the most rewarding workflow, probably, is to approach nature in a naive way and try to describe a specific phenomenon on an abstract level and breaking it down to its basic structures. Then by recombining these structures in an original manner we can try to create something new, that borrows its concept form the proven beauty of nature but manifesting itself in a novel and fascinating way.

Choosing an environment

There are a lot of environments that lend themselves particularly well to implement and experiment with generative systems. Applications like Macromedia’s Flash and Director or frameworks like Processing are all great tools where one can write some code to relatively easily implement the aforementioned systems.

Other stand-alone-applications like Max/Msp/Jitter, Pure Data or Touch are very powerful but work on a higher level offering a graphical programming paradigm where nodes that implement small bits of logic can be connected to build a complex system.


If you want to try out some of the ideas described here right away, you might want to visit onModular, an online modular visual synthesizer. It borrows its conception from a paradigm that has been widely used in sound synthesis for years… oscillators generating waveforms can be connected, so that one oscillator modulates the waveform of another resulting in the creation of a more complex waveform.

By layering multiple and different waveforms one can quickly build an interesting system. The generated signals can then be applied to a number of properties of the visual elements. With this approach it is possible to generate complex forms and structures through simple functions and explore those structures and the underlying system through quick adaptation.

Generative systems blur the boundaries between the artist and the engineer. Code and, in that order, its perceptual output, have artistic value and have become a way of expression. Still, there are enough tools where the technical less inclined can easily approach such systems, which hold plenty of fascinating concepts to explore and to learn from.

About the author, Andy Hulstkamp

Swiss / Dutch engineer and artist Andy Hulstkamp currently lives in Berne and Zurich, Switzerland. He works as a software-architect and interactive designer for E-Business solutions and Rich Internet Applications, while finding time to code and explore generative visuals.

He has studied psychology of media and perception as well as computer science at the University of Berne. As a personal web-playground to explore evolving visuals he developed the internationally acclaimed onmodular, a flash modular visual synthesizer, a couple of years ago.

All rights reserved © 2000 - 2016 Favourite Website Awards (FWA) -  Terms & Conditions -  Privacy statement -  Cookie Policy -  Advertise -  About FWA -  Contact