Response to Eyeo2012

Eyeo2012 – Casey Reas

The 40 minutes flew by as Casey Reas began by detailing the origin and development of his very intricate code-generated graphics in relation to Chance Operation. The fact that Reas began by generating simple geometric randomized patterns, gave way to his use of noise and random number systems in order to produce more sophisticated designs, with an organic flow to the shapes and patterns. During his talk, Reas articulates the importance of Michael Noll as a pioneer in the field of creative digital computation, and how Noll emphasizes the significance of the “full exploitation of those unique talents [of computers] for controlled randomness and detailed algorithms [which] can result entirely in an entirely new medium”, and this new medium that Noll describes is a “creative artistic medium”, that has enabled the likes of Reas to to manifest beautiful artworks.

It was also fascinating how Reas points out that randomized number systems  have proved to be essential in the exploration of computer-generated graphics, and allowed people more freedom in creating fascinating patterns that emphasize the intrinsic relation between order and chaos. It really raises the question around the limitations of noise and random numbers in the world of code, design and computer graphics.

Response: Casey Reas Talk

I thought that watching this presentation was extremely interesting. Especially because I previously had a hard time wrapping my head around the novelty of using computers to generate art. I always thought: “if I can paint what I can do in Processing, why do I need to produce this art using computers?” But this cemented in my mind how useful creating patterns and art in both predictable and unpredictable ways is, and how computers are the perfect tool to do this. The examples Reas presented allowed me to understand just how flexible computer art is.

How can nature be effectively simulated using computer art? This is something that I wondered throughout the video, and Reas provided effective insight into how this can be done. Not only that, but his discussion of simulating nature and patterns extended to not just art but to the broader use of computing power to create patterns with various applications.

Casey Reas’ Eyeo talk response

This video was interesting for me to watch because it talked more about the artistic side of code. I’ve never really been a fan of machine made art and “randomness” because I believe that art is more than just about the art, it’s also about the artist, the humanity, creativity, emotion, and ideas behind the piece. If some machine makes random lines or dots that form an image, it might look interesting, but there is nothing to connect to, no intention to interpret. However randomness can be useful when an entire piece is not just about the randomness itself, but the randomness is used to achieve something by the artist, such as the dots (27:12) moving randomly in a specific area determined by the artist. Reas’ ideas about order vs. chaos were interesting to listen to. I found it very thought provoking when he showed how the random images generated did not seem to create any specific image but when duplicated and mirrored, those same random shapes started to “trigger our imagination” and sort of create a familiar image, due to the symmetry. I also really liked the pieces he created dependent on the lines connected between the mid points of the overlapping circles (29:05-29:45). By the end of the video I was very impressed by the things that could be done, in terms of art, using code.

Response to Eyeo2012

Casey Reas’ talk about Chance Operation really brought into light the possibilities chaos and order can create. As I was looking through the art pieces he created, I had a hard time thinking about how he coded such a design. They were messy, but in an orderly way, and it really made me focus on the piece. One of the concepts he mentioned was the use of “jittering” to create an organic movement and that was very intriguing because a small movement of particles created so many different pieces that looked nothing alike. For me, it’s exactly this randomness that makes it hard for me to think of the code he used to make the piece.

When Reas’ started talking some of the art pieces that actually represented the artist’s current time, I was surprised because I never knew there was a connect between the art and current history (e.g. World War I art pieces). I’ve never really understood art museums and there are many times where I’m in museums thinking “how did they get famous from this piece? I could make that, too.” However, since watching this video, I’ve realized that it’s what the art represents / the meaning behind the art that’s made it less simple than it seems.

After watching this, I’m more excited about experimenting with randomness and getting more comfortable with understanding how it works. I want to get to a point where I can understand how some of the small changes in noise() or random() can change up my piece (e.g. frequency, sin(), cos(), rotate()).

Response to chance operations

The way the make “random” pictures is just incredible. I would really love to discuss more in detail how they created these (3:46 time stamp) pictures. I really love the way they had some sort of variables which can be easily changed. They can choose the shape and the behavior of the shape. Isn’t that incredible? Using these variables that can easily be changed you can create a big load of different pictures/images. All of them are basically created “with a roll of a die” by choosing random variables. More what I like about the video is the “Chance of code” section (22:22 timestamp). There he talks about the history of random pictures using code. An example is the image at 25:27. He says that it is one of the first random pictures generated by a computer using variables. The most interesting part though was how different patterns were drawn in a commander 64. It is really amazing. What amazes me is the way simple characters can create such patterns. Everything we see in our life can have a nice and pretty patterns 🙂

Response on Chance Operations

Chance Operations – Casey Reas (Eyeo 2012)

After watching the talk by Casey Reas on chance operations, I was fascinated with the utilization of randomness with sets of control and limitations into a creative and intriguing digital art. From the revolution one line code of repetition and randomness using the Commodore 64 to the current creative platform Processing, the field of using randomness as a core tool has vastly progressed to diverse areas. One of the examples that Reas brought up in his talk was about his use of reproduction of cancer cells data – and how data, with a controlled randomness, can create a unique pattern and open the new era of computer art.

Personally, I found the idea of using simple and individual elements like a dash (-) or a slash (\, /) with controlled randomness  to create a pattern the most interesting – especially relating back to Reas’s co-authored book “10 PRINT CHRS$(205.5+RND(1)); : GOTO 10”. These things may look simple, but the simpleness allow us to look closer and deeper – to use them in unique ways to create something novel. And, Reas’s talk made me to think deeper on the idea of randomness and its application on small components.

The talk, in general, definitely opened me up to numerous ideas and variations that I can apply into previous or existing works, and  raised my excitement in using Processing to make these ideas come true.

Recreation on Computer Graphics & Art

For the following exercise, I have chosen to recreate “Structured Square Series — Inwards” featured in Computer Graphics and Art for August, 1976.

In the computer generated art below, the title of the piece gave me the biggest clue of how this operates as well as how the piece was designed. In the piece, the outer layer has total of 8 lines within the box (horizontal, vertical, diagonal [R-L], diagonal [L-R], and four lines triangulating the square  into total of 16 equal triangles. And, as each you approach the middle of all the layers, a line is omitted – when you reach the middle, all the lines are omitted.

So, I have recreated the above artwork using processing and the results are show in the images below. For the recreation process, I have used an ArrayList and an IntList, where the arrayList contains eight arrays of quads that represent the coordinates for the triangulating lines and the IntList containing integers from 0 to 7 to represent the indexes for accessing the arrays in the arrayList.

The inner loop for k runs from k=0 to k=7 with incrementing k for every loop, and I have utilized this with a conditional check depending on the location of the squares. For instance, if the location of the square is at the third layer from the outside, it should have 6 lines drawn – and I was able to do this by adding a conditional statement that it should draw the line when k < 6. This was done for each layer to recreate the art piece correctly. Also, to create the random configuration of strokes, I have used the shuffle function of the IntList to mix the order of the stroke quads for each squares.

A version with added fill color:

<Source Code>

int w = 40;
int h = 40;
IntList indexes;
ArrayList<int[]> coords;

void setup() {
  size(680, 680);
  rectMode(CENTER);
  coords = new ArrayList<int[]>();
  indexes = new IntList();
  
  for (int i = 0; i < 8; i++) {
    indexes.append(i);
  }
  
  indexes.shuffle();
  
  int[] coords1 = {-15, 0, 15, 0};
  int[] coords2 = {-15, 0, 0, -15};
  int[] coords3 = {-15, 0, 0, 15};
  int[] coords4 = {-15, -15, 15, 15};
  int[] coords5 = {0, -15, 0, 15};
  int[] coords6 = {0, -15, 15, 0};
  int[] coords7 = {0, 15, 15, 0};
  int[] coords8 = {15, -15, -15, 15};
  
  coords.add(coords1);
  coords.add(coords2);
  coords.add(coords3);
  coords.add(coords4);
  coords.add(coords5);
  coords.add(coords6);
  coords.add(coords7);
  coords.add(coords8);
}

void draw() {
  background(255);
  for (int i=0; i < height; i += h) {
    for (int j=0; j < width; j += w) {  
      pushMatrix();
        translate(i+w/2, j+h/2);
        for(int k = 0; k < 7; k++) {
          if (i+w/2 < 40 || j+h/2 < 40 || i+w/2 > 640 || j+h/2 > 640) {
            fill(255, 240, 240);
            if (k == 0) {
              rect(0, 0, 30, 30);
              line(-15, 0, 15, 0);
              line(-15, 0, 0, -15);
              line(-15, 0, 0, 15);
              line(-15, -15, 15, 15);
              line(0, -15, 0, 15);
              line(0, -15, 15, 0);
              line(0, 15, 15, 0);
              line(15, -15, -15, 15); 
            }
          }
          else if (i+w/2 < 80 || j+h/2 < 80 || i+w/2 > 600 || j+h/2 > 600){
            fill(255, 210, 210);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            int coordArr[] = coords.get(indexes.get(k));
            line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
          }
          else if (i+w/2 < 120 || j+h/2 < 120 || i+w/2 > 560 || j+h/2 > 560){
            fill(255, 180, 180);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 6) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else if (i+w/2 < 160 || j+h/2 < 160 || i+w/2 > 520 || j+h/2 > 520){
            fill(255, 150, 150);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 5) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else if (i+w/2 < 200 || j+h/2 < 200 || i+w/2 > 480 || j+h/2 > 480){
            fill(255, 120, 120);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 4) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else if (i+w/2 < 240 || j+h/2 < 240 || i+w/2 > 440 || j+h/2 > 440){
            fill(255, 90, 90);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 3) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else if (i+w/2 < 280 || j+h/2 < 280 || i+w/2 > 400 || j+h/2 > 400){
            fill(255, 60, 60);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 2) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else if (i+w/2 < 320 || j+h/2 < 320 || i+w/2 > 360 || j+h/2 > 360){
            fill(255, 30, 30);
            if (k == 0) {
              rect(0, 0, 30, 30);
            }
            if (k < 1) {
              int coordArr[] = coords.get(indexes.get(k));
              line(coordArr[0], coordArr[1], coordArr[2], coordArr[3]);
            }
          }
          else
          {
            fill(255, 0, 0);
            rect(0, 0, 30, 30);
          }
        }
      indexes.shuffle();
      popMatrix();
    }
  }
  delay(50);
}
          
void mousePressed() {
  noLoop();
}

void mouseReleased() {
  loop();
}

 

 

Casey Reas and Data Visualisation

Casey Reas, amongst other things, presents works like “Signals” in which he explores how proteins communicate positive and negative signals within a cancer cell.

Randomness. A.I.. Control. Art. Design.

These are all words that exist in the conversation initiated by Raes of and by his work. his talk proceeds to describe the beauty and complexity of randomness in art, and a lot of his own creations, especially in using randomness and “jittering” come to represent much of the organic movements and behaviours we witness in day-to-day life, but cannot quite point to directly.

In describing his works he comes to an interesting notion: that, in creating randomness and behavioural traits, he is not interested in the particular position of an object and any given moment, rather the path of how they organize themselves. Not a moment, but the collection of moments. This idea translates to many tiers of the human experience, whether it be ideological and a way of conceptualizing how paradigms shift, or people and their movement in space.

For me, however, his work represented an important focus in the way we visualize data. How do we collect a point of interest and make it significant for an audience? It is not just Reas using a gimmick to make a pretty object move on a page. Rather the particular movement and the way that he represents that data provided us insight into an aspect of this simulated movement that is unseen to the naked eye.

This is one of my passions in design: to make the unseen, seen. To consider medium, process, and output. To create interaction. Such ideas of visual data and data processing applied in graphics, 2D, and static images. This, in some ways, describes interaction engagement and the exchange of knowledge as things that transcend literal physical interaction.

For the assignment, I recreated “Phase Pattern” by Manfred More with some movement.

//p145 "Phase Pattern" by Manfred Mohr

int w = 400;
int heightDisplacement= 90;
int lineSpacing=6;
float granulation = 0.002;

void setup() {

  size(600, 800);

  //noLoop();
  noFill();
}

void draw() {

  background(20);
  stroke(255);
  strokeWeight(1);
  float prevlengthAdjustment=0;

  for (int y =0; y<height; y=y+lineSpacing) {

    //noise(frequency) , sin a(x+b)

    line(0, y, height, y);
  }
  pushStyle();
  stroke(255, 255, 255);
  fill(0);
  beginShape();
  vertex(1, height);
  for (int x =0; x<width; x=x+8) {
    float frequency2 = frameCount*0.005- granulation*x;
    //-0.002 is granulation. It is to make the noise a little bit smaller. If it wasnt there it would look more random.
    //you multiply by 0.005 to slow down the frame. Otherwise its super fast
    //we multiply by x because it is changing by 1 everytime. If we didnt multiply it, all of the objects will do the same thing.
    float amplitude = 600;
    float adjustedNoise2 = (noise(frequency2));
    float lengthAdjustment2 = adjustedNoise2*amplitude;
    //noise(frequency) , sin a(x+b)




    vertex(x+1, heightDisplacement+lengthAdjustment2);
    //stroke(255, 255, 255);
  }
  vertex(width-8, height);
  endShape();
  popStyle();




  for (int x =0; x<width; x=x+lineSpacing) {
    float frequency = frameCount*0.001+ granulation*x;
    float frequency2 = frameCount*0.005- granulation*x;
    float amplitude = 600;
    float adjustedNoise = (noise(frequency));
    float adjustedNoise2 = (noise(frequency2));
    float lengthAdjustment = adjustedNoise*amplitude;
    float lengthAdjustment2 = adjustedNoise2*amplitude;

    line(x, 0, x, lengthAdjustment);
    line(x+1, 800, x+1, heightDisplacement+lengthAdjustment2);
  }
}

 

Chance Operations – Casey Reas

Not gonna lie, I was not super excited when I loaded up the link and saw that the video was forty minutes long. But as I started watching it, I totally forgot about the time and just got interested in what Casey Reas was saying. The time passed much faster than I expected.

One of the first things he said was that artists brings order amongst the chaos that nature creates. And I’m not sure I really agree with that. But I also don’t know what artists do in that sense. Because they don’t necessarily bring chaos? Maybe they do bring order? But does nature bring chaos? There are so many ordered things in nature, between all of the patterns you find and the processes that keep it running smoothly, there’s not way it can be classified as “chaos”.

During the last lesson I didn’t quite understand what the purpose of “noise” was. The lecture really helped me understand it, though. The best example was that one where the lines all followed to the same target. If he didn’t add the noise, or “jitter”, then no matter how many lines he added, it would just be a perfect circle around the target. However, with the noise, you could see the individual paths that each line took to reach the target.

One of the distinctions that I was most passionate about that order does not mean unemotional. Order in art does not mean that no thought or emotion or style went into making the piece of art.

Response: Eyeo2012

Considering that this happened in 2012, I believe that this video shows numerous positive accomplishments that people like Casey Reas have made that are applied in our works today.

To begin with, I want to acknowledge the multi-dimensional aspect of processing. For instance, the work “Signals” done by Casey Reas is an artwork created by technology which portrays the biological procedure of proteins communicating in cancer cells. His artwork already crosses three fields of mastery: art, computer science, and biology. Even on the next example, Reas explains how for years he had been gathering information about certain architecture works before he starts coding. The fact that this individual is able to weave multiple seemingly unrelated works into creating a work that can amaze others is in my opinion very touching and inspiring. His creativity, I believe, is certainly something I can learn of and hopefully apply into my own work.

Michael Noll also contributes greatly to what tools we have today, because I agree with the statement that “the ability to use a rational device to create randomness is amazing”. And not only in military books, or in technical, mathematical programs, it is great to hear from Noll and Reas that randomness in fact can be used to generate creative pieces of work. The element of surprise that people receive when an unexpected result arrives due to randomness is also one of the aesthetics of what we now call a “cool” project.

Overall, Reas helped me re-visualize what kind of projects I would like to do in the future. Now that the lessons I have learned are ingrained within me, I know that IM is one of the few classes where I will be able to really express the creativeness inside me. And to do that, I will definitely refer to the key points of this video: traversing between multiple fields, and using randomness as a tool.