Processing Workshop: an introduction to programming
decentralized, self-organizing systems.


Lectures given by: Francis A. Bitonti
e. FA@FADarch.com

for the New York City College of Technology department of Architectural Technology

Description:
This three session workshop for the New York City College of Technology
designed to introduce students to the basics of programming with the processing PDE.


_Session 1: Introduction to Processing

    1. Introduction to computer programming:
      1. Variables types and data manipulation
        1. Primitive data types.
        2. Composite data types.
        3. Vector manipulation and basic mathematics.

          Abridged table: for compete reference of data types please see...
          http://processing.org/reference/index_ext.html

          float floating-point number or (a number with a decimal point)
          int number without a decimal point
          double same as float, however, can it is a 64-bit number and can hold a longer value.
          char typographic objects such as A, C or %
          string stores a sequence of characters "NAME"
             
          Array int[] value = new int[3];
          value[0] = 10;
          value[1] = 200;
          value[2] = 40;

          An array is a list of data and can store multiple values. Lists can be multi-dimensional.
          PVector

          This data type can store up to three values. We will discuss this data type in great detail in the following lesions, however, for more information please see the following link.

          reference/PVectorl



      2. Conditionals and Iteration

        Abridged table: for compete reference of data types please see...
        http://processing.org/reference/index_ext.html

        for for( int i = 0; i<10; i++){
        println(i);
        }

        A "for" loop will perform a sequence of operations. In the above example we count from 0 to 10.

        while

        int i = 0;

        while(i<100){
        println(i);
        }

        "While" performs a sequence of operations while a statement is true.

        if if(i<100){
        println(true);
        }

        "If" will perform an operation in a statement is true.
        break "Break" ends the execution of a statement such as for and while and moves to the next statement in the script.

      3. Introduction to Object Oriented Programming
        1. Classes, Methods and Functions.
    2. Processing Libraries
      1. Using and installing libraries.
      2. Libraries for physics and AI simulations.
    3. Basic Drawing Techniques
      1. Points lines and Primitive Geometry.
    4. Algorithmic Drawing
      1. Closing statements and sample application.

ASSIGNMENT:  Modify example from class and post on blog.

Links::
http://processing.org/

Libraries and Language Reference:
http://processing.org/reference/libraries/index.html
http://processing.org/reference/index_ext.html

Download Source Code from Lecture:
intro_01
class

This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.


_Session 2: Introduction to programming decentralized, self-organizing systems

    1. What is self-Organization?
      1. Overview of discrete decentralized systems.
        (Cellular Automata, BOIDS, Genetic Algorithms,  and Neural Networks)
    2. Produce a population of agents using classes
      1. Constructing an agent class.
    3. Neighborhood construction
      1. Techniques for detecting agent adjacencies.
    4. Programming behaviors
      1. Using functions and vectors to program behaviors.

ASSIGNMENT:  Modify a rule based example from class or example taken from an internet resource. 
Change the discrete rules of the system so that the collective behavior of the system changes.

Links:

http://www.ted.com/index.php/talks/steven_strogatz.html
http://www.wolframscience.com/nksonline/toc.html
http://www.shiffman.net/teaching/nature/
http://en.wikipedia.org/wiki/Swarm_Intelligence
http://farfromequilibrium.blogspot.com/
http://www.red3d.com/cwr/boids/

source code from class (.zip)



Download Source Code from Lecture:





_Session 3: Exporting data and Introduction to 3D

    1. Techniques for exporting data
      1. JPG,DXF,CSV file formats will be discussed.
    2. Basic 3D geometry with Processing PDE
      1. 3D Vectors and 3D Primitives
    3. Work with students on an individual basis to discuss techniques for
      adapting workshop materials to there current studio projects.

ASSIGNMENT:  Students construct their own processing scripts and post the results on the workshop blog.


Download Source Code from Lecture:

Currently No links for Session 3:


This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.


Hemostats
By Francis A. Bitonti and Brian Osborn

Download Source Code:
http://farfromequilibrium.blogspot.com