August 12, 2014

Sudoku puzzle solution used as a template for weaving patterns. All possible combinations which produce a valid binding structure are animated here sequentially according to number of sunk warp threads.

May 4, 2014

May 4, 2014
More TBC Torture from a session earlier today. Thanks to Hank Rudolph for the debug help in setting up the system.
System: RGB Decoder outputs into Audio Mixer, Audio outputs to TBCs, TBCs into Hearn EAB VideoLab 6x6 mixing matrix, 6x6 Matrix outputs to RGB encoder, RGB encoder output to Dave Jones Video Output Amplifier, Video Output Amplifier to RGB Decoder inputs and Audio Mixer.
POW!

More TBC Torture from a session earlier today. Thanks to Hank Rudolph for the debug help in setting up the system.

System: RGB Decoder outputs into Audio Mixer, Audio outputs to TBCs, TBCs into Hearn EAB VideoLab 6x6 mixing matrix, 6x6 Matrix outputs to RGB encoder, RGB encoder output to Dave Jones Video Output Amplifier, Video Output Amplifier to RGB Decoder inputs and Audio Mixer.

POW!

May 2, 2014
I was asking Hank Rudolph at @SignalCulture (I’m doing a residency there right now!) about converting between audio and video directly so I could setup feedback loops. After setting up a microphone and goofing around trying to colorize it, Hank decided to try to patch raw oscillator signals into a Time Base Corrector. I’ve spent the last 3 hours torturing the TBCs by feeding them back into each other through an audio mixer. Here’s a taste of the output (no audio).

I was asking Hank Rudolph at @SignalCulture (I’m doing a residency there right now!) about converting between audio and video directly so I could setup feedback loops. After setting up a microphone and goofing around trying to colorize it, Hank decided to try to patch raw oscillator signals into a Time Base Corrector. I’ve spent the last 3 hours torturing the TBCs by feeding them back into each other through an audio mixer. Here’s a taste of the output (no audio).

April 21, 2014

February 22, 2014
Created for my class on Glitch Art now open for enrollment on Skillshare: http://skl.sh/1eyNzVn

Created for my class on Glitch Art now open for enrollment on Skillshare: http://skl.sh/1eyNzVn

February 10, 2014

An example of Macroblock Artifacts produced by Databending JPGs.

Prepared for my online course on Skillshare: 

Glitch Art - Creating Design from Error: Databending Basics

Learn the basics of databending, familiarize yourself with the art and artifacts of working with different file formats, create stunning glitched GIFs.

Signup today by clicking the link above and receive 50% off enrollment.

January 30, 2014
More pixel shifting experiments…
Source Image:
Processing Code:
//PixelShifting by Phillip Stearns 2014
PImage sourceImg;
int iteration;

void setup(){
  iteration=0;
  sourceImg = loadImage("shift.jpg");
  size(sourceImg.width, sourceImg.height);
}

void draw(){
  int yoffset = int(random(height));
  int xoffset= int(random(width));
  int randomRows= int(random(height)) - yoffset;
  int randomColumns=int(random(width)) - xoffset;
  
  for(int i = 0 ; i < randomRows ; i++){
  shiftRow(sourceImg, i+yoffset, 15);
  }
  for(int j = 0 ; j < randomColumns ; j++){
  shiftColumn(sourceImg, j+xoffset, 15);
  }
  image(sourceImg, 0, 0);
  sourceImg.save("shifted_" +nf(iteration, 3)+ ".png");
  iteration++;
}

void shiftRow(PImage image, int row, int shift){
  int[] buffer = new int[image.width];
  if (row < 0 || row >= height){
    println("Row value is out of range.");
  } else{
    for(int i = 0 ; i < image.width ; i++){
      buffer[(i+shift) % (image.width)] = image.pixels[row*image.width+i];
    }
    for(int j = 0 ; j < image.width ; j++){  

      sourceImg.pixels[row*image.width+j] = buffer[j];
    }
  }
  sourceImg.updatePixels();
}

void shiftColumn(PImage image, int column, int shift){
  int[] buffer = new int[image.height];
  if(column < 0 || column >= width){
    println("Column value is out of range.");
  }else{ 
    for(int i = 0 ; i < image.height ; i++){
      buffer[(i+shift) % (image.height)] = image.pixels[i*image.width+column];
    }
    for(int j = 0 ; j < image.height ; j++){  
      sourceImg.pixels[j*image.width+column] = buffer[j];
    }
  }
  sourceImg.updatePixels();
}

More pixel shifting experiments…

Source Image:

Processing Code:

//PixelShifting by Phillip Stearns 2014
PImage sourceImg;
int iteration;

void setup(){
  iteration=0;
  sourceImg = loadImage("shift.jpg");
  size(sourceImg.width, sourceImg.height);
}

void draw(){
  int yoffset = int(random(height));
  int xoffset= int(random(width));
  int randomRows= int(random(height)) - yoffset;
  int randomColumns=int(random(width)) - xoffset;
  
  for(int i = 0 ; i < randomRows ; i++){
  shiftRow(sourceImg, i+yoffset, 15);
  }
  for(int j = 0 ; j < randomColumns ; j++){
  shiftColumn(sourceImg, j+xoffset, 15);
  }
  image(sourceImg, 0, 0);
  sourceImg.save("shifted_" +nf(iteration, 3)+ ".png");
  iteration++;
}

void shiftRow(PImage image, int row, int shift){
  int[] buffer = new int[image.width];
  if (row < 0 || row >= height){
    println("Row value is out of range.");
  } else{
    for(int i = 0 ; i < image.width ; i++){
      buffer[(i+shift) % (image.width)] = image.pixels[row*image.width+i];
    }
    for(int j = 0 ; j < image.width ; j++){  

      sourceImg.pixels[row*image.width+j] = buffer[j];
    }
  }
  sourceImg.updatePixels();
}

void shiftColumn(PImage image, int column, int shift){
  int[] buffer = new int[image.height];
  if(column < 0 || column >= width){
    println("Column value is out of range.");
  }else{ 
    for(int i = 0 ; i < image.height ; i++){
      buffer[(i+shift) % (image.height)] = image.pixels[i*image.width+column];
    }
    for(int j = 0 ; j < image.height ; j++){  
      sourceImg.pixels[j*image.width+column] = buffer[j];
    }
  }
  sourceImg.updatePixels();
}

January 21, 2014
Binary Blizzard
Made with 251 Linear Feedback Shift Registers in Processing

Binary Blizzard

Made with 251 Linear Feedback Shift Registers in Processing

January 21, 2014
Massive Linear Feedback Shift Register Party
made with Processing

Massive Linear Feedback Shift Register Party

made with Processing

January 16, 2014

3:26pm  |   URL: http://tmblr.co/ZX7FGw14VDrDc
  
Filed under: GIF art processing lfsr 
January 4, 2014

Weekend Link:

Excellent work spotted in Behance user Geso’s portfolio.

January 1, 2014
Happy New Year!
PS - Year of the Glitch turns 2yrs old today. Thanks for following! Excited to see what 2014 will bring.

Happy New Year!

PS - Year of the Glitch turns 2yrs old today. Thanks for following! Excited to see what 2014 will bring.

December 31, 2013
2013

2013

December 31, 2013
2013

2013

(Source: vimeo.com)