Processing
Processing est un environnement de développement d'animation en Java simple à mettre en oeuvre. Processing est très populaire en Art génératif et interactif ou pour de la visualisation interactive de données.
La version 2.0 produit
- des applications standalones (incluant des screensavers),
- des apps Android (requiert le SDK Android)
- et des applications Web en JavaScript (requiert WebGL).
Processing.JS est l'adaptation en Javascript de Processing.
PyProcessing est un portage de l'API Processing pour Python.
API
De nombreuses bibliotheques ont été adaptés pour Processing : OpenCV, OpenNI, ...
Serial
La communication entre un programme Processing et une carte Arduino s'effectue par l'intermédiaire la liaison série au-dessus de l'USB et s'effectue simplement au travers de l'utilisation de function série (voir les programmes Processing dans File/Examples/Libraries/Serial).
Ci-dessous le programme SerialDuplex qui permet de tester l'envoi et la reception simple de caractère. A complete par un programme correspondant sur l'Arduino
// Programme SerialDuplex import processing.serial.*; Serial myPort; // The serial port int whichKey = -1; // Variable to hold keystoke values int inByte = -1; // Incoming serial data void setup() { size(400, 300); // create a font with the third font available to the system: PFont myFont = createFont(PFont.list()[2], 14); textFont(myFont); // List all the available serial ports: println(Serial.list()); // I know that the first port in the serial list on my mac // is always my FTDI adaptor, so I open Serial.list()[0]. // In Windows, this usually opens COM1. // Open whatever port is the one you're using. String portName = Serial.list()[0]; myPort = new Serial(this, portName, 9600); } void draw() { background(0); text("Last Received: " + inByte, 10, 130); text("Last Sent: " + whichKey, 10, 100); } void serialEvent(Serial myPort) { inByte = myPort.read(); } void keyPressed() { // Send the keystroke out: myPort.write(key); whichKey = key; }
Face tracking
voir Face Tracking with a Pan/Tilt Servo Bracket
avec une webcam, OpenCV et Arduino
Liens
- OpenProcessing: site communautaire de scketches Processing http://www.openprocessing.org
- Plugin Eclipse ProClipsing http://code.google.com/p/proclipsing/
Quelques démonstrations sympas
- Fireworks http://www.openprocessing.org/visuals/?visualID=10201
- 3D anaglyph shapes http://www.openprocessing.org/visuals/?visualID=10227
- Processing.js avec CoffeeScript : http://dry.ly/2011/02/21/coffeescript--processingjs--crazy-delicious/ . Note pour le debug: sous Google-Chrome utiliser Tools/Developper Tools, sous FireFox utiliser l'extension Firebug.
Livres
- Casey Reas, Ben Fry, Getting Started with Processing A Quick, Hands-on Introduction, O'Reilly Media / Make, June 2010
- Casey Reas and Ben Fry, Processing: A Programming Handbook for Visual Designers and Artists, August 2007, MIT Press. 736 pages.
- Ben Fry, Visualizing Data : Exploring and Explaining Data with the Processing Environment, O'Reilly Media, December 2007, Print ISBN: 978-0-596-51455-6
- Matt Pearson, Generative Art: a practical guide using Processing, Manning 2011. (source code et exemples en ligne)
- Daniel Shiffman, The Nature of Code, eBook http://natureofcode.com : How can we capture the unpredictable evolutionary and emergent properties of nature in software? ...