sketching in code
DESCRIPTION
My presentation about Processing and the role it has in the prototyping (and very often development) phase of almost every project I take part in.TRANSCRIPT
Sketching in Code / Processing
Marcin Ignac @ JUG, May 2010, Poznań
How I use Processing to do prototyping in almost every project.
(screenshot from Wiild Life interactive animation http://marcinignac.com/projects/2008/10/12/wiild-life)
Me, 27, programmer, designer, artist
I live and work in Copenhagen, DK
PROCESSINGopen source, cross-platform, multimedia programming language
What is it?
Processing was founded by Ben Fry and Casey Reas in 2001 while both were John Maeda's students at the MIT Media Lab. http://processing.org
Environment
Code editor. Set of basic libraries. Script compiler. Application and applet exporter.
Programming Language
Beginner
Basic scripting. Static images.
Programming Language
Intermediate
Functions. Draw loop is executed every frame. Easy acces to keyboard and mouse for interaction.
Programming Language
Advanced
Modularity. Classes. External libraries.
Programming Language
Expert
Eclipse. Beside better code editor it’s easier to manage your code and writing your own libraries.
Open Source
Community
http://processing.org - forum, exampleshttp://openProcessing.org - gallery of projects with source code
Open Source
Libraries
3rd party libraries can provide us with better video handling, more advanced 3d, procedural geometry or physics.
Cross-platform
Java: Linux, Mac, Mobile, PC
Cross-platform
Android
(Photo by creativeapplications.net)
More: http://android.processing.org/
JavaScript
Cross-platform
All basic Processing functionality was recently ported to Javascript. Audio, video and 3d soon will be also possible with technologies like HTML5 and WebGL.
More: http://processingjs.org/
Example Projects
Why I called it multimedia or interactive media programming language.
‘Art’
After I finished Computer Science at Poznan University of Technology I studied at the Academy of Fine Arts in Poznan where I was exposed to both traditional art...
Media
... and some more contemporary stuff like video and interactive installations.
“That what is the first”
One of my favourite art pieces I made. There is an image of a woman projected on the wall. When visitor comes closer to the picture, the woman becomes younger and younger.
It was was the first time I used Processing (for motion tracking).
Motion Tracking
Recorded image is processed and moving objects are detected to termine their distance to the target.
Context
The art work was exhibited in a abandoned building in the center of Poznan.
My Mother
Video: http://vimeo.com/666152
Copenhagen Institute of Interaction Design
CIID
In 2008 I moved to Denmark to take part in the pilot year of new interaction design course.
Greetings gestures
On of our first projects at CIID completed during Computational Design course. The idea was to record hand movements of people greeting each other. They were comming from different cultures so the gestures varied a lot.
(Photo by just.Luc / Flickr)
Wii Remote
Controlling device for Nintendo Wii was an obvious choice. It has bluetooth connection and motion sensors.
Recording
Darwiin Remote
We used DarwiinRemote to connect to the Wii Remote via Bluetooth and record the data.
Korea
USA
Denmark #1
Denmark #2
Italy
IndiaData
We have collected data for both hands and heads. I decided to use hand data only.Colors: xAcc (red), yAcc (green), zAcc (blue), pitch (yellow), roll (light blue)
Experiments
I started buy just displaying the raw data (previous slide). Next step was to use the time and acceleration values to alternate shape of set of cubes in 3d space.
Demo
I made an interactive application to explore different possibilited and parameters.
Video: http://vimeo.com/1905763
Final posters
Three final designs were made.
Exhibition
All the posters were exhibited at Danish Design School at the end of 2 weeks course.
(Photo by toujjval / Flickr)
VJ-ing
I recorded some of the experiments and used them later at one of my vj shows.
Video: http://vimeo.com/2630365More: http://marcinignac.com/blog/2008/11/03/vj-vorg/
Have Fun
My first Wii Remote test :) “White brick in space”
3D Drawing
At the exhibition I met Flemming Tvede Hansen (Ph.D-Scholar, DKDS) who asked me if it was possible to use Wii to draw in 3d. I said yes. And few days later I had working prototype. We used Wii Remote’s build in IR-Camera and some IR LEDs.
Video: http://vimeo.com/2238077
We proceeded by making interactive app that Flemming used to explore various dynamic shapes. This first version was able to do just flat 2D drawings.
Second version was able to export 3d models. It was still limited to one 2d plane though.
Final version was fully capable of drawing in 3d. It was controlled by both mouse or Wii Remote.
Computational Design
Some of the designs were even printed in 3d.
3D Print
3D Print
External Hardware
Serial Port
Processing can be very easily connected to external hardware. For example throught serial port.
Left Rotate Right Next
Arduino Controller
Arudino board with 3 buttons and light sensor.
Want to know more how to build your own stuff?http://arduino.cc - Arduino home pagehttp://protolab.pbworks.com - Stanford prototyping tutorialshttp://fritzing.org - Circuit design toolhttp://www.partly-cloudy.com/misc/toolkits/listall - list of Arduino alternatives
Demo
I showed game controller made in 30min. Tree buttons control position and rotation of the brick. When you cover the light sensor the current brick is dropped down.
I used modified version of Tetris code from http://leo.lobato.org/processing/tetrisclone/index.html
More about my Arduino projects: http://marcinignac.com/blog/tag/arduino/
External Hardware
Wi-Fi
Another possibility is to use Internet / WiFi connection.
Demo
I used multitouch TouchOSC app to simultaneously control two particle systems. oscP5 library was used to handle communication part in Processing (parsing messages in OSC protocol).
Realtime, everytime.
In september 2009 I joined shiftcontrol studios (http://shiftcontrol.dk/)
Live Visuals
DR P3 Guld’09
Our first project together. Live audio reactive visuals for Mike Sheridan during danish radio music awards show.
More & Video: http://marcinignac.com/projects/2009/01/26/DR-P3-Guld'09
Live Visuals
DR P3 Guld’09
Control App
For the purpose of the show we developed audio reactive app. Generated visuals were then displayed on LED screen on the stage.
Projection Mapping
Projection Mapping
When we project an image on the surface in front of the projector the image looks nice.
More: http://marcinignac.com/blog/2009/12/09/projection-mapping-in-3d/
Projection Mapping
The bigger the projection angle the more image is distored.
Projection Mapping
We can fix that by projecting image from projector point of view. Together with some cleaver masking we can achieve very good results.
Experiments in the studio
Audio reactive bars on the pipes in our studio.
Video: http://vimeo.com/7504037
Experiments in the studio
Sun ‘behind’ the pipes.
Video: http://vimeo.com/7504182
Projection Mapping
Sun’s trick explained. In the places where there are pipes we simply display black color.
Experiments in the studio
Some more advanced masking.
Video: http://vimeo.com/7504276
Experiments in the studio
I use just one projector here.
Video: http://vimeo.com/7630261
Eskulap Club
Poznań 2009
I fall 2009 I was invited to do some interactive installation in Eskulap Club, Poznan. I decided to do something with the ceiling.
Mapping Setup
I designed software that allowed me to map particular sides of the cubes and display animations on them.
3xI
Vivisesja, Poznań 2009
In the final setup I was using one laptop and two projectors. There was also in InfraRed sensor on the floor so whenever somebody was passing by the animation was changing.
More: http://marcinignac.com/projects/2009/11/20/3xI
ProjectedQuads
More & Source Code: http://marcinignac.com/blog/2010/01/31/projectedquads-source-code/
a.k.a. prototyping
Sketching in Code
Sketching on paper, Prototyping interactions, Interactive SketchesReasons to sketch: testing ideas, exploring posibilities, when i start i kind of know what i want to achieve but actual results my vary ;)
Keep everything
Save all ideas / code. You never know when you will need to go back to an older version.
Dynamic Identity
In our latest project we are looking at properties of paper and how this style can be replicated in code.
Paper Folding
Processing
My first experiment was to simulate origami-like paper folding. You can select two triangles and bend virtual paper along the edge between them.
Video: http://vimeo.com/11810679
Mesh Deformation
C++ / Lib Cinder
Second sketch was build for iPad to test multitouch interactions. Using fingers you can squeeze the mesh and deform it.
Video: http://vimeo.com/11899479
Cloth Simulation
Processing / Traer Physics
Latest sketch involved some physics. The two highest points is where the fingers will be. I has to be yet tested on multitouch device.
Video: http://vimeo.com/11911657
Exploring by prototyping.
Understanding by making.
Learning while playing.
Simply start making stuff. Right now! Even if you don’t fully understand what you want to do. Just try it, whatever is in your mind. You can’t fully understand something until it’s visible, tangible so don’t wait. Play with it, learn from it observe, fix it or build it again.
Thank you!
marcinignac.com