iTunes Visualization – A project by instructor Scott Murray.
Back by popular demand, Gray Area Foundation for the Arts introduces our fourth Creative Coding workshop.
Creative Coding: An Introduction to Processing is an introductory-level workshop that explores the creative potential behind Processing, a free and revolutionary programming environment that enables users to create interactive, dynamic, computer-based tools, projects, and art. Over four evenings, participants will explore creative programming in a project-based, collaborative learning environment. Instructor Scott Murray will cover Processing-specific syntax, as well general programming concepts. Creative Coding is intended for absolute beginners. No prior programming experience is necessary, although students with prior programming experience are still welcome to attend.
“Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.” — processing.org
Classes will be held from 6PM – 9PM: Tuesday — August 3rd Thursday — August 5th Tuesday — August 10th Thursday — August 12th
Curriculum:
- Syntax
- Shapes
- Color
- Motion
- User input
- Variables
- Operators
- Logic & loops
- Random elements
- Images
- Video
- Type
Other topics will also be explored, according to students’ interests.
REGISTRATION IS CLOSED: PLEASE SIGN UP FOR THE AUGUST WEEKEND INTENSIVE:
Registered students are expected to arrive on time, with Processing installed on a laptop computer. Processing is compatible with Windows, Linux, and Mac OS X machines. Classes are $240 for non-members, and $220 for members.
Interactive designer and technologist Golan Levin announces his series of free code and tools created in openFrameworks and Processing, for unwarping the panoramic videos produced by the popular Sony Bloggie solid-state camera.
The inexpensive Bloggie ($160-190), in many ways similar to the Flip, is a perfectly decent little pocket camera with one exceptionally notable feature: it allows for the creation of 360-degree panoramic digital video, at relatively high resolution, at a consumer price-point. Here’s an example:
Obviously, this “donut vision” (annular) video needs to be transformed into something more useful, such as a long panoramic strip — a process variously called unwarping, dewarping, inverse warping, remapping, reprojection, rectilinearization, or simply distortion correction. Although Sony released unwarping software for Microsoft Windows, they — inexplicably — didn’t release Bloggie unwarping software for Mac OSX. Well, that’s problematic. Perhaps because panoramic imaging is considered a “niche” market, commercial tools for panoramic unwarping can be quite pricey. And although Christophe Maillot has lately released ThreeSixZero, a free OSX tool for viewing Bloggie panoramas, his project is not open-source and doesn’t export converted panoramic video! That’s the motivation for the releases presented here. Fortunately, the mathematics for polar-to-cartesian geometry conversion are relatively straightforward. Behold, a 360-degree panoramic video, remapped to a rectilinear perspective with our BloggieUnwarper software:
Projects and Source Code
Below are links to BloggieUnwarper, my open-source code projects for unwarping the panoramic videos produced by the Sony Bloggie. These projects are created in openFrameworks (a C++ library for creative coding) and Processing (a Java-based programming environment for people who want to create images, animations, and interactions). Both OpenFrameworks and Processing are free, open-source, cross-platform toolkits, optimized for visual computing, which take most of the headache out of creating graphically-oriented software. Both programming environments work across multiple operating systems (Mac, Windows, and Linux), and multiple compilers (e.g., openFrameworks compiles in XCode, Visual Studio, Code::Blocks, and more). If you’re interested in interactive art or computational design, these environments are a great way to start making projects fast.
Here’s a screenshot of the openFrameworks BloggieUnwarper software, showing the original (annular) video at upper left; the reprojected panoramic strip at the bottom; and (in the upper right) a view of the panorama from within a texture-mapped 3D cylinder:
Complete source code can be found here:
* BloggieStillUnwarp.zip (for Processing; 1.3Mb download) — This is a single-page Processing sketch which performs inverse warping on a single panoramic still image stored in the sketch’s data folder. The program supports both nearest-neighbor and bicubic interpolation, and can save out the unwarped panorama to disk. To get started, download the Processing environment here; unzip this project into your “Sketchbook” folder (in “Documents”); open the sketch in the Processing development environment, and press play.
* BloggieVideoUnwarp.zip (for Processing; 20.2Mb download) – This is a single-page Processing sketch which unwarps a Quicktime video stored in the sketch’s data folder, and exports an unwarped version of the video — either as a new Quicktime movie, or as a folder full of still images. Parameters for the unwarping (such as the optic center) are loaded from a settings file. The audio from the original file is (regrettably) not maintained; see my notes below about audio. (Please note that the bulk of this download is a 20Mb demonstration video.)
* BloggieUnwarpOF.zip (for OSX & openFrameworks, 52.7Mb download) — This is a complete openFrameworks project for viewing, projecting, dewarping, and exporting panoramic videos shot with a catadioptric reflector like the Sony Bloggie’s. This project is built for Mac OSX 10.6.3, using XCode, and openFrameworks v.0.061, which is available here; be sure to download the FAT version. The project makes use of the ofxOpenCv and ofxXmlSettings addons which are included in the download. To avoid compilation errors, install the project at the same hierarchical directory level as the various “example” apps which come with the FAT download. There is some additional information about getting OF set up on Snow Leopard here. This project is available two ways:
o as a project on Github or
o download BloggieUnwarp for OSX here (52.7MB) as a zip file.
Now giving up your weeknights can’t stop you from delving into the world of visual tech delights! Gray Area Foundation for the Arts is now offering a weekend intensive of the popular Creative Coding workshop.
8/21 & 8/22 classes are postponed to: Saturday — October 16th Sunday — October 17th
Creative Coding: An Introduction to Processing is an introductory-level workshop that explores the creative potential behind Processing, a free and revolutionary programming environment that enables users to create interactive, dynamic, computer-based tools, projects, and art. Over one weekend, participants will explore creative programming in a project-based, collaborative learning environment. They will cover Processing-specific syntax, as well general programming concepts. Creative Coding is intended for absolute beginners. No prior programming experience is necessary, although students with prior programming experience are still welcome to attend.
Processing is a programming language and environment built for the media arts and design communities. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook. It is used by students, artists, designers, architects, and researchers for learning, prototyping, and production. More information on Processing can be found at www.processing.org
Lab: Each meeting will consist of a lecture and lab, with an emphasis on hands on programming
Lesson 1: Introduction
-The Processing Environment
-Drawing to the Screen
-Variables
-Arithmetic
-Conditional Statements
Lesson 2: Interactivity I
-Mouse and Keyboard Input
-Control Blocks (for, while, etc.)
-Arrays
Lesson 3: Interactivity II
-Event-driven Programs
-Image Processing (Accessing the Pixel Buffer)
-Arrays and Objects
Lesson 4: Advanced Topics
-Objects
-Text
-Sound
-Loading Files
-Timers
-Libraries
IOGraph is a little software application that turns the continuous tracking of computer mouse movements into a modern art.
The basic concept is that people just “run” the application in the background, and then accomplish their usual activities at the computer. After a long day of hard work, a beautiful image is then created by cumulating all mouse movements and representing them as continuous paths. For people who work in a single application for a considerably long time, IOGraph could even provide potentially interesting usability data when overlayed on a screenshot of the actual window configuration.
Former Gray Area resident, Ryan Alexander, began creating Mycelium, a simulation of fungal hyphae growth using images as food with Processing. The project originally started in 2005 while he was working at Logan in Venice, California.
Hyphae grow into the lighter areas of the image while avoiding their own trails. Branching and growth speed are also functions of the available food (brightness) in the image. Type can be added by splitting the trails up into phrase-sized chunks of different colors. Each color is then stroked with text in Adobe Illustrator.
Color Mapper – A project by Instructor Scott Murray.
Back by popular demand, Gray Area Foundation for the Arts introduces our third Creative Coding workshop, scheduled as part of Gray Area’s educational programming for February 2010.
Creative Coding: An Introduction to Processing is an introductory-level, project-based workshop that explores the creative potential behind Processing, a free and revolutionary programming environment that enables users to create interactive, dynamic, computer-based tools, projects, and art. Over four evenings, participants will explore creative programming in a project-based, collaborative learning environment. Instructor Scott Murray will cover Processing-specific syntax, as well general programming concepts. Creative Coding is intended for absolute beginners. No prior programming experience is necessary, although students with prior programming experience are still welcome to attend.
“Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.” — processing.org
Classes will be held from 6PM – 9PM: Tuesday — February 23rd Thursday — February 25th Tuesday — March 2nd Thursday — March 4th
Curriculum:
- Syntax
- Shapes
- Color
- Motion
- User input
- Variables
- Operators
- Logic & loops
- Random elements
- Images
- Video
- Type
- Functions
- Objects
Other topics will also be explored, according to students’ interests.
Registered students are expected to arrive on time, with Processing installed on a laptop computer. Processing is compatible with Windows, Linux, and Mac OS X machines. Arrangements can be made for students unable to supply their own computer by contacting ss@gaffta.org. Classes are $240 for non-members, and $220 for members.
This workshop has officially sold out! Please email: Education@gaffta.org for the waitlist
Image: “Drawing Tool” by Gabriel Dunne (custom software)
Workshop: Creative Coding (with Processing) Instructor: Gabriel Dunne Email: gdunne@gaffta.org Schedule: Saturday Nov 21, and Sunday Nov 22. 1pm to 6pm
Syllabus
Overview (2-Day Intensive)
Introduction to the concepts of creating visual work with your own custom software. Coding concepts and skills will be taught through the hands-on creation of projects and will set a foundation for future creative programming endeavors in other languages and methods.
Code will be written with Processing (http://processing.org). Processing is a free and open-source platform created to teach fundamentals of computer programming within a creative context and to serve as a software sketchbook. It is used by students, artists, designers, architects, and researchers for learning, prototyping, and production. Attendees are not required to have any prior programming knowledge, but it is welcomed.
Schedule
DAY 1
Hello
Overview of Software and Art
Gray Area artist presentations
Project: Form, Repetition, Texture
Pixels
Form
Shape
Loops
Logic Structures
Project: Drawing
Color
Text
Functions
Input
Interaction
Project: Motion and Time
Function parameters
Translation, Rotation
Matrixes
3D
Time
Sequence
DAY 2
Presentation, discussion of works.
Project: Character & Behavior
Objects
Constructors
Multiple Objects
Inheritance
Arrays
Project: Media, Manipulation, Libraries
External code
External Media
Video
Image
Sound
Data Files
Project: Exploration
Wrap up: Class work showing
You will need your own laptop running Windows, Linux, or OS X. If you do not have a laptop, please get in touch when registering.
Registration is now closed. Please check back for future workshop announcements!
Created by Casey Reas and Ben Fry, Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is an alternative to proprietary software tools in the same domain.
I first discovered Processing in 2003 at ITP while exploring different options for creating a set of tutorials about generative algorithms. We quickly realized that Processing could transform our approach to teaching programming and have adopted it as the language learned by all incoming students. I’m thrilled to have this chance to talk to Casey and Ben a little about the origins of Processing, their philosophy, work, and plans for the future. – Daniel Shiffman
How did you each discover computation? What was the first program you wrote and in what language?
Casey Reas: I was very lucky that my dad brought an Apple II into the house in the 1980s. These early home computers encouraged programming and there were books on programming in Basic written for kids. I don’t remember if I started with Basic or Logo, but I learned a little with both. I hit a wall and I wasn’t motivated to learn more. (I love playing video games on the computer more than writing my own small programs.) I was introduced to Lingo when I was in college, but I only wrote simple scripts for moving back and forth in the timeline and turning on and off sprites. When I shifted from working in print to the Web in 1995, I fell in love with the potential for making and writing software. I engaged fully with C in 1998 when I took classes at NYU extension, something clicked, and I started to really learn for the first time. I quickly moved on to C++, then later to Java and Perl at MIT.
Ben Fry: I started with an Apple II+ and an IBM PC that my Dad brought home from the university, though I can’t remember which was first. I learned BASIC on each, and that evolved into other machines (a whole string of Macs starting with the original 128K version) and languages (Pascal, C, C++, PostScript, Perl, Java…) The first program of consequence was a stock market game (ah, the embarrassment) that I sold for $250 when I was in seventh grade.
Tell us a little bit about the origins of Processing. Where and when did you have your first conversation about creating it?
CR: It was sometime in June 2001, as I was finishing up at MIT. We made of list of the basic specs for the environment and drawing functions. It was one 8 ½ x 11 inch typed page. By the fall, Ben had something working and the first workshop took place Japan in August, 2001.
BF: Yeah, revisions 0003 and 0005 were used for a workshop at Musashinio Art University (MUSABI). I spent the first part of the week teaching Design By Numbers and then some of the students tried “Proce55ing”.
When looking at other programming environments geared towards visuals (Design by Numbers, Logo, etc.) what kinds of things did you want to emulate and what did you want to do differently?
CR: For us, the big idea of Processing is the tight integration of a programming environment, a programming language, a community-minded and open-source mentality, and a focus on learning — created by artists and designers, for their own community. The focus is on writing software within the context of the visual arts. Many other programming environments embodied some of these aspects, but not all.
John Maeda’s Design By Numbers is the direct parent of Processing. Our goal was to emulate its simplicity and focus on making images, animation, and interaction. But, we wanted to exceed the limits of DBN: 100 x 100 pixels, grayscale, and integer math. John wrote his account of the origin for Technology Review.
Processing has clearly been influenced heavily by PostScript and Java. We feel our ideas are not inherently tied to Java, but the current versions of Processing are reliant on it.
BF: Right, we wanted to connect the simplicity and immediacy of BASIC or Logo or a scripting language with a more sophisticated language like Java. And we wanted to make the syntax and API very simple and terse so that common-use operations had straightforward naming.
The first in a series of workshops on digital art-making, Presented by the Gray Area Artist Residency Program. This 2-day workshop will introduce you to the world of creative coding with Processing, a free programming environment that enables you to create interactive, dynamic, computer-based tools, projects, and art.
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.
Curriculum
What is Processing, and what can you do with it?
Creativity and Programming
Input, Output
Visuals
Animation, movement
Logic
Using data
Using Processing libraries
Programming Structures
Exporting, packaging and publishing Processing sketches.
How to teach yourself more
More Information
The workshops will be led by GAFFTA residents Gabriel Dunne, Ryan Alexander, Daniel Massey, and local artist and designer Scott Murray. with special guest and co-creator of processing Casey Reas in attendance to offer insights on his works on display in GAFFTA’s inaugural exhibition, OPEN.
Workshop Materials
Laptop computer with Windows, Linux, or OS X. You may download Processing from processing.org.
Registration is limited to 25 students, and we have sold out! Stay tuned… more workshop announcements coming soon!
For more information, contact workshops at gaffta dot org