diff --git a/pde/IF3Si/IF3Si.pde b/pde/IF3Si/IF3Si.pde deleted file mode 100644 index 72bb34e..0000000 --- a/pde/IF3Si/IF3Si.pde +++ /dev/null @@ -1,262 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - Interface Fractures III - SILICON - (c) nova@deviator.si - - IF3Si.pde - - */ - -// undecorate window (remove window borders etc) - - - - - - - - - - - - - - - -public void init() { frame.removeNotify(); frame.setUndecorated(true); - frame.addNotify(); super.init(); } - -// load libs -import oscP5.*; // Open Sound Control -import netP5.*; - - -// declarations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// declare OSC object -OscP5 oscP5; - - -// IMAGE POOL, a 2D array -PImage[][] imgPool; - -// texture (tiles) -float texX = 0; -float texY = 0; - -// generate an array of random numbers -int[] rands = new int[500]; -IntList randz; // arrayList - -// for draw cube -int cubesnum = 20; -PGraphics[] cubes = new PGraphics[cubesnum]; -PShader blur; -PGraphics bpass1, bpass2; - -// spheres -int ptsW, ptsH; - -int numPointsW; -int numPointsH_2pi; -int numPointsH; - -float[] coorX; -float[] coorY; -float[] coorZ; -float[] multXZ; - -PGraphics sphere; - -int tilesOverlap; - -void setup() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - float sizefactor = 1; // define the size of the screen, 1 = 1080p - size( int( 1920 * sizefactor ), - int( 1080 * sizefactor ), - P3D ); // renderer - - // framerate - frameRate(60); - smooth(32); // 32?? - noCursor(); - background(10); - - println("\n\n~~~ Hello. Starting Interface Fractures III - SILICON." + - " - - - - - - - - - - - - - - - - - - - - - -\n"); - - // start oscP5, listening for incoming messages at port 12000 - println("~~~ starting oscP5 ..."); - oscP5 = new OscP5(this,12000); - oscP5.plug(this,"ctlin","/ctlin"); // to be converted for PD OSC input - - // get all textures into an image pool - println("\n\n~~~ loading textures into image pool ...\n"); - imgPool = getImages("/images/"); - - // create an array of random value between -50 and 50 - for (int i=0; i < 500; i++) { rands[i] = i-250; } - shuffle(rands); - - - // drawCube ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` - // an array of PGraphics - for (int i = 0; i < cubesnum; i++) { - cubes[i] = createGraphics(width, height, P3D); - } - blur = loadShader("blur.glsl"); - bpass1 = createGraphics(width, height, P3D); - bpass1.smooth(); - bpass2 = createGraphics(width, height, P3D); - bpass2.smooth(); - - - randz = new IntList(width); - for (int i=0; i < width; i++) { - randz.set(i, i); - } - randz.shuffle(); - //println(randz); - - // spheres - ptsW=30; - ptsH=30; - initializeSphere(ptsW, ptsH); // number of vertices around the width and height - sphere = createGraphics(width, height, P3D); - -} - - -// process OSC messages -public void ctlin(int cc, int val) { // - - - - - - - - - - - - - - - - - - - - - - - - - // debug - println("## OSC: /ctlin cc:" + cc + " value:" + val); - - if (cc == 2) { tilesOverlap = val; } - - /* // triggers are on controller number 0 - if (cc == 0) { - } - - if (cc == 2) { flySpeedXfactor = (val - 64); } // speed (&direction) on X axis [-1 - 1] FIXit! - if (cc == 3) { flySpeedYfactor = (val - 64); } // speed (&direction) on Y axis [-1 - 1] FIXit! - */ - -} - - - - - - - -void draw() { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // clean screen ````````````````````````````````````````````````````| - /* - blendMode(BLEND); - screenClean(color(50)); - - // SPHERES ----------------------------------------------------------- - //offscreen render spheres - - sphere.beginDraw(); - sphere.blendMode(BLEND); - sphere.rect(0, 0, width, height); - sphere.blendMode(DARKEST); - sphere.noStroke(); - sphere.pushMatrix(); - sphere.translate(width/2+(width/8), height/2, 580); - sphere.rotateX(radians(float(frameCount) * 0.1)); - sphere.rotateY(radians(float(frameCount) * 0.23)); - sphere.rotateZ(radians(float(frameCount) * 0.2)); - textureSphere(sphere, 400, 400, 400, imgPool[3][1]); - sphere.popMatrix(); - - sphere.pushMatrix(); - sphere.translate(width/2+(width/8), height/2, 580); - sphere.rotateX(radians(float(frameCount) * 0.2)); - sphere.rotateY(radians(float(frameCount) * 0.13)); - sphere.rotateZ(radians(float(frameCount) * 0.01)); - textureSphere(sphere, 390, 390, 390, imgPool[3][1]); - sphere.popMatrix(); - - sphere.endDraw(); - - - // tint(0); - // image(sphere, 0, 0); - - textureWrap(REPEAT); - //textureMode(NORMAL); - - pushMatrix(); - //tint(255); - translate(width/2, height/2); // center coordinate system - translate(((frameCount*1) % width) - width/2,0); - //stroke(0,50); - //strokeWeight(1); - noStroke(); - - float quadW = 500; - float quadH = height; - - float v1x = 0; // sin(radians(frameCount))*250+400; - - pushMatrix() ; - //rotate(PI/PI); - - beginShape(QUADS); - texture(sphere); - vertex(-quadW/2, -quadH/2, 0, 0); - vertex( quadW/2, -quadH/2, quadW, 0); - vertex( quadW/2, quadH/2, quadW, quadH); - vertex(-quadW/2, quadH/2, 0, quadH); - endShape(); - popMatrix(); - popMatrix(); - - */ - - // -------------------------------------------------------------------------- - // SCENENGINES - - - - - // draw tiles `````````````````````````````````````````````````````| - tiles(boolean(1), // render on/off - color(0, 0, 0, 80), // background color (HSBA) - color(80, 70, 20, 100), // tile color - 20, // tile hue distance - 0, // blendMode - 6, // number of tiles on X axis - 1, // number of tiles on Y axis - 2, // texture bank number - 0, // texture number/id - 10, // texture speed X - 1, // texture speed Y - tilesOverlap // overlap. 127 = 300% - ); - - - - // draw cubes `````````````````````````````````````````````````````| - drawCube(boolean(0), cubes, - 100, height/2, -100, - 400, 300, 300, - radians(frameCount), radians(frameCount*0.7), PI/2, - 0); - - - - // test pattern```````````````````````````````````````````````````| - testPattern(boolean(0), // on/off - 2, 0, // img bank & ID - 255, // image alpha - 10, // number of horizontal 'lanes' - 10, // density - 4, // stroke width - 255, // stroke alpha - 2 // speed - ); - - - // debug `````````````````````````````````````````````````````````| - // draw test picture - testPicture(boolean(0)); - - // frames per second - displayFps(true); - // document - autoSnap(false); -} // -------------------------------------------------------------------------- - - - diff --git a/pde/IF3Si/functions.pde b/pde/IF3Si/functions.pde deleted file mode 100644 index 154fbc5..0000000 --- a/pde/IF3Si/functions.pde +++ /dev/null @@ -1,456 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - Interface Fractures III - SILICON - (c) nova@deviator.si - - functions.pde - - */ - -// loads all images into an array - - - - - - - - - - - - - - - - - - - - - - - - - -PImage[][] getImages(String folder) { - - PImage[][] imgPool; // declare 2D array imgPool - - File dir = new File(dataPath(sketchPath + folder)); // first folder - String[] dirlist = dir.list(); // an array of folders (strings) - dirlist = sort(dirlist); // - imgPool = new PImage[dirlist.length][10]; // create 2d array imgPool - - - for (int i = 0; i < dirlist.length; i++) { - String fulldir = dataPath(sketchPath + folder + dirlist[i]) + "/"; - File dir2 = new File(fulldir); - String[] filelist = dir2.list(); // an array of image names - filelist = sort(filelist); - - if (filelist.length != 0) { - - for (int j = 0; j < filelist.length; j++) { - println("imgPool[" + i + "][" + j + "]: " + fulldir + filelist[j]); - imgPool[i][j] = loadImage(fulldir + filelist[j]); - } - - } else { - println("No files in this folder: " + fulldir); - } - } - - return imgPool; - -} - - - -// function to shuffle an array of integers - - - - - - - - - - - - - - - - - - - - - -void shuffle(int[] a) -{ - int temp, pick; - - for(int i=0; i- more TO BE EXPANDED / REFINED!!! */ - -void testPattern( boolean render, - int imgBank, int imgID, - int imgAlpha, - int ylines, - int density, - int lwidth, - int lalpha, - int speed - ) -{ - if (render) { - - tint(imgAlpha); - image(imgPool[imgBank][imgID], 0, 0); - - blendMode(BLEND); - - int yheight = height/ylines; - - for (int y=0; y < ylines; y++) { - int yloc = int((y+1)*height/(ylines+1)); - for (int x=0; x < width; x++) { - - int index = x + (y * (width/ylines)); - index = index % width; - if (randz.get(index) < density * 0.01 * randz.get((index + x + y) % randz.size())) { - - int fx = (x + frameCount); // move! - fx = fx * speed * 1 * randz.get((abs(index - x + y) % randz.size())) / randz.size(); // speed! - fx %= width; // wrap at the right edge - - color imgC = imgPool[imgBank][imgID].get(fx, yloc); - stroke(imgC, lalpha); - strokeWeight(1 + map(brightness(imgC), 0, 255, 0, lwidth)); - - line(fx, yheight * y + (yheight/30), fx, yheight * (y+1) - (yheight/30)); - } - } - } - } -} - - - - - - - -// SPHERES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// A 3D textured sphere with simple rotation control. -// thanks to https://processing.org/examples/texturesphere.html -// Texture Sphere written by Gillian Ramsay to better display the poles. -// Previous version by Mike 'Flux' Chang (and cleaned up by Aaron Koblin). -// Original based on code by Toxi. -// modified to accomodate offscreen PGraphics - -void initializeSphere(int numPtsW, int numPtsH_2pi) { - - // The number of points around the width and height - numPointsW=numPtsW+1; - numPointsH_2pi=numPtsH_2pi; // How many actual pts around the sphere (not just from top to bottom) - numPointsH=ceil((float)numPointsH_2pi/2)+1; // How many pts from top to bottom (abs(....) b/c of the possibility of an odd numPointsH_2pi) - - coorX=new float[numPointsW]; // All the x-coor in a horizontal circle radius 1 - coorY=new float[numPointsH]; // All the y-coor in a vertical circle radius 1 - coorZ=new float[numPointsW]; // All the z-coor in a horizontal circle radius 1 - multXZ=new float[numPointsH]; // The radius of each horizontal circle (that you will multiply with coorX and coorZ) - - for (int i=0; i