Transcript Processing

Processing
Dr Andy Evans
Processing
http://processing.org/
MIT Media Lab
Libraries for visualisation.
Wraps a simple visualisation
scripting language inside java
classes.
Also javascript /Android / iPhone
javascript versions.
Excellent community with a
positive attitude to open sourcing
good code.
Processing Development Environment
Small put perfectly formed IDE.
Saves as Applications, MPEG, SVG and PDFs.
Bundles everything (data, libraries) into jars.
Constructs executables.
Coding
Two important methods:
void setup(){ }
Runs once at start.
void draw(){}
Runs each frame until stopped
(60 frames s-1; but can be changed).
Coding
float x = 0;
float y = 100;
float speed = 1;
void setup() {
size(200,200);
}
// Size has to be first thing in setup
void draw() {
background(255); // Wipe the background white
x = x + speed;
// Change x location
if (x > width) { // Reset if it runs of the screen.
x = 0;
}
fill(0);
// Paint a rectangle
rect(x,y,30,10);
}
Objects
In the PDE you can put code in different tabs. However, you
can also just put multiple classes in one tab.
Processing will wrap them all inside its own class, as ‘inner
classes’.
Java development
Extend the Processing wrapper PApplet.
Add in your Processing code.
If you want it to run as an application, add:
public static void main(String args[]) {
PApplet.main(new String[] {
"--present", "MyProcessingSketch“
});
}
For multiple classes you need to get a reference to the
Papplet class into your class then call, e.g.
papplet.draw();
Eclipse
There is an Eclipse plugin:
http://wiki.processing.org/w/Eclipse_Plug_In
However, you can write just as well without it:
http://processing.org/learning/eclipse/
If you run as an applet in Eclipse and want to run as an
application, go into File -> Properties and delete the Launch
Configuration or use the arrow on the run button to “Run As”.
Processing tips
Processing creates a project ‘sketchbook’ directory called after
the main file for each project. It expects to find all data in a data
directory in here. Libraries should also be in a ‘libraries’
directory, though better to just ‘Add File’ them.
Avoid variable names it might already use, like pixels, x, y, and z.
http://forum.processing.org/topic/reserved-keywords-wiki-page
If you separate classes in to other files, call them, e.g. “Car”
rather than “Car.java” – the latter signals that Processing should
treat it as Java, and you’ll need to import the classes etc.
Other Processing
Libraries for:
XML / GPS interaction / Network communications
Connections with Ruby/Python/Javascript
Video / Sound
Communications with hardware
Webcam and motion recognition
Spinoff projects:
Wiring/ Arduino –
chipboards for
hardware development
Arduino
https://www.arduino.cc/
Analogue pins (read/write levels between 0 and 1024)
Digital pins (read/write high/low)
Two way serial communication.
Arduino
Simple C-based language.
https://www.arduino.cc/en/Reference/HomePage
int inPin = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(inPin));
delay(10);
}
Book
Great book on processing,
but also modelling real
systems more generally, is:
Visualisation inspiration
http://visual.ly/
http://www.visualisingdata.com/
Books:
JFreeChart developer guide.
Processor books (see website)
Visualisation books by Edward Tufte