Olhares de Processing: Porto workshop

Before it gets too quiet here (sorry about that recent work & travel-induced hiatus, there’re loads of updates coming), I’m super happy to announce details of the next workshop related to this project, incl. a preliminary outline/focus topics for us to get our teeth into. This upcoming workshop is entitled Olhares de Processing (Glimpses of Processing) and will take place at the School of Arts @ Universidade Católica Portuguesa Porto in conjunction with the Festival de Artes Digitais Olhares de Outono.

Mark these dates in your calendar: July 12-18th 2010 – It’s going to be a whole 7 long days of code crafting in the north of Portugal and I’m looking very forward to it! The workshop is limited to 14 participants. Bookings are handled by the University and should be done via their special website. Thank you dearly!

The planned outline is below the poster I made for this unique occasion, so please do read on:

Workshop poster

The general idea is to split our time into 4 days of intense tutorials and hands-on examination of core principles & techniques of the computational design approach in the context of creating “generative identities”, without prescribing too much what shape & form these should take. Part of our workshop’s remit is also to enquire the current possibilities. The final 3 days will then be used to build your own project(s) to be use for the Olhares de Outono festival later in November.

The topics listed below are not set in stone and we’ll decide as group on what to focus (much depends on the skills & interests of the participants). Similarly, if you’d like to experiment/include external devices into your project (Wiimote, Arduino), please bring them along. The workshop space is equipped with iMacs, but there’re also a couple of spaces to use your own machine as well… At the end of the workshop, we all should have at least one completed (if not polished) project for the festival, and should strive to document it (the project) too.

Day 1: Getting ready


  • recap of basics
    • types
    • structures
    • working with libraries
    • exporting
  • scope
    • learning curve
    • use as environment (PDE)
    • use online vs. offline
    • use as library in larger frameworks
    • P5 within the bigger picture
      • JavaScript
      • Java (Android)
      • OpenFrameworks
      • Cinder


  • Overview
  • Recent updates
  • Philosophy
  • Resources
  • Use cases
  • Exercises
    • Key techniques/classes
    • Layering processes/Combining modules
    • Easier handling in Processing


  • Concepts
    • Interfaces
    • Inheritance
    • Polymorphism
    • Encapsulation
  • Best practices
    • Events
    • Architecture
    • Design patterns
    • Anti patterns
    • Reusability
    • Open source


  • overview
  • project setup
  • using Processing as lib only
  • editor features
    • code completion
    • navigation
    • refactoring

Day 2: Working with data

Data modelling/processing

  • Collections
    • Hashmaps
      • Histograms:
        • Images, FFT
        • Tag clouds
    • Lists
      • Iterators
    • Queues
      • Priority based processing
      • Pipes
      • Stacks
    • Trees
      • recursion
      • sorted sets using comparators
        • sort by custom criteria
        • spatial subdivision (quadtree, octree etc.)
  • XML
    • standard formats
      • Atom
      • RSS
    • code generation from data model
      • XML Schema
      • JAXB
    • Defining your own formats
      • Loading/saving app state
      • Presets
      • Configuration
    • Aggregation
      • merging of sources and/or time samples
      • set theory
        • union
        • intersection
        • difference
        • relationships (1:1, 1:N, N:M)


  • basic graph theory
  • finding & creating metaphors
  • techniques
    • geometry basics
    • coordinate systems
      • spherical (Geomapping example)
      • polar (color transforms)
      • cartesian
    • vector maths
    • mapping/geometric transformations
      • M->N dimensions
      • time -> space
    • mesh generation
  • animation
    • interpolation curves
    • state transitions
    • viewport changes
      • transformation matrix
      • camera control (e.g. 3rd person camera)
  • exporting data
    • high res bitmap
    • PDF
    • image sequence + automatic FFMPEG assembly
    • 3D data for digital fabrication

Day 3: Interactions

Building on previous day exercises


  • Wiimote
  • Mobile
  • Computer vision
  • TUIO / OSC
      • multitouch
      • reacTIVision
      • external devices
  • QRCodes
  • Location triggers
    • GPS/compass based AR
  • Serial input
    • Firmata

Machine-machine interactions

  • asynchronous event handling
    • twitter updates
    • reacting to Pachube sensor data
  • multi-threading
  • network communications/protocols
    • UDP
    • OSC

Day 4: Generative techniques

Building on previous day exercises

Processes as design tools

  • inputs
    • observation
    • abstraction
    • mental model building
  • behaviour
    • parametrization
    • rules
    • feedback
  • simulation
    • agents
    • automata
    • erosion
    • fluids
    • particles
    • physics
  • randomness
    • balance of control
    • bias
    • chaos vs. determinism
    • role of authorship?
    • techniques & differences

Day 5-7: Work on own projects


  • If possible form pairs/groups
  • 2 reviews/status reports/discussion per day with all
  • Karsten giving help & support to all groups
  • Final review and presentation on Sunday PM
  • Project documentations

And once again, please head over to this site for further organisational things & the signup form…

Comments are closed.