@Mods: I'm not sure if this breaks AUP, as I'm not sure if you could say this was in competition with DBP or not. The ball's in your court.
www.processing.org
Processing is a programming language aimed at producing Interactive Art Installations, film titles and general prettiness. It compiles to a Java application and is cross platform across Windows, OsX and Linux, as well as being able to make applets for the web.
It can handle all sorts of input such as webcam and anything you can plug into a serial port.
the syntax is a bit like a mix of basic and actionscript and looks like this;
/**
* RGB Cube.
*
* The three primary colors of the additive color model are red, green, and blue.
* This RGB color cube displays smooth transitions between these colors.
*
* Created 25 October 2002
*/
float xmag, ymag = 0;
float newXmag, newYmag = 0;
void setup()
{
size(200, 200, P3D);
noStroke();
colorMode(RGB, 1);
}
void draw()
{
background(0.5, 0.5, 0.45);
pushMatrix();
translate(width/2, height/2, -30);
newXmag = mouseX/float(width) * TWO_PI;
newYmag = mouseY/float(height) * TWO_PI;
float diff = xmag-newXmag;
if (abs(diff) > 0.01) { xmag -= diff/4.0; }
diff = ymag-newYmag;
if (abs(diff) > 0.01) { ymag -= diff/4.0; }
rotateX(-ymag);
rotateY(-xmag);
scale(50);
beginShape(QUADS);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(0, 1, 0); vertex(-1, 1, -1);
fill(1, 1, 0); vertex( 1, 1, -1);
fill(1, 1, 1); vertex( 1, 1, 1);
fill(0, 1, 1); vertex(-1, 1, 1);
fill(0, 0, 0); vertex(-1, -1, -1);
fill(1, 0, 0); vertex( 1, -1, -1);
fill(1, 0, 1); vertex( 1, -1, 1);
fill(0, 0, 1); vertex(-1, -1, 1);
endShape();
popMatrix();
}
Thought people might be interested, I haven't had much of a look into making anything with it yet, but it looks pretty reasonable, and if you're looking for cross platform support, it doesn't get much easier than this.
Martin
I don't have a sig, live with it.