Codes of Nature

2009 Fall course at MOME

Lecturer:   Zsófia Ruttkay, e-mail:

Time:         26-30.10.2009, 9.30-12.50:interactive lectures, 13.40-16: practical lab work

Location:    Room B101

                  Course home:
                  Processing home:


Course book:    Processing: A Programming Handbook for Visual Designers and Artists
                         Casey Reas and Ben Fry (Foreword by John Maeda).
                         Published 24 August 2007, MIT Press. 736 pages. Hardcover.
                         all codes on-line -- educational copy can be ordered from MIT Press

Course sketches (zipped):

Other resources:
The Nature of Code
course by Daniel Shiffman. His book Learning Processing is an excellent step by step introduction for beginners.
Design Programming course by Rob Saunders. A systematic discussion of topics for a semester course, using the same book we use.


Monday   Shapes and color with processing
ME0:  Start processing, and explore all menu items. Make a sketch with a line connecting two opposite cornes of the the canvas, save it, open it, modify it, re-save it under different name, and export to applet. Try out ways to use the on-line reference.
ME1:  Draw 5 vertical lines parallel in the middlepart of the square canvas.
ME2:  Make a sketch which can draw n vertical lines in the middle part of the square canvas.
ME3:  Make a sketch which can draw nxn lines forming small squares in the middle part of the canvas.
ME4:  Experiment with changing color, thickness and/or form of the lines in ME2.
ME5:  Make a design with placing squares and/or other shapes on a grid in a square. Experiment with color, scaled multiple copies at a location, ...

MA0:  Make your own working environment on the local machine. Make a public portfolio to show applets and share codes.
MA1:  Make your own flower(s).
MA2:  Design and sketch a living creature: a bug, a worm ....
Make it put together of components, and think ahead how you will want it later to move.

Tuesday   Self-similar and noisy structures
  • natural versus artificial
  • self-similar structures with recursion
  • tree of Pythagoras and other trees
  • nothing but noise - organic forms with Perlin noise
TE1:  design own self-similar structure(s) using geometric shapes
TE2:  make mods of your own sketches ME2, ME4, ME5 with using randomness and noise
TE2:  make mods of the trees shown: change structure and/or size and/or visual

TA1:  Make variants of some of your flowers with random and/or noise.
TA2:  Make a tree with flowers, or add stems and leaves to your single flower.

Wednesday    Kinematic motion
  • follow the mouse, look at the mouse
  • linear motion: falling rain and walking ladybird
  • motion with changing speed
  • waves and oscillating motion
  • random walks and noisy motions
WE1:  Make a mod of ME2, where a line runs back and forth in the middle of the square. Experiment with timing and fading.
WE2:  Mod of WE1: make the line ease-in and ease-out.
WE1:  Make a pulsing effect by animationg size and/or figure.

WA1:  Design an 'idle' motion for your creature.
WA1:  Design a styled motion for your creature: how does is approach a piece of food? How does it escape?
WA2:  Make your tree move.
WA3:  Make your flower move and/or change: e.g. grow, change color, loose leaves.

Thursday    Forces and physical simulation
  • ball falling - recap of Newton laws of motion
  • ball bouncing
  • shooting particles
  • gliding - Life Line by Tomek Ducki revisited
  • springing
  • elastic and soft creatures
  • social forces - flocking
HE1: Make mods for the bouncing balls or fireworks
HE2: Experiment with the soda constructor

HA1:  Make your bug fly, jump and fall, worm scrawl ....
HA2:  Simulate multiple bugs moving around independently, or according to some relational rule
HA3:  Make your plant react to forces like wind: bending, loosing petals, ...
HA4:  Extend your creature to have an elastic body.

Friday     Further topics and wrapup
  • interaction by sound and vision
  • 3D
  • electronics
  • review of sketches
  • assesment of the course