Lecturer: Tobias Zimmer
Credits: 6 ECTS, 4 SWS
Date: Friday, 13:30 – 16:45
Venue: Marienstraße 7b, Raum 102



Description

Waiting at traffic lights, shopping online, finding a new partner, baking a cake - noticed or unnoticed, everyone is in contact with algorithms each day.

In the class Algorithmic Art we will focus on graphical algorithms and generative art, to learn how to think like a machine. The programming language Processing offers artists and designers the chance to go beyond predefined and often limiting software and allows them to create their very own tools for 2D or 3D graphics production, interactive installations, data manipulation and more. With a simplified syntax, Processing takes down high entry barriers that are usually associated with programming languages. Simple visual results are possible with just a few lines of code, with an open end to more complex output and rule systems.

We will orient ourselves to the pioneering work of early computer artists (”Algorists”) like Vera Molnar, Manfred Mohr or Frieder Nake and use a pen-plotter (self built in class or a ready-made one) to materialize the algorithms we develop in homeworks or in class. Treated topics and programming basics include: 2D shapes and geometry, variables, arrays, loops, randomness, noise, interaction, animation, functions, object orientation, working with data (image, sound, text),...

Further topics depending on interest:webcam interaction, openCV, working with libraries and API[[wikipedia:Application Programming Interface]]’s, 3D graphics, communication (OSC[[OSC|Open Sound Control]]), projection mapping,…



Introductory Algorithm

Introductory Algorithm



Working with the Plotter



Student Works


Resources

Processing


Relevant Texts


Early Computer Artists


Other artists working with code


Inspirations



Treated Topics

12.10.18


19.10.18


26.10.18

  • Variables
  • Iteration / Animation
  • For Loops
  • Nested For Loops


02.11.18
Art without author!? / Artists working with randomness



  • translate()
  • scale()
  • rotate()
  • random()
  • Arrays


09.11.18


  • noise() – 1D, 2D
  • sin(), cos() – adressing points in a circular coordinate system
  • map()


16.11.18
Drawing Machines by...


  • Getting started with the Plotter (HP7475A)
  • HPGL library


23.11.18

  • Classes (balloons and particles reacting to two dimensional noise)
  • ArrayList


30.11.18

  • Working with images
  • PImage
  • get(x,y), get(x,y,w,h), brightness(), saturation(), red(), green(), blue()


07.12.18


14.12.18


21.12.18


11.01.18


18.01.18


25.01.18


01.02.18



Future Topics

  • PVector
  • Export svg files
  • noise() – 3D
  • Working with images
  • Working with sound
  • Working with text
  • Working with the webcam
  • 3D
  • OSC[[OSC|Open Sound Control]]
  • Recursion
  • L-Systems