March 8, 2014

16x16 pixel macroblock compositions extracted from a student post in my Skillshare Class on Databending.

Enroll today. Take it at your own pace. Access for Life:

http://skl.sh/1d2PbFb

February 24, 2014

Awesome student work from my workshop at Machine Project by Michelle Leonhart  - tinwhiskers.net

(Source: flickr.com)

February 17, 2014

yearoftheglitch:

yearoftheglitch:

Want to learn how to glitch a digital camera?

I’m teaching a workshop in Los Angeles at the Machine Project on February 23rd.

Details here: http://machineproject.com/archive/classwork/2014/02/23/digital-cameras-circuit-bending-glitch-art/

PS - I’m providing the cameras and you get to take yours home with you after the workshop!

Here’s the updated link:

http://machineproject.com/blog/2014/02/23/digital-cameras-circuit-bending-glitch-art/

Still some spaces left! Reblog if you’re in LA or know someone who would enjoy this class. Space-time coordinates: Machine Project - Los Angeles, CA - Feb 23rd, 2014 - 12p-6p

February 11, 2014

Want to learn how to glitch a digital camera?

I’m teaching a workshop in Los Angeles at the Machine Project on February 23rd.

Details here: http://machineproject.com/archive/classwork/2014/02/23/digital-cameras-circuit-bending-glitch-art/

PS - I’m providing the cameras and you get to take yours home with you after the workshop!

February 11, 2014

GlitchTextiles.com 25% Everything SALE

Promo Code: 25FEB2014 (ends Feb 28th at midnight)

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.

February 8, 2014
Twice Databent GIF
I’m putting together class examples for my Skillshare offering:
Glitch Art - Creating Design from Error: Databending Basics
Sign up using the link above and get 50% off enrollment!
WOOT!

Twice Databent GIF

I’m putting together class examples for my Skillshare offering:

Glitch Art - Creating Design from Error: Databending Basics

Sign up using the link above and get 50% off enrollment!

WOOT!

February 8, 2014

There are still discounted tickets available for my Databending Basics class on Skillshare.

Use this link + code TUMBLR50 for a 50% discount on enrollment: http://skl.sh/1f22nqx

Glitch Art - Creating Design from Error: Databending Basics will show you how to use text editors and hex editors to make glitch art and then turn a series of glitched images into an animated GIF. We begin with a brief introduction to what Glitch Art is, the materials involved, and then dive into hacking the materiality of our digital world.

PROJECT CHALLENGE!

Top 5 projects as selected by the class will be featured on Year of the Glitch!

February 7, 2014

February 7, 2014

Hey, there! I’m teaching series of Glitch Art courses on Skillshare. Sign up for the Basic Databending class today.

Use this link + code TUMBLR50 for a 50% discount on enrollment: http://skl.sh/1f22nqx (limited to the first 50 students)

Glitch Art - Creating Design from Error: Databending Basics will show you how to use text editors and hex editors to make glitch art and then turn a series of glitched images into an animated GIF. We begin with a brief introduction to what Glitch Art is, the materials involved, and then dive into hacking the materiality of our digital world.

PROJECT CHALLENGE!

Top 5 projects as selected by the class will be featured on my blog, Year of the Glitch!

January 30, 2014

RGB Channel Shifting

Top Image Source

Bottom Image Source

January 30, 2014

Sorting Governor Chris Christie

on left: sorting by 32bit ARGB color values

on right: sorting RGB channel values separately

Source Image

January 30, 2014

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 29, 2014
Playing with wrap around, pixel shift registers. Each row of pixels has been shifted a random amount.
Source Image

Playing with wrap around, pixel shift registers. Each row of pixels has been shifted a random amount.

Source Image