Coffee cherries (where coffee beans come from) enter in the top and the fruit is stripped off, leaving two seeds (coffee beans). These are then transported via water channels to a tank to soak.
Cast: Intelligentsia Coffee
Coffee cherries (where coffee beans come from) enter in the top and the fruit is stripped off, leaving two seeds (coffee beans). These are then transported via water channels to a tank to soak.
Cast: Intelligentsia Coffee
Built with Processing
applet & source code here:
http://www.openprocessing.org/visuals/?visualID=274
Cast: albagcorral
Made with Ableton Live and Processing.
Cast: MOVOPE PROD.
Installation at CasinoIT.
By Moritz von Pein.
Cast: MOVOPE PROD.
Installation at CasinoIT Stuttgart.
Cast: MOVOPE PROD.
Made with Processing and Ableton Live.
In the demo I only change the sound and the beat in Ableton. The figure reacts automaticly.
Cast: MOVOPE PROD.
Over the past few months I’ve been working on and off on a generator for creating arbitrary complex fiducial markers for use in reacTIVision[1] projects. Having been under extreme time pressure for our Lexus installation[2] at Detroit Autoshow I initially designed a system based on a shape vocabulary. This was a promising start but had some shortcomings since about 10-20% of the markers were not recognized if they’re part of a bigger set (though all unique)…
The new generator is creating markers much closer to the original set published by the reacTIVision developers. However you can set various parameters to control the overall complexity and size of the markers generated and so optimize the design for different usage scenarios. In the above example, I allow markers to become quite large and all trees are made of 30 nodes. The layout is physics based using the same Verlet physics engine as in this softbody demo[3]. Btw. This Verlet engine will be part of the next release of toxiclibs and is already available via SVN[4].
The generator itself will be released under GPL in the next couple of weeks.
[1] http://reactable.iua.upf.edu/?software
[2] http://www.youtube.com/watch?v=WEU6_O2jE10
[3] http://vimeo.com/702576
[4] http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src/toxi/physics
Cast: postspectacular
horizontality , multiplication and experimental ethnography
between hong kong and zhongdhian
Cast: Joao Paiva
simple particle system with processing ,audio from msp
Cast: Joao Paiva
Built With Processing
a trial on camera movements in 3d space
will be used in my friend’s wedding
more forms and graphics will be added
Cast: mb09
MeshLibDemo.pde – Demo of Lee Byron’s Mesh library
Lee Byron has written a neat little Processing library called Mesh which allows for easy calculation and display of Voronoi, Delaunay and Convex Hull diagrams.
Given a set of points, these diagrams calculate the minimal regions around the points (Voronoi), an optimal triangulation of the points (Delaunay) or the polygon shape that contains all the points (Convex Hull). So far the library only supports the 2D versions of the diagrams, but it is in part based on the QuickHull3D java library which also handles 3D hulls.
Byron didn’t include any code examples in the current release, so I hacked up a quick demo.
To run this example, download MeshLibDemo.zip and unzip it inside your Processing sketches folder. The Mesh library is included in a “libraries” subfolder, but you’ll have to restart Processing for the library to be recognized.
I’m posting the full code below for easy reference.
// MeshLibDemo.pde - Demo of Lee Byron's Mesh library for
// calculating and drawing Voronoi, Delaunay and Convex Hull
// diagrams.
// Uses a set of random points to calculate all
// three diagrams, with one point responding to the mouse
// position. Press space to reset points, press '1', '2' and
// '3' to toggle display of the different diagrams.
//
// The library is included in this sketch, see the "libraries"
// subfolder See http://leebyron.com/else/mesh/ for more
// information about the library.
//
// Marius Watz - http://workshop.evolutionzone.com/
import megamu.mesh.*;
Voronoi myVoronoi;
Delaunay myDelaunay;
Hull myHull;
float[][] points;
float[][] myEdges;
MPolygon myRegions[],myHullRegion;
int col[];
float startX,startY,endX,endY;
float[][] regionCoordinates;
boolean showVoronoi=true;
boolean showDelaunay=false;
boolean showHull=false;
void setup() {
size(500,250);
// initialize points and calculate diagrams
initMesh();
smooth();
}
void draw() {
background(200);
if(myRegions==null) return;
// draw Voronoi
if(showVoronoi) {
strokeWeight(1);
stroke(0);
for(int i=0; i< myRegions.length; i++) {
fill(col[i]); // use random color for each region
regionCoordinates = myRegions[i].getCoords();
myRegions[i].draw(this); // draw this shape
}
}
// draw Voronoi as lines
if(showDelaunay) {
strokeWeight(2);
stroke(255,0,0);
for(int i=0; i< myEdges.length; i++) {
startX = myEdges[i][0];
startY = myEdges[i][1];
endX = myEdges[i][2];
endY = myEdges[i][3];
line(startX, startY, endX, endY);
}
}
// draw Hull in semi-transparent yellow
if(showHull) {
strokeWeight(1);
stroke(0);
fill(255,255,0, 150);
myHullRegion.draw(this);
}
}
void initMesh() {
// is points array is null then initialize it
if(points==null) initPoints();
// save the current number of regions, so that
// we can check if it's the same after the Voronoi
// has been recalculated.
int oldlength=0;
if(myRegions!=null) oldlength=myRegions.length;
myVoronoi = new Voronoi( points );
myHull = new Hull( points );
myDelaunay = new Delaunay( points );
myRegions = myVoronoi.getRegions();
myHullRegion = myHull.getRegion();
myEdges = myDelaunay.getEdges();
// if the number of regions is different than
// before then recalculate the random colors
if(oldlength!=myRegions.length) {
col=new int[myRegions.length];
for(int i=0; i< myRegions.length; i++) {
float prob=random(100);
if(prob>60) col[i]=color(random(30,100));
else col[i]=color(random(200,255));
}
col[0]=color(255,0,0);
}
}
void initPoints() {
points = new float[(int)random(5,30)][2];
for(int i=0; i< points.length; i++) {
points[i][0] = random(width); // first point, x
points[i][1] = random(height); // first point, y
}
}
void keyPressed() {
// reset points and mesh when spacebar is pressed
if(key==' ') {
initPoints();
initMesh();
}
// use keys '1'-'3' to toggle display
if(key=='1') showVoronoi=!showVoronoi;
if(key=='2') showDelaunay=!showDelaunay;
if(key=='3') showHull=!showHull;
}
void mouseMoved() {
// if myRegions is null then mesh is not ready
if(myRegions==null) return;
// set first point to mouse position and recalculate
points[0][0]=mouseX;
points[0][1]=mouseY;
initMesh();
}

Here is a sketch written in Processing that allows you to retrieve in real-time SMS messages from a phone. It uses a MySQL-driven database to store the messages, you’ll need to have one at your disposal (remote or local).
A convenient way to install such a database on your computer is to download and install MAMP, then it’ll be just a matter of drag’n’dropping a folder in your Applications folder, the easy and usual way on Mac.
The package comes also with phpMyAdmin, a popular web-based tool to manage MySQL databases from within your browser.
Softwares/hardwares needed to run this program (assuming you have Processing installed):
Here are the few steps to make the program run :
1. Install MySQL and create a database called processingsms.
If you installed MAMP, use phpMyAdmin to perform this operation. This step can be skipped if you have already access to a server.

2. Download and install Cocoa UltraSMS.
Run it and click on the Setup button to modify some parameters. Also, choose your bluetooth-enabled mobile phone in the list.

Note that the screenshot parameters are important and may differ from your MySQL configuration. This paramaters will be used in the Processing sketch to connect to the database :
3. Click on the Test button to check if UltraSMS can connect to the database. It will also ask you to create two tables (smsins and smsparts), click Ok. The Empty button will remove all the messages already saved.
4. Open Processing IDE, load the ProcessingSMS.pde sketch. In the config tab, change the values of the variables accordingly to your UltraSMS setup.

5. Click on the Start button of the UltraSMS application. If everything goes well, the status should switch to Connected.
6. Run the program, it should display in the console your sms messages that were inside your phone.
7. Tell a friend to send a message on the connected phone, it should be grabbed and saved in the database !
I recently used this configuration in two installations, one of them being the particles cloud that was shown during the Web Flash Festival.
One of the main drawback I had to face is that the UltraSMS application deconnected when messages were sent massively to the receiving phone. You have then to reconnect manually , which may not be a good thing if this system is to be used in standalone installation. UltraSMS source code is available and there may be a hack to force an automatic reconnection in such situations.
The mobile phone I used for the tests was a Sony Ericsson K600i.
The .zip file containing the Processing sketch also contains a php script to simulate the sending of a SMS into database, which is quite handy when you’re in debugging mode. MAMP is then the tool of choice as it also installs Apache which runs a localhost webserver and lets you execute php scripts.
Any feedback would be very much appreciated. If you have tips, mobile phones that worked / not worked with this configuration, projects using this stuff (or other type of configuration), that would be lovely to share. Thanks!
Ok, so now I’m really pissed. So I’ve bought the damn upgrade, simply because I have so many old projects languishing on this dying platform. I’ve also been getting email from people because some of these projects are online, and no longer work; and instead of saying, “Macromedia, er Adobe, couldn’t move its sorry ass for over two years to get this software working on your platform,” the alert instead says, “please contact the author,” which in its tone suggests that somehow I’m the one who can’t manage my own projects. Okay, okay, so that’s the way software works, fine. So I get the upgrade, figuring I’ll finally fix these problems.
Five minutes later, this brand-spanking new software has crashed. Hmmm. That sucks. Okay, try again. The damn thing crashes again. Hmmm. Well, apparently, it has something to do with font support; okay, avoid that, try again. “Your application has unexpectedly quit,” and so on for days. Try simple stuff, complicated stuff = crash. Cannot open any significant project from pre-Director 11. I give up. Report bugs. Move on to something else.
So I gave it a few weeks, figuring Adobe would solve the problems that are always hanging around as software goes out the door. I even try copying individual media and scripts by hand, avoiding their “updater” which has now just crashed for the gazillionth time. No luck. Or the thing appears to work for a few seconds, then crashes at some random moment. Try another machine, try a clean install, rinse, lather, repeat…
Finally, I go back to their website. Try the forums, no help there. Try another bug report, probably won’t answer just like a few weeks ago. Try technical support…what!? I have to f@#&§! pay forty dollars just to get help making a supported feature actually work!?
The notion that professional software is somehow more efficient, or (gasp) simply professional, is in the end just a hoax. The illusion that actually having paid for the software will somehow give you some service when it breaks? Yeah, right. To compare real-world experiences: last week I had a bug in OpenFrameworks; I just opened up the code, fixed it, and moved on. I lost maybe a few minutes. Where do I turn when I have a bug in Director? Their website is like a fortress. Oh, sorry, I meant so say a crypt…