SCI-ARC MediaSCAPES Technology Seminar, Fall 2007
Professor: George Showman
Datascapes: Locative Media, Software Agency and Coding Interoperability
Syllabus, Fall 2007

Course Overview:
This course teaches technical and critical skills for data manipulation, visualization, and translation. Projects will explore ways of working below, around and between dominant design software typologies, with a focus always on how data are exchanged or transformed.

The technical focus of the class will be on fundamental issues underlying all coding and data-based work, rather than on mastery of any single tool. Taking ‘real-world’ data (particularly demographic, geographic, and audio/film) as an initial input, students will manipulate this data across multiple development tools such as Google Earth, XML, Processing (Java), PHP, VVVV, and Rhinoscript (note: students may introduce additional tools with professor’s approval).

The critical focus will be on articulating a coherent investigation across the range of software, one that explores the formal and political implications of these network technologies. The class will take an aggressive stance towards the notion of “data visualization”, however, seeking not necessarily to clarify or simplify data but instead to simulate or activate scenarios where data may become quasi-autonomous and potentially generative of new relationships.

The class format will be three sets of intensive workshop sessions (see detailed schedule below – some times T.B.D.), with a fourth session including a final review. Each session will introduce concepts and techniques to support students’ semester-long projects. The professor will be available outside class hours on workshop days and will schedule online reviews/feedback during the semester.

Relationship to MediaSCAPES studio:

The course is directly connected to the MediaSCAPES program, so the projects are to a certain degree tailored to accompany the Mediascapes studio. Students who are in that studio will be expected to apply the techniques of this class to their studio work, and should combine the assignments with their studio production where appropriate. The course is also open to general enrollment; in some ways non-Mediascapes students will be more “free” to introduce their own agendas to the projects. It will be incumbent upon these students, however, to craft conceptually interesting investigations of their own, without the additional drive of the Mediascapes studio ‘content’.

Project Overviews:
The class work is comprised of three major projects which loosely define trajectories for students to follow across various software tools. Every project will require further definition by each student, based on the data inputs that he or she brings to it and his or her own particular interests or prior technical skill. For this reason the technologies to be used are all listed below as “default” – students may bring other options to the table. The precise content of the two later projects will almost certainly deviate from what is listed here, based upon technical issues arising from the first project and student interests that may arise during the first half of the semester.
Project 0.1: Geoscribbling
This mini-project will be assigned on Monday and due Tuesday. Students must find a way to map data from some dynamic source, either local or web-based, onto Google Earth or Google Maps (or other world map sites). The focus will be on understanding Google’s KML file format, and on finding a way to make the translation from data source to data visualization.

Default technologies covered:
- Google Earth
- Processing

Project 1: Processing Profiling
The goal of this project is to develop fundamental programming concepts while also moving beyond simple ‘visualization’ of data to more aggressive manipulation and interpretation. Using Processing ( as our primary coding environment, we’ll define data structures and animated objects based on those, then put these objects into play against one another in one of many possible dynamic simulations (e.g. cellular automata, spring-based networks, etc.).

By making a connection between basic ideas of object-oriented programming and the notion of ‘profiles’ –sampled or pixelated versions of real-world identities, we will simulate different kinds of agency and interaction. Can we maintain a rigorous enough connection between the ‘real data’ inputs and the resultant imagery to intuit provocative relationships? Mapping results onto Google Earth will probably remain the best way to connect with ‘reality’ at this stage.

Default technologies covered:
- Google Earth/KML
- Processing

Project 2: Trigger Happiness
The goal of this project will be to reduce the time lag between our inputs and outputs, until we achieve or at least approach “real time”. Continuing to use Processing, but now adding live environments such as VVVV or PD where appropriate (Processing can also work with live data), we will experiment with feedback between two simulation/programming environments. Results may be canned or performed live. Data inputs may be web feeds, sensor inputs, or video or sound feeds/samples, and issues of filtering from these inputs will probably become important.

This project will also require networked communication, which opens the door to drawing data from and posting it to the web. We will look at what it takes to set up our own data servers.

Default technologies introduced:

Project 3: Data-rich environments
The goal of this project will be to create or propose an expression of data that can be ‘inhabited’ – in other words, that establishes a context within which to operate upon, or at least think differently about the data. This could run the gamut, from generating architectural or urbanistic proposals in Rhino, to creating a live, navigable “virtual” space such as Walrus begins to offer, to installing a series of small interfaces/triggers/responses somewhere in the real world.

Execution of the ‘real’ versions of these projects may or may not be possible, depending on student skill and time. Projects that take the form of proposals will need to demonstrate some kind of simulation (for which VVVV, Google Earth, and/or Processing would probably be appropriate) of the environment in question.

Default technologies introduced:
- Rhinoscript
- Scale-based image tiling
- Photosynth (perhaps only as provocation)

Detailed Course schedule:

session 1 9/17/2007
10 am – 1 pm
Introduction: 001101010010111010110101...
Tutorial: Basic KML: Putting things into Google Earth/Maps
Introduce Project 0.1: Geoscribbling

session 2 9/18/2007
10 am – 1 pm Basic coding: I/O, logging events, re-using code
Tutorial: Processing as sandbox
Introduce Project 1: Processing Profiling

desk crit 1 (varies) Required. Either in person or remotely. Scheduling flexible.

session 3 TBD - 10 am – 1 pm More Coding: OOP concepts
Tutorial: Object-oriented coding in Processing

session 4 TBD – 2 pm – 5 pm More Coding: Basic networking, HTTP concepts
Tutorial: send data between two computers, make HTTP requests

desk crit 2 (varies) Required. In person, timing flexible across this weekend.

session 5 TBD – 10 am – 1 pm Review of Project 1
Introduce Project 2: Trigger Happiness

session 6 TBD – 10 am – 1 pm Live Data: web streams, VVVV, etc.
Tutorial: capture data from a live source into a format you define.

session 7 11/10/2007 - 10 am – 1 pm Data Visualization Tools/Environments
Tutorial: Import data into a chosen 3rd party visualization.
Project work: issues of working in real-time

session 8 11/10/2007 – 2 pm – 5 pm Data Visualization concepts (Tufte, etc.)
Tutorial: refine output from chosen visualization tool into a presentation
Project work: more VVVV/Processing work

desk crit 3 (varies) Required. In person, timing flexible across this weekend.

session 9 11/12/2007 – 10 am – 1 pm Review of Project 2
Introduce Project 3: Form inflected by data
Tutorial: Rhinoscript extrapolations

session 10 11/13/2007 – 10 am – 1 pm Formal exploration: Data-driven Rhinoscripting
Task: I/O in rhinoscript, basic form-making

desk crit 4 (varies) Remote, required, scheduling flexible.

session 11 12/15/2007
t.b.confirmed Final Review: Project 3 and Recap of semester’s work

There will be a few brief readings, varying in content from the technical to the theoretical, throughout the semester. Because they will be few, students will be expected to actually read, consider, and discuss them. In addition to assigned readings, there will be a lot of sample code and help files to read.

Learning how to access appropriate sources of technical information will be a key skill for students to hone throughout the semester.

Required Software:
(NOTE: more detailed information may be provided, with sufficient time allocated for students to install, before each session. Students are expected to make every effort to install this software on their computers before it is needed in class!)

Google Earth -- definite

Processing (latest version: 1.25) with additional libraries as needed. -- definite

Komodo... or other code-editing platform (xemacs, etc.). Komodo is good for XML, PHP, python, etc. – to be confirmed

VVVV – to be confirmed

Rhino or any other scriptable 3D environment (e.g. Maya) -- definite