Zapra – Reading02

Related image

1a. A field of fireflies on a hazy summer night demonstrates a mesmerizing display of effective complexity. While it may appear random and chaotic to the human eye, fireflies exhibit flash patterns unique to their species to communicate and identify one another. When many occupy a single area, I'd liken the complex beauty to that of a symphony orchestra.

Image result for fireflies gif

1b. Locality, code and morality: When it's a question of "which part" is the actual art, I believe that the code and method of display are both encompassed in the definition. I'd liken the creation of generative art to that of printmaking; as art that is built with the intention of iteration, the process of making the matrix as well as the copies are part of the final result. It is developed under the constraints of that medium, and thrives under those unique demands.

gray-Reading2

I saw a really cool video by Veritasium recently about randomness and information theory that I was reminded of by Galanter's article. In it, he talks about the effective complexity of the universe, although he doesn't use that term. After watching the video, I think that the universe is in a pretty good sweet spot between crystal lattice and complete randomness. Maybe because we evolved at this time in the universe, we are well suited for this stage, and that's why I think we're at a pretty good point. But since the universe is trending from the Big Bang (simple) toward total entropy (complex), I think our ability to create effectively complex things might come from how effectively complex the universe is right now.

The Problem of Intent: Why is the artist working with and ceding control to generative systems?

I've thought about this before, and I think randomness is crucial to progress. I think that most original ideas, whether they be inventions or artistic pursuits, come from accidents or random circumstance. Usually we can only work off what we already know, and that usually only can create things we already know. New information, just like Veritasium says in the video above, comes from random chance, because information is randomness at a certain level.

For this reason, I am ceding control to a partially random system. Hopefully this can lead to new insight that I would never have gotten through work that I fully control.

iSob-Interruptions

Observations

  1. This piece has a white background with a square-shaped cluster of short black lines within it. There is a consistent margin along the top and sides of the square, with extra space at the bottom to accommodate the inscription.
  2. The square makes up 93.5% of the width of the artwork, and 91% of the height of the artwork.
  3. The margin is approximately 3% of the width of the square.
  4. The extra space at the bottom is equal to 14.5% of the width of the square.
  5. The square is made up of an invisible 56x56 grid. It's not clear how this would scale, because all the iterations I can find are the same size. Would the number of rows and columns increase with a consistent margin, or would it scale proportionately so there are still 56 rows and columns of larger lines? 56 is about 10% of the square width in pixels.
  6. Each point on the grid is the midpoint of one of the lines. The points are NOT the endpoints of the lines (thanks Golan.)
  7. The length of each line is approximately 3.4% of the width of the square.
  8. The angles of the lines range from 0 to 2π radians.
  9. However, each iteration seems to have a slight horizontal or vertical bias (more lines are oriented with an acute or obtuse angle, respectively, with respect to the orientation of the artwork.)
  10. Approximately 7% of the lines are missing in clusters or 'interruptions'.
  11. The clusters are fairly low frequency - around 3 or 4 large clusters (10+ lines missing) will appear in a given iteration.
  12. In the bottom right corner, one can make out the artist's name and a date penciled in cursive handwriting.
  13. The artist's name is inscribed V. Molnar 20% of the time, V.M. 60% of the time, and missing 20% of the time.
  14. The year is inscribed 100% of the time.
  15. The month is inscribed only 20% of the time.

Reflection

I needed help to discover that the line's midpoints originated from the grid, and not their endpoints. I implemented debug keys to refresh the composition (r) and to color-code the Perlin noise distribution (c.)

The distribution of 'interruptions' in my piece doesn't quite match the original artwork. Though I was able to adjust their spatial frequency to a satisfactory point, Perlin noise creates slightly blobbier gaps relative to the more rectangular or 'jagged' gaps in Molnar's work.

I tried implementing the piece without Perlin noise, by generating a fixed area's worth of randomly placed rectangles (while total area is less than 10% of the composition, make more rectangles), and only rendering lines that didn't intersect with those rectangles. However, this involved a triple for loop that immediately crashed my computer. There is probably a syntax error somewhere. The secrets of Molnar's implementation continue to elude me.

I'm also left with an outstanding question about the scale of the work. As canvas size increases, would Molnar want the number of rows and columns to increase, or would everything increase proportionally?

Screenshots

GIF

Link to Sketch

vingu – Interruptions

link

observations:

  1. the artwork is square
  2. margin around the piece
  3. composed of a grid, around 56 by 56
  4. short black lines of same length
  5. the lines overlap around 1/2 of another line
  6. lines are rotated "randomly"
  7. there is either a vertical or horizontal grain
  8. some holes/ missing lines
  9. the holes are clustered together
  10. around 60% lines

For this piece, I started with a nested for loop to create a grid of lines. In order to replicate the rotations and clustered holes/missing lines, I learned about Perlin noise. It was challenging for me to understand Perlin noise; the main thing I got was that it was a "natural ordered, harmonic succession of numbers".  (it's more smooth, therefore can create "clusters"?) I spent a lot of time on the trigonometry of the lines given the random angle. Then I tested out Perlin noise syntax to see what worked/not. I used a x-offset for random rotation, and another x-offset2 for clustered holes (different offset maps it to different parts of the noise wave). I used a random conditional statement to determine whether it was horizontal or vertical grain (they used different line equations; the sin and cos were switched).  Then I added a noiseSeed() to generate different results every time it is clicked.

I found it difficult to replicate the rotation of the lines. My lines stay close to the grain, while Molnar's lines are more varied. I tried to test different numbers, but the lines ended up too varied and lost the "grain" effect. Molnar's rotation of the lines made the clustered holes stand out more. I admire Molnar's calculated randomness.(also she created this before before perlin noise was created)

clox-Interruptions

02-Interruptions

https://editor.p5js.org/clox/full/fmhoz0-qa

 

 

 

 

 

 

 

 

 

 

 

 

Process:

  1. First I observed the components of the original piece:
    1. uniform black lines distributed across a grid at their midpoint
    2. lines appear to rotate randomly around their midpoint
    3. lines are not always drawn
    4. the gaps in the line grid cluster
  2. Then I tried to break down each observation into steps to recreate this piece
    1. Made a looping function that defines the coordinates of the midpoints for each line
    2. Made a class for drawing a line
    3. Specified the attributes of that line making class:
      1. the line's midpoint
      2. the line's angle (randomly generated)
      3. the line's (ax,ay) and (bx,by) coordinates (calculated using angle and midpoint)
    4. Made a threshold for drawing a line (or not) using Perlin noise function in the for loop that draws the line by calling the line object
      1. I multiplied the Perlin noise value by 0.01 to amplify it
      2. I then chose a threshold that dictates whether a line should be drawn
    5. Finally I used the mousePressed function to refresh the canvas after a click

 

sovid – Interruptions

What I noticed about Molnár's artwork:

  1. The artworks are all squares.
  2. The artwork has a white background with many small black lines.
  3. All of the lines have the same length.
  4. The lines appear to be organized on a grid.
  5. The lines all have random angles.
  6. The left endpoint on the lines on the left edge of the artwork all line up.
  7. The top endpoints on the lines on the top edge all line up.
  8. There is a white border a little bit over the line length.
  9. There are various gaps in the grid but they are all clustered together.
  10. The gaps are not uniform shapes, but are rather spilling into the grid.

My first task was to create the grid of lines - I began by creating two classes - one for an individual point and then one for a line. Then, using a nested for loop, I drew lines of length 22 px. (I had to test various spacing values and line lengths to get as close as I could to the original artwork and that's the value I ended up on) going in the same direction to ensure my grid was working properly. Then, to create the random angles, I used an altered parametric form of an equation of a circle to find a random point on the circumference of a circle with radius lineLength. To create the gaps or "interruptions", I used Gene Kogan's notes on 2D Perlin noise to decide whether or not to draw lines at a certain point on the grid. To reset the sketch, I had to create a new noiseSeed value before I ran redraw() because otherwise the noise function would return the same values each mouse click. At first I attempted to create the gaps without Perlin noise, but having them cluster together in the way Molnár did proved to be very difficult.

My sketch is linked here.

rysun-Interruptions

Observations of Molnar's Artwork

  1. The artwork is square, composed of a virtual grid of n^2 cells.
  2. From a cursory glance, n looks to be roughly 50.
  3. The artwork consists of many short black lines, each occupying a virtual square cell in the grid.
  4. Each line has the same length.
  5. There is a natural disposition to each of the lines; i.e. many of the lines are oriented in the same direction, with outliers turning a random angle from this reference angle.
  6. These "default" directions are cardinal; i.e. they are horizontal or vertical.
  7. The background is white.
  8. Random blotches of lines are absent.
  9. There are several of these blotches, each of varying sizes and shapes.
  10. The lines are just long enough to barely intersect their adjacent neighbors.

My process was this: Create a grid which is nn. Each element in this grid represents a line. Each element in the grid contains two values: both are based on noise(), the first determines the line's angle, the second determines whether or not the line will appear. In an imbedded for-loop, draw each of these lines if their second value permits. Toggle noise variables to get desirable blotch frequency and line angles.

It was fairly difficult experimenting with the noise variables to get a desirable appearance which emulated Molnar's work. Unfortunately, I think my piece has a lot of homogenously-sized blotches, whereas the blotches in Molnar's works vary a lot. I think if I were to reattempt this project, I would instead of having a noise-based value which determined whether or not the line would be drawn by binarily comparing it to another cut-off value, I would make the probability of the line being drawn dependent on the noise-based value. I better appreciate the sophistication of Molnar's work, especially considering that I was able to use built-in functions on my laptop, which is much more accessible and efficient than the proto-computers and printers of Molnar's time.

Link to Project: https://editor.p5js.org/rsunadaw/sketches/3EHxkDIf9

rysun-Reading02

1A. Something I like which exhibits effective complexity would include skyscrapers. Much like crystal lattices, all skyscrapers have an orderly frame of metal bars and walls of concrete to reinforce their static structure, and are in this way have low information complexity. Much like the circulatory or nervous systems of a biological creature, skyscrapers require electrical wiring, air ducts, and plumbing systems to ensure their maintenance. However, the architecture between skyscrapers can be very diverse, so each skyscraper has the potential to look idiosyncratic despite their homogenous structure and necessities. They can range in different shapes, sizes, color, material and style. I would argue skyscrapers fall somewhere between crystal lattices and biological life in terms of their information complexity.

1B. I suppose the issue I anticipate to grapple with the most as I experiment with generative art will be the Problem of Creativity. I believe that, in order to create a program that generates art, I must have an idea of a blueprint, which, when given several variables each of some randomized value, will generate an object mathematically unique but conceptually identical every time. The programmer is responsible for creating the blueprint; the program is responsible for creating different iterations of this blueprint.  The blueprint is the only creative object, not the iterations of the blueprint. My exposure to generative art, unfortunately, has led me to believe that a lot of it (though certainly not all of it) feels, for lack of a better word, soulless, even though all the projects I've been exposed to demanded tremendous effort and thought. For a generative program to feel "creative" to me, it must generate objects which I couldn't have anticipated it creating; where phenomena or patterns arise which I didn't expect; where the program has the capacity to "surprise" the programmer or the viewer. Every randomised variable the programmer includes in the program is still a mark of his own intention; by including this variable, the programmer explicitly expects there to be variations in this variable, and therefore any variation of this variable would only be a consequence of his own creativity first and foremost, rather than that of the computer.

clox-02-Reading

02-Reading:

Question 1A.

This is a plaster cast of an ant hill. Ants are known to have a complex social system that bestows on each ant a certain simple task. On an individual level, it can be difficult to observe how their actions contribute to the colony's complicated organizing principles (i.e. to make underground tunnels, or to organize themselves into a water repellant lattice). I think the effective complexity of an ant colony lies somewhere between fractals/L-systems and Genetic systems/A-life.

 Question 1B.

I am currently working on training a neural network on a corpus of Susan Sontag's (a personal literary 'hero' of mine) writing to create a simple tool that aids my understanding of This idea arose not as a postmodern statement against the empire of "The Author" nor did it come from a desire to make a tool that produces a unique textual artifact. I am making this tool to feel 'closer' to Sontag, to somehow tease out answers to questions I have about her thoughts, her writing practice, in the form of generating new "content" from what she left behind. At the same time, I know that what this tool generates encounters the bowls of oatmeal problem. While the text I have been able to generate is different each time, I am not sure why it is so, or what to 'ask' of the tool to make it generate something more specific--basically, the feedback I get from my neural network is limited, so I must rely on my own knowledge of Sontag's work to guide my tool. This is not really an issue for me since I want this tool to be mediated by a human. Anyways, I am still working on some of the issues around generative text and would love to learn more about the discussions

meh-Reading02

1A. Japanese ceramics could be seen as a great example of effective complexity. Just as other ceramics, basic rules such as what clay to use and what general shape to follow need to be followed to successfully create the ceramics. However, unlike other ceramics, Japanese ceramics shows a much greater tolerance to defects and more appreciation to the unpredictability in the glazing process. It strikes a great balance on the scale between total order and total randomness because it has to conform to certain rules to survive but its beauty actually comes from the unexpected.

 

1B. The Problem of Meaning has been a long-time struggle for me not only when I am producing generative art but also other digital art. The biggest drive for me to learn coding art is for very practical reason without much meaning, and I only assign meanings to the pieces as work progresses. My works also tend to have a more improvisational nature and I like to find out the final answer through experimentations. In the end I tend to believe that even though I use generative system for a very practical reason, the meaning of the works should be determined by the creator not the tool through which art is created.