Generative Systems in Information Visualization

Generative Systems in Information Visualization

Ilona Nowosad
DOI: 10.4018/978-1-5225-4990-1.ch014
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

The author presents various approaches particularly in the field of visual arts and sound visualization based on hi-tech artificial agents and audiovisual systems. The number of digital artists and designers who tend to computational creativity has rapidly grown in recent years and their artworks and generative visuals that manifest the new cultural paradigm “Form Follows Data” meet with a wide interest. The author describes and presents a collection of tools and programming environments used for creating visual representations of sound as well as live coding visualizations which fall under so called generative art movement. Concepts of interactive audiovisual systems, sound-reactive programming software, and immersive environments refer to synergy of sound, visuals, and gestures. Another purpose is to point to applications of generative systems and agent-based frameworks in social and cognitive sciences to study environmental and social systems and their interactions.
Chapter Preview

Things which are made, such as houses, furniture, and machines, are an assemblage of parts put together, or shaped, like sculpture, from the outside inwards.But things which grow shape themselves from within outwards—they are not assemblages of originally distinct parts; they partition themselves, elaborating their own structure from the whole to the parts, from the simple to the complex. (Watts, 1958)

Top

Generative System

To start off the story about generative systems in information visualization the author defines and familiarizes a notion of generative systems as systems which consist of a pre-determined set of rules that give rise to a range of unpredictable results. By this definition, it is obvious that for each generative system it is necessary to determine the set of rules and the rules determine the results.

When one prepares a series of written instructions, which describe several emotional states with corresponding exact manners of facial expression to be performed, then each person’s interpretation of the instructions will certainly be different, but all of them shall be remarkably similar. This simple example shows the concept of a generative system, because it uses a couple of basic rules to yield patterns which can be unpredictable and extremely varied. Obviously, one can classify it as a generative system.

To better understand a notion of a generative system one can also consider a dice having its squares colored in six different colors. A simple rule is to roll the dice six times and emerging property is determined by a sequence of six horizontal colored squares as a result. Following this concept 8vo - the design group of typographic designers with experience in visual identity and brand communications - developed such a system in which pre-designed typographic rules could determine the final outcome. The objective of the system was to bring a freedom from the tyranny of aesthetics (8vo, 2005). The system was used for generating a series of posters for the Flux Festival.

The above examples show the set of rules can be described in an everyday language. In fact, sets of rules and instructions can be written in every language, like everyday language. The explicitness and straightforwardness are strongly required properties of the pre-defined instructions and rules. For this reason, programming languages are the most useful and frequently used, as they best satisfy the mentioned properties. Programming codes are the most precise way of determining a set of instructions, particularly when these instructions are to be executed by computerized machines.

More often than not, programming codes of generative systems appear quite complex, however, a simple generative system can be described in a couple of code lines, as Listing 1 below shows:

void setup(){
size(800,600);
}
void draw(){
if (mousePressed){
fill(250,115,180);
} else {
fill(90, 230, 245);
}
ellipse(mouseX, mouseY, 50, 50);
}

Complete Chapter List

Search this Book:
Reset