Graphics 2

From IPRE Wiki
Jump to: navigation, search

Anna Benjamin
Mentors: Dianna Xu and Deepak Kumar

Abstract

What is art? What about computer graphics? Is a written code art? Is it creative? Is it unique? How do we look at graphic art? Do we critique graphic art by the code, by the final piece, or by both? Is one more important than the other? How do we look at computer art differently than traditional art?

When considering computer graphics, we must combine coding with artistic skills. Because this field is a blend of these two (some might say) very different fields, it is important to be able to look at graphics from both viewpoints.

Processing was founded by Ben Fry and Casey Reas as a software sketchbook in 2001. It is an integrated development environment (IDE) created with the goal of teaching basic computer programming skills within a visual context. However, Processing has since become an IDE used to create finished professional works as well. This environment is an example of how coding and art can be merged harmoniously.

My work this summer will explore what can be done in art with Processing. Using this environment I will create a series of abstract works with code. There are many different ways in which to represent a single object in traditional art forms, likewise in Processing. Through my series, I will explore all the techniques of representation that Processing is capable of. I will produce a set of works that represent this single object in various ways. Through my processes I will be considering what this type of art means and I will be exploring answers to the questions above. I am approaching this project and these questions from an artistic standpoint, and so it will be very interesting for me to work towards an artwork through this different form of representation.

Goals

Daily Blog

Week 1 (June 7 - June 11)

Processing.org

Monday, June 7th

Today I began working with Jenny. I started familiarizing myself with Processing, beginning with the Processing website. I began with the Learning tutorials on the website, and worked through the Getting Started page. I went through the example codes, and also looked through the example sketches, testing out a bunch of them myself. I also looked at a few of the Exhibition Archives, which allowed me to see what the Processing software is capable of. In addition, I began my wiki page.

Tuesday, June 8th

This morning I started with Processing: Creative Coding and Computational Art, by Ira Greenberg.
Processing: Creative Code and Computational Art by Ira Greenberg
  • Introduction How Greenberg transitioned from being a traditionally trained artist to exploring an interest in programming for artists. Greenberg's goal in this book is to promote coding as an art form. He points out the relevance of math in the arts, especially in organic and natural representations.
Part One: Theory of Processing and Computational Art
  • Chapter 1: Code Art Greenberg introduces the idea of what makes an image, object, or design "work" from an aesthetic standpoint.
  • Chapter 2: Creative Coding Greenberg presents the argument that Processing is a programing environment, rather than a programming language. He differentiates Processing from Java by the fact that code can be written in a function-based style, and non-object-oriented structure. With respect to Java, Processing has all the benefits, but is simpler and more optimal for creative coding. An algorithm is "a finite step-by-step procedure used for solving a problem."

Wednesday, June 9th

In the morning I went over more chapters in Processing: Creative Coding and Computational Art.
  • Chapter 3: Code Grammar 101 This chapter goes over the basics of programming using Processing. This chapter is a really helpful refresher for me on coding, and very helpful in seeing some of the differences between Processing and Python. It also goes over the differences between procedural programming and orbject-oriented programming (OOP).
In the afternoon, Jenny and I had a discussion about what a combination of artistic creativity and computer science can result in. We discussed Pixar and their animated films. Jenny then brought up the controversy of computer generated art. I explored this topic more through various articles. There seems to be a wide-spread question of whether or not this type of art really IS art; whether it is original; . If one person writes a code to generate a work of art in the style of a known artist, does that work of art belong to that person, or the artist?; is the code the work of art?; is this creative?
Here are some of the articles I found:

Thursday, June 10th

  • Chapter 4: Computer Graphics, the Fun, Easy Way In this chapter, Greenberg gives an overview of computer graphics. He identifies four major application areas:
  • Display of information - data visualization
  • Design - integration of the visual requirements with the analytical or structural requirements (Form + Function)
  • Simulation and animation - similar to "display of information," but inclusive of time and verisimilitude (the appearance of reality)
  • User interfaces
Raster graphics - continuous tone images, not delineated into precise shapes with smooth edges, but are built up as a series of pixels. These pixels blend together to form the illusion of a single image
Vector graphics - mathematically described shapes, with color fills, strokes, and other rendering attributes. Can require much less memory compared to raster graphics, as they represent the plots of mathematical expressions.
Animation - a series of still images displayed sequentially. If the rate of change between images, the frame rate, our brains can't detect the transitions, and you see fluid motion.
This chapter also presents basic maths that will be useful for programming
Event handling is the basis of interactivity. Events can be mouse events (mouse presses, releases, hovers, enters, exits, moves, and drags), window events (resizing a window), keyboard events (pressing a key), menu events (selecting form a pull-down menu), or focus events (selecting a dialog window, palette, or text field as the active area, which usually then accepts additional input such as filling in a text field with a word).

Friday, June 11th

  • Chapter 5: The Processing Environment
  • Processing is an integrated development environment (IDE) created by artists for artists.
  • Much of this chapter is devoted to explaining how to use the Processing environment.
  • Processing has three rendering modes: JAVA2D, P3D, and OPENGL.
    • JAVA2D uses Java's 2D graphics library for creating 2D rendering.
    • P3D mode gives you access to a custom 3D engine in Processing
    • OpenGL is a platform-independent library that functions as an interface between your code and the graphics hardware

Week 2 (June 14 - June 18)

Monday, June 14th

Part Two: Putting Theory into Practice
  • Chapter 6: Lines:
  • A single point in Processing is a square with a width and height of 1 pixel. It is in fact a line with the same starting and ending points.
  • This chapter starts with a simple code for a ten point sketch. It then goes through the processes of cutting down the length of the code with a while loop, and then with a for loop to even further shorten it. The code can then be altered again to be able to accommodate any number of Points to create in the sketch.
  • The random(min, max) function generates a random number between the min and max arguments passed to the function.
Today, after talking with Dianna, Jenny and I began thinking about what art we could create using Processing. I went through some example codes in Chapter 6, using dots and lines, beginning to create my own piece.

Tuesday, June 15th

Today I began to develop ideas for a series of artworks that I will be working on for the rest of the summer.
I worked more on a piece made up of dots.

Wednesday, June 16th

I really began my series today. It will be an abstract series, in which I represent an object (a sphere, to begin with) in many different ways, showing off the different forms of representation that Processing is capable of. The idea came from a series of paintings that I began a year or two ago, but never followed through with.

Thursday, June 17th Challenges: Finding the corresponding RGB values to a color that I want. Not all colors are able to represented easily through RGB values.

Choosing RGB values for a color is very interesting when compared to mixing colors, for example, with paint. However, while in paint, all colors come from the primary colors (Red, Yellow, and Blue), Processing uses Red, Green, and Blue, so there are some confusing aspects to mixing/creating colors in Processing.


Friday, June 18th

Today I worked on my Abstract, finalizing my ideas for my project.
I also worked more on my series. I had some trouble today with working the sphere that I created earlier in the week into a loop so that it could be repeated in a grid.

Week 3 (June 21 - June 25)

Processing is slow. When I use loops in my code, which I have to do sometimes, the code has a lot of trouble running. I'm contemplating not using for loops, and having an "uglier" code, but a much faster one (one that actually runs).
This week I've spent really working on a code coming up with spheres on a grid. My goals are to make it aesthetically pleasing, make the code pretty, and to have the code be adjustable to any sized window.
I've been having some internal struggles with art versus code, which are really interesting, as I have to sometimes choose one over the other, or find a way to make both work together.

Week 4 (June 28 - July 2)

This week I had a lot of struggles with the art versus the code. I was working for some time in favor of the art, which resulted in a somewhat long code. Then, once I got close to the final piece that I wanted to create, I took a much closer look at the code and was able to make it much more compact and "pretty". Michelle has been helping me with some of my coding issues (such as the randomizing functions) and she had been urging me to change something in the final piece to make the code nicer looking. She suggested that I make all of the colors chosen randomly to create a truly random code, as she referred to it. I didn't want to do this, though, because I didn't believe there was a way to do this while remaining aesthetically pleasing. However, while looking more closely at my code as a result of her urging, I was able to find a way to make the code a LOT better and it also actually made the final piece a lot better, too. Beforehand, my code produced spheres of random colors, but those randomly colored spheres would be in a predictable pattern in the window. After the alterations, each sphere was entirely randomized in terms of both color AND placement in the window, which, to me, created a more TRULY random code, although in a different way than Michelle originally suggested.

Week 5 (July 5 - July 9)

Tuesday, July 6th

I spent the morning converting my "pieces" version of the spheres into a form that could be multiplied into tile-like pictures. In the afternoon, I worked on translating the "pieces" function into one capable of repetition.

Wednesday, July 7th

Today I worked on the coloring of different spherical representations for the "pieces" version.

Thursday, July 8th

This morning I began by creating one more colored sphere for "pieces". Then, after much frustration, was able to convert the code that repeated the radial gradient sketch into one which could accommodate all of the pieces in "pieces".

Friday, July 9th

Week 6 (July 12 - July 16)

Monday, July 12th

Tuesday, July 13th

Wednesday, July 14th

Thursday, July 15th

Friday, July 16th

Week 7 (July 19 - July 23)

Monday, July 19th

Tuesday, July 20th

Wednesday, July 21st

Thursday, July 22nd

Friday, July 23rd

Week 8 (July 26 - July 30)

Monday, July 26th

Tuesday, July 27th

Wednesday, July 28th

Thursday, July 29th

Friday, July 30th

Week 9 (August 2 - August 6)

Monday, August 2nd

Tuesday, August 3rd

Wednesday, August 4th

Thursday, August 5th

Friday, August 6th

Week 10 (August 9 - August 13)

Monday, August 9th

Tuesday, August 10th

Wednesday, August 11th

Thursday, August 12th

Friday, August 13th