Week 2 Assignment

THE ILLUSION

CONCEPT

I have a deep fascination for optical illusions, which I began exploring from a young age. Among my favorite illusions is the one depicted below, consisting of multiple squares of diminishing size stacked at various angles. I decided to recreate this illusion infusing it with a rotation effect to make It more appealing.

Optical illusions art, Opt art, Optical illusions

Initially, the squares rotated in fixed positions, but I visualized a more satisfying illusion with a deliberate pattern. After researching techniques, I stumbled upon a video tutorial explaining the application of sine and cosine functions to create intricate patterns. After hours of trial and error its look never failed to create a smile on my face.

Yet, my creation remained monochromatic. To enhance its visual allure, I refined the project by applying color adjustments using the frame count in combination with sine and cosine functions. This introduced a pleasing and seamless color transition, which I extended to the background to enhance its overall appeal.

Code Highlight

translate(width/2, height/2);
  
  for(var i = 0; i < 200; i++)
    {
      push()
      
      rotate(sin(frameCount + i ) * 100)
      
      var r = map(sin(frameCount), -1, 1, 50, 255)
      var g = map(cos(frameCount /6), -1, 1, 50, 255)
      var b = map(sin(frameCount /2), -1, 1, 50, 255)
      
      stroke(r,g,b)
      
      rect(0, 0, 600 - i * 3, 600 -i * 3, 200 - i)
        
      
      pop()
    }

The Illusion

reflection and improvement

I am looking forward to  incorporating user agency into this illusion project, enabling individuals to have control over aspects such as the spiral patterns and color schemes.

Assignment 2 Reflection

I really enjoyed this talk a lot! Casey Reas’ Eyeo talk on chance operations .

One of the main ideas I found very interesting was this idea of randomness. We discussed a bit about this already in class, but I thought I’d share my perspective on the topic. I do believe that in the grand scheme of things  randomness may not actually exist. This can be especially true when discussing anything technology oriented, but from what I interpreted from the talk was something a bit more personal to the individual. To elaborate, I think randomness comes down to the individual’s perception of an event. Sure, if you give a computer a bunch of random coordinates and tell it to draw something, the computer will intake that information in a very logical and structured format and execute said command. What happens to the individual when perceiving this outcome is something quite different. Because our brains aren’t designed to function like computers, this creation by a random combination of digits appears random or out of character. You may even argue that randomness is simply something outside of our expectations or ideas, which once again goes back to what our individual perspectives are.

 

A helpful tip that I received from this video was the importance of structure with an element of surprise or randomness (excuse the redundancy). When creating art through a mechanism such as coding, one must not only understand the structure of building said creation (the logical part of the creation), but also open themselves to experimentation using our favorite word for today, randomness.

 

 

 

 

 

 

Assignment 2 Code

This simple p5.js sketch represents a grid of circles on a canvas. The circles are evenly spaced in rows and columns. The purpose of this artwork is to explore the fundamental principles of drawing shapes using p5.js, such as ellipses, and to create a pattern. While this version lacks interactivity, I believe that this grid of circles can be a starting point for more complex projects, where additional features and interactions can be incorporated to enhance the user experience.

one aspect of the code that I’m particularly proud of is the nested loop structure used to create the grid of circles. This nested loop efficiently iterates through rows and columns, positioning each circle at the correct coordinates on the canvas. This code snippet demonstrates the power of loops in creating repetitive patterns and organizing elements in a systematic way:

for (let x = 0; x < width; x += spacing) {
for (let y = 0; y < height; y += spacing) {
fill(0); // Set the fill color to black
ellipse(x + circleSize / 2, y + circleSize / 2, circleSize, circleSize);
}
}

Embedded Sketch:

Assignment 2 Reflection

Casey Reas’s Eyeo2012 talk provides valuable insights into the field of generative art and creative coding. Several thought-provoking concerns arise as we delve into the debate surrounding this video. To begin, how does Reas’ work, as an example of generative art and creative coding, effect our larger society? This video demonstrates the revolutionary potential of art and technology convergence and invites us to think how such developments might impact our cultural and creative landscape. Is a new era of artistic expression challenging old paradigms on the horizon? Furthermore, the video invites us to consider the evolution of human-technology connection.
Reas’ investigation of algorithms and code as artistic media raises questions about how our cognitive and sensory experiences may evolve as a result of this merger. Is there a substantial shift occurring in the way humans connect with art, as our minds and perceptions adjust to a digitally infused world? In terms of bias, it’s critical to consider if the video paints Casey Reas and the area of generative art in a favorable light. Is it objective in its presentation of the subject matter, or does it lean toward advocacy? Understanding the viewpoint from which the video is delivered can help us evaluate the material and its consequences critically. Moreover, while the Eyeo2012  featuring Casey Reas does not fundamentally alter our beliefs, it does prompt us to consider the possibilities and problems given by the union of art and technology. It ushers us into a world where creativity and algorithms coexist, inviting us to investigate the thrilling possibilities and ethical considerations that await us in this ever-changing sector.

Assignment 2: One More Time

As a kid, my first drawings were of stick figures in magical places. One stick figure would be jumping rope. Another would be reading. Two others would be playing tag. All in a giant flower field, or in space, or in a park. You get the picture. I’m still drawing stick figures now. Make sure to press your mouse down:

I don’t know how much to admit, but who really reads these besides the Professor. I’m already frustrated. I’m keenly aware of how behind my peers I am. I have big ideas but have no idea how to translate them. Between my brother and me, he’s the logical thinker. They say the devil is in the details. And as a lifelong airhead, I’m constantly worried about all the details I’m missing. I feel the consequences of my natural inattention in daily life. I feel the consequences of it when coding.

The best part of my code is the bit I saw on the Internet, linked here: https://happycoding.io/tutorials/p5js/for-loops. And embedded down below:

let lineWidth = random(minLineWidth, maxLineWidth);
  for(let lineY = 0; lineY < height; lineY+=3){
    lineWidth += random(-lineWidthChange, lineWidthChange);
    lineWidth = constrain(lineWidth, minLineWidth, maxLineWidth);
    line(width / 2 - lineWidth, lineY, width / 2 + lineWidth, lineY);

It looks straight out of a Joy Division or Arctic Monkeys poster. I took the time to thoroughly understand what was happening and make my own adjustments, but it’s something I never could’ve written myself as of now. Coding is like writing proofs. When you read a proof, you can go back through the trail of logic and understand how the mathematician arrived at their conclusion. But could you have written the proof yourself? That’s the real test of knowledge.

Never be so arrogant that you think you deserve to have been born an expert. Everyone started at one point, and what they made was bad. It was bad for a long time before it got good. You study the greats. You copy and copy and copy until you’re able to make something that’s truly your own. From here on out, I don’t want to be borrowing bits of code off the Internet. I want to write everything myself. I’ve discovered this whole new world. You have to decide whether some worlds are worth exploring. I want it to be worth it.

Week 2: Reading Reflection

Navigating the debate over what qualifies as art and what falls short of that definition can be a tricky endeavor. In this context, I found great satisfaction Casey Reas’ counter-argument to embark on the arduous task of justifying the legitimacy of computer art. Instead, it confidently acknowledged computer art as a legitimate form of artistic expression from the outset, leaving no room for doubt. What truly captivated me were the captivating and thought-provoking concepts introduced, which prompted me to reevaluate not only my approach to creating art but also the underlying principles guiding my design choices. One particularly intriguing idea that emerged from the talk was the concept of imperfection within symmetry. This notion made me reflect on how I employ such subtle techniques unconsciously in my own work such as incorporating an element slightly off-grid, introducing a color outside the designated palette, or employing a different shape. Perfect symmetry, I realized, may yield expected satisfaction, but it often lacks the element of surprise that truly captures one’s attention. In the case that Casey Reas discussed, where receptors are wired in three slightly imprecise ways, it not only enhances intrigue but also unveils entirely new patterns of behavior.

After listening to Casey Reas’ talk, I’ve come to appreciate the significance of incorporating elements of randomness and noise in computer art. One of the most formidable hurdles I’m facing in my journey as an artist is the ingrained belief that symmetry is the sole path to achieving beauty and aesthetic appeal. However, Reas’ talk, along with the assignments in our class, has illuminated a profound revelation: there are no fixed or rigid formulas for attaining beauty in art. While there’s certainly beauty in structured order, it’s equally possible to discover aesthetic allure in the midst of chaos and randomness, just as Casey Reas eloquently demonstrates.

Yet, as I delved deeper into these ideas, questions surfaced regarding the decision-making process regarding the degree of randomness to include: how random can it be?

HW2: Shooting Stars

Concept:

There is one element in space that intrigued me a lot as a child: meteors (or shooting stars). Seeing a shooting star in the sky made me so happy, as I believed my wishes would come true as soon as I see one. Hence, this assignment was inspired by my dream as a kid to have a sky full of shooting stars!

The sketch tries to capture a bit the essence of a chaotic scene where the dark sky is filled with unending meteors. It’s a simple but effective, interactive (and hopefully immersive with audio!) project where I implemented a range of random sized and colored lines moving across a black background. The legendary Interstellar movie theme song starts as soon as the you press the key. A loop of the scenery also occurs if you press the key “space”.

Link to the version with sound: https://editor.p5js.org/aa8915/sketches/aU8fd7qtB

Highlight of the code:
//stars movement 
  update() {
   
    this.position.add(this.velocity);

    if (this.position.x < 0 || this.position.x > width) {
      this.velocity.x *= -1;
    }
    if (this.position.y < 0 || this.position.y > height) {
      this.velocity.y *= -1;
    }

    //fade out over time
    this.lifespan -= 2;
  }

I’m proud of many parts of this sketch. Yet, I struggled a bit with the bouncing effect (took a lot of research in tutorials and Google pages, The Coding Train videos saved me in this.). I had to ensure that the particles maintain a smooth appearance especially when they bounce off the boundaries. Along the process, I discovered the ‘update()’ function which was responsible of movement, boundary conditions and also fade out of particles.

Final thoughts:

Overall, the whole sketch took a lot of trial and error to be implemented. Unlike the first assignment, this second one took me immense time. I’m still not a 100% satisfied with the shape and appearance of the meteors. I wanted them to have gradient colors but couldn’t figure out this part.  However, I put a lot of efforts on the animation this time which is something I’m proud of. I also love the effect of the new element in this assignment which is sound.

References:

Coding Train playlist: https://www.youtube.com/watch?v=HerCR8bw_GE&list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA

Shooting Star: https://m.espacepourlavie.ca/en/what-shooting-star

Code art (for brainstorming): https://www.code-art.com/

Reading Reflection – Week#2

In his speech at the Walker Art Center, Casey Reas talks about navigating the balance between order and chaos in generative art. We had to do something somewhat similar in our assignment this week, where a lot of us started with a structure, writing code that defined the rules and parameters governing the creation of our artwork, as sort of a form of order imposed on the creative process. We then manipulated these rules to introduce variability and chaotic randomness into the system, allowing for serendipitous and visually striking outcomes.

He also explored how some generative art is dynamic and responsive to user interaction, which leads to the evolution of chaos as the art interacts with its environment. Some of us had this element of controlled chaos in our art as well, seemingly chaotic in response to changing inputs but again, governed by underlying rules.

Ultimately, what I took away from his insight is a welcoming attitude toward the idea that order and chaos are not opposing forces but can coexist with each other in meaningful ways. If you look at my assignment for long enough, the blinding randomness of colorful boxes soon blends into intricate patterns, the artist of which is chaos itself.

Assignment 1: Self Portrait

 

EMOJIFIED

Concept

In this project I wanted to portray myself not just through my physical appearance, but also by showcasing my personality, hobbies, and interests. To achieve this, I initially explored various methods of conveying this information, experimenting with different visual structures. However, I found that nothing captured it better than emojis. I carefully selected emojis that resonated with me and then experimented with their placement on a canvas.

I wanted to convey the idea that there’s a lot happening in my mind, even though it might not be apparent from the outside. To achieve this, I initially tried placing these emojis in a small container that resembled a portal to my thoughts, but it didn’t feel right. Then, I considered stationary placements around my image, but that didn’t quite capture what I was aiming for. Finally, I decided to position the emojis behind my portrait and give them random motion, which better represented my inner thoughts and emotions.

Creating the facial features was another journey of exploration. I stumbled upon the Bezier shape, which, although initially confusing and requiring precise coordination, presented a unique opportunity. To simplify its usage, I developed a function that assisted me in determining the mouse’s location on the screen, significantly saving me time in the process. As a final touch to enhance the project, I chose to replicate the effect of concert lights in the backdrop. Thus, when you click, dynamic lights can be observed moving behind my portrait which were also created using 3 different colored hearts.

Code that i’m proud of

Mouse coordinate function:
  //mouse coordinates
  textSize(18);
  fill(255, 50, 30);
  text("(" + mouseX + ", " + mouseY + ")", mouseX, mouseY);
The face
//shirt
  noStroke();
  fill(201, 73, 73);
  ellipse(189+9, 410+70, 460, 372)
  
  //collar
  fill(135, 43, 43);
  ellipse(189 +9, 260+70, 221, 138);
  
  //neck
  fill(215, 183, 150);
  ellipse(189+9, 250+70, 191, 115);
  
  //neck height
  fill(215, 183, 150);
  rect(94+9, 167+70, 190, 88);
  
  //ear R
  fill(215, 183, 150);
  ellipse(318, 170, 40, 69);

  //ear L
  fill(215, 183, 150);
  ellipse(72, 170, 40, 69);
  
  
   //Hair rear
  fill(0);
  rect(72.5, 10, 245, 170);
  
  //head
  noStroke();
  fill(215, 183, 150);
  rect(79, 10+35, 232, 186);
  
  //jaw
  noStroke();
  fill(215, 183, 150);
  ellipse(195, 200+30, 232, 179);
  
  //right eye
  noStroke();
  fill(255);
  ellipse(250, 135, 79, 41); // white eye

  noStroke();
  fill(66, 33, 11);
  ellipse(250, 135, 40, 40); //pupil brown
  
  noStroke();
  fill(0);
  ellipse(250, 135, 22, 22); //pupil black
  
  //left eye
   noStroke();
  fill(255);
  ellipse(132, 135, 79, 41); //white eye
  
  noStroke();
  fill(66, 33, 11);
  ellipse(132, 135, 40, 40);//pupil brown
  
  noStroke();
  fill(0);
  ellipse(132, 135, 22, 22); //pupil black
  
  //beard
   noStroke();
  
  let x = 12;
  let y = -120;
  fill(184, 156, 128);
  beginShape();
  vertex(79, 178);
  bezierVertex(79, 178, 178, 261, 311, 178);
  bezierVertex(311, 243, 323, 325, 195, 325);
  bezierVertex(78, 325, 75, 257, 79, 178);
  endShape();

  
  //Nose Arc
  noFill();
  stroke(171, 123, 76);
  strokeWeight(7)
  strokeCap(ROUND);
  bezier(159, 195, 181, 218, 208, 218, 230, 195);


  //Nose Tri
  noStroke();
  fill(171, 123, 76);
  triangle(194, 115, 194, 216, 230, 200);
  
  noStroke()
  fill(188, 75, 102);
  ellipse(196, 253, 94, 34);
  
  //Lip Line
  noFill()
  strokeCap(ROUND);
  stroke(133, 53, 72);
bezier(147, 246, 147, 246, 187, 266, 242, 246);
  
  //Eyebrow R
  noFill();
  stroke(0);
  strokeWeight(17);
bezier(90, 110, 105, 94, 142, 87, 166, 94);
  
  //Eyebrow L
  stroke(0);
  strokeWeight(17);
bezier(222, 93, 247, 86, 283, 95, 298, 112);

Sketch

Reflection and improvements:

In the future, I’d like to incorporate more interactive features. One idea is to make the eyes on the portrait move along with your mouse. I’m also thinking about adding different feelings or vibes that can change how everything looks – the background and the emojis – to make the project more interesting and more fun to interact with.

Assignment 2: Casey Reas Reflection

Reality is so insubstantial, sometimes, you don’t even know if it’s really there. Can’t quite trust your senses. Really, you can’t trust your senses at all, and yet, your senses are all you have. I’ve never been able to accept this. It’s a daily pressure on my mind.

Life comes, as Casey read, as a “rude and indigested mass.” And we order it. If you’re a painter, maybe you recognize the patterns of colors or the different hues and tones in the sky. You structure your life around these things. If you’re a writer, every picture inspires a barrage of words. You attempt to organize your surroundings into perfect sentences. You live your life on the line, through lines. However life comes, depending on who you are and what you love, you order it differently. Reality initially seems such a stable thing. But between the painter and the writer, between you and me, everything is different. Our very eyes, though they look the same and work the same, are in completely different worlds. It’s quite lonely sometimes.

I think Casey’s talk was an acknowledgment of the history and heritage that made him. I was only able to have these realizations about reality because of when I was born. Did people in the 1700s have thoughts like these? Or did they never question the stability of the reality around them? They were living in a completely different reality than I am now. One whose face was never questioned, no double glance in the mirror.

As a photographer, I was struck by how similar some of Casey’s geometrical designs were to photograms. Making photograms is the first exercise a film student does in the dark room. You throw random objects on some light sensitive paper and expose it. You end up with the outlines of simple, vague, white shapes on a black piece of paper. Casey said the simplicity of his geometrical designs encouraged you to look closer. If you changed one aspect of the code, the visuals looked completely different. In photograms, because you only see dark and white outlines, you have no idea what the objects that formed them really are. I couldn’t shake the newfound feeling that I was living in a world where all objects are in disguise. Even with the simplest of designs, you must look closer. Perhaps you could find the nature of the whole world there.

Casey visualized human experience in his art. We all begin by living in a world that is stable. And it determinedly morphs into a reality that we feel like strangers in because we realize our lack of control. The grid turns into a maze. Hence Casey’s transition into art where he was not in total control over his images. Much of the art he referenced evoked the “supremacy of pure feeling.” Our feelings mean nothing. They change on whims. They make us feel like Superman or like the world is falling apart from one moment to the next. And yet, our feelings are all we have.  Casey quoted Richter, who admitted “how much better chance is than I am.”

And maybe I can start to come to terms with my existence by acknowledging that it is the push and pull between the chaos of the universe and my attempts to order it that make it so interesting, so beautiful, so wonderful. Maybe I wouldn’t have changed a thing. Living in your own reality gets lonely. But watching Casey flick from one piece of art to the next, I got the sense that we make all these things to temper that. This is what Interactive Media is. Sharing this. Tempering that.