Codes of Nature Home

2009 Fall course at MOME

Codes on Two Levels

In this course natural phenomena will be investigated mentally and reproduced visually on the screen of the computer. Let's look at trees: they are characterised by their typical branching structure. Meanwhile all trees are similar, we can identify a poplar or a linden only by looking at the silhouette of the naked branches. Moreover, no two trees are identical.

Can we grasp the typical tree structure? And can we formulate what makes trees different? Can we make our trees exhibit natural behaviour: grow and develop, bend in wind, break in storm? Can we create the illusion of nature by computer programming?

Discovering the structure behind a natural phenomena (or an artistic design) is the first and essential step for realizing it in any medium. If the medium is the computer - as it will be in this workshop - , we have to translate our structural model into a language the computer understands - that is, a programming language. We will be devising algorithms, mentally, and writing those down to generate certain natural-looking phenomena. We will have to deal with coding nature on two levels.

Such an endeavour can easily fit a full semester course. The challenge is even bigger if one is not a weathered programmer and have long forgotten secondary school maths and physics . So in this workshop you will get the flavour of the two-level activities involved in 'reproducing nature' digitally. The starting point and reference through the experimenting will be visual observation. You will make some model of what you (want to) see, make a rough plan how to produce it, and then (re)write some code, which is supposed to do what you had in mind. Computer programming will be your tool, you will be designing by numbers.

Why Processing ?

But you do not know programming, may be you have never written a line of code ... So you will be learning programming parallel to achieving your endeavour of (re)producing natural phenomena.
The processing programming language is ideal for this double goal:
  • the language is designed to make visual sketches: develop and play around with visual designs;
  • processing was made by artists for artists, suited especially for (interactive) visual designs;
  • it is an ideal first language to get hands on;
  • it is free and open-source;
  • platform independent;
  • it has just turned into an alpha-version environment with a wealth of on-line learning materials and an exhibition of examples;
  • it can be used with small robots, visual or audio sensors, ...;

Goals of the course

1. stimulate analytical seeing and thinking, in order to create mental and structural models of natural phenomena
2. develop attitude to create and (re-)use algorithms and generative designs;
3. give insight into pa programming language via processing
4. get a basic skill in using processing, to be able to develop yourself further in the future with this (or other) programming language.
5. have fun, and produce aesthetically appealing (interactive) designs.

As the course basically aims at developing attitudes, ways of looking at and dealing with a problems, the major attainment targets fall under this category. The 'knowledge' and 'skills' gathered in the course are seen as vehicles to develop certain attitudes.

Working methods

During the 5 days, in the morning in the form of interactive lectures basic topics will be explored, together with the necessary physics, maths and relevant programming constructs. In the afternoons students will be expected to do programming on their own, with the constant presence and if needed, support of the lecturer .. and the fellow students.

The working paradigm is novel in the following ways:
  • you will be learning by doing (and making mistakes for sure);
    • your results will be visible literally, and by presenting it to others;
    • re-use of other's code is very much encouraged - but give credit. You can make use of existing code by making MODS in several ways: changing visuals, adjusting the code , extending it with further functions, or getting inspiration and insight by experimenting with parameter values.


    Participants are expected: - to have explorations and some assignments done, to be able to use the language; - to make a single bigger project by Friday. Everybody is expected to have an own portfolio - with exciting sketches to show around and work further on.