2023-01-26 02:02:04 +01:00
|
|
|
import oscP5.*;
|
|
|
|
import netP5.*;
|
|
|
|
import http.requests.*;
|
|
|
|
import peasy.*;
|
|
|
|
|
|
|
|
PeasyCam cam;
|
|
|
|
OscP5 oscP5;
|
|
|
|
|
|
|
|
float x; // global variable
|
|
|
|
float y;
|
|
|
|
float z;
|
|
|
|
|
|
|
|
int col;
|
|
|
|
float rot;
|
|
|
|
|
|
|
|
float rx;
|
|
|
|
float ry;
|
|
|
|
float rz;
|
|
|
|
|
|
|
|
int[] r = {3,5,8,13,21,34,55,89};
|
|
|
|
|
|
|
|
PShape chickenfoot;
|
|
|
|
//String urosC02;
|
|
|
|
|
|
|
|
JSONObject json;
|
|
|
|
JSONObject jsonchannel;
|
|
|
|
|
|
|
|
JSONArray totalData;
|
|
|
|
JSONArray nameData;
|
|
|
|
JSONArray chnameData;
|
|
|
|
JSONObject record;
|
|
|
|
|
|
|
|
int id;
|
|
|
|
String name;
|
|
|
|
|
|
|
|
String timeStamp;
|
|
|
|
int temp;
|
|
|
|
int co2;
|
|
|
|
float humidity;
|
|
|
|
int s; // seconds counter
|
|
|
|
|
|
|
|
PFont liberation;
|
|
|
|
PGraphics urosBuffer;
|
|
|
|
boolean urosDisplayed;
|
|
|
|
|
|
|
|
void setup() {
|
|
|
|
fullScreen(P3D);
|
|
|
|
colorMode(HSB, 255);
|
|
|
|
liberation = createFont("LiberationMono-Bold.ttf", 30);
|
|
|
|
frameRate(24);
|
|
|
|
smooth();
|
|
|
|
|
2023-01-26 10:05:59 +01:00
|
|
|
// SET OSC LISTEN FROM SUPERCOLLIDER
|
2023-01-26 02:02:04 +01:00
|
|
|
OscProperties properties = new OscProperties();
|
|
|
|
properties.setListeningPort(47120); // osc receive port (from sc)
|
|
|
|
oscP5 = new OscP5(this, properties);
|
|
|
|
}
|
|
|
|
|
|
|
|
// SET OSC RECEIVE HANDLES (FROM SUPERCOLLIDER PATTERNS)
|
|
|
|
void oscEvent(OscMessage msg) {
|
|
|
|
println("message: " + msg);
|
|
|
|
if (msg.checkAddrPattern("/mother1")) {
|
|
|
|
x = msg.get(0).floatValue(); // receive floats from sc
|
|
|
|
println("xxxx: " + x);
|
|
|
|
}
|
|
|
|
if (msg.checkAddrPattern("/mother2")) {
|
|
|
|
y = msg.get(0).floatValue(); // receive floats from sc
|
|
|
|
}
|
|
|
|
if (msg.checkAddrPattern("/rotation1")) {
|
|
|
|
z = msg.get(0).floatValue(); // receive floats from sc
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
void draw() {
|
|
|
|
|
2023-01-26 10:05:59 +01:00
|
|
|
if (y < 5 ){
|
2023-01-26 02:02:04 +01:00
|
|
|
background(255, 0, 0);
|
|
|
|
stroke(0);
|
|
|
|
//background(123,44,234);
|
|
|
|
//background(0);
|
|
|
|
} else {
|
|
|
|
background(0);
|
|
|
|
stroke(255); }
|
|
|
|
|
|
|
|
// UROS
|
|
|
|
int s = second();
|
|
|
|
s = s - 60; // countdown timer
|
|
|
|
if (s==-1) { // every minute
|
|
|
|
thread("getUROS"); // threaded pull of UROS data from thingspeak
|
|
|
|
}
|
|
|
|
|
|
|
|
// scale(3);
|
|
|
|
//urosDrawData(); // draw the data into a imagebuffer
|
|
|
|
//if(urosDisplayed) { // use boolean to draw or not
|
|
|
|
//image(urosBuffer,0,0); // display the imageBuffer
|
|
|
|
// }
|
|
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
|
|
|
|
//lights();
|
|
|
|
|
|
|
|
strokeWeight(2);
|
|
|
|
fill(255);
|
|
|
|
pushMatrix();
|
|
|
|
//translate(width/2, 0);
|
|
|
|
//rotateX(radians(22));
|
|
|
|
rect(width/12 * x, 0, r[int(random(8))], height, 6); // MOTHER 1 VERTICAL
|
|
|
|
popMatrix();
|
|
|
|
|
|
|
|
// if (y == 4){
|
|
|
|
//rotateX(PI*z/2);
|
|
|
|
// } else {
|
|
|
|
// rotateX(0);
|
|
|
|
//}
|
|
|
|
|
|
|
|
// VERTICAL SCALE DEGREE TRACKER
|
|
|
|
|
|
|
|
fill(255);
|
|
|
|
pushMatrix();
|
|
|
|
//rotateY(radians(45));
|
|
|
|
strokeWeight(2);
|
|
|
|
rect(0, (height/8) *-y +height*0.7 , width, r[int(random(8))], 6);
|
|
|
|
popMatrix();
|
|
|
|
|
|
|
|
// SPHERE //////////////////////////
|
|
|
|
|
|
|
|
pushMatrix();
|
|
|
|
translate(width *0.5, height * 0.5, 0);
|
|
|
|
rotateX(radians( ry ));
|
|
|
|
rotateY(radians( ry ));
|
|
|
|
rotateZ(radians( ry ));
|
|
|
|
strokeWeight(col % 2000 / 10);
|
|
|
|
noFill();
|
|
|
|
stroke(col%255, 100, 200);
|
|
|
|
sphereDetail(5);
|
|
|
|
sphere((col%1000 /10) * 150);
|
|
|
|
popMatrix();
|
|
|
|
|
|
|
|
// COUNTERS
|
|
|
|
|
|
|
|
ry += 0.06;
|
|
|
|
rx += 0.025;
|
|
|
|
rz += 0.5;
|
|
|
|
col += 4;
|
|
|
|
rot += 0.5;
|
|
|
|
|
|
|
|
}
|
|
|
|
// END //////////////////////////
|
|
|
|
////////////////////////////////////////////////////
|