Assignment 3: The Art of Interactive Design Reflection

Crawford thinks of interactivity the same way I measure consciousness. I believe rocks are conscious–just less conscious than we are. I describe consciousness as “witnessing.” Everything is witnessing each other. A rock is witnessing you just as you are witnessing it. And the more complex your way of “witnessing” is, the more conscious you are. Similarly, Crawford measures the interactivity of an exchange based on how complex it is. He says you achieve the highest level of interactivity whenever you have a good conversation. And I agree.

There have been people I tried over and over again to have good conversations with. And it never worked. Some of the best conversations of my life were with strangers on the street. I’ve thought hard and often about what makes a conversation good. And I’ve settled on the idea that it’s a mutual acknowledgment that you’re speaking from the same spiritual mycelium. A look in your eyes that says, “You feel as I feel. You speak from the same hiding place I speak.” And you can see in their eyes that they know how rare this is too. That they’re acknowledging what a relief it is to find that, having trudged for miles, they’ve finally stumbled across another fisherman at the bank of the same river. They’ve found you. One of my favorite Fitzgerald quotes goes: “Let your convictions be, not caves in which you hide, but hills upon which you stand.” And during a good conversation, you feel yourself dancing on that impossible hill.

All of this got me questioning, thinking about interactivity in Crawford’s terms, can media actually be interactive? As interactive as a good conversation? How can you interact with installations, with mere objects, as intricately and intimately as you do with your closest friends? But the thing is, I have been moved by interactive installations as profoundly as I have been moved by special conversations. And I concluded it’s because the artists of those particular installations poured themselves into what they had created. As if their art was a placeholder for them themselves. Some incarnation. By interacting with what they had made, I was touching their head, their thoughts, their visions, their dreams. That’s why we love the musicians we love. When we hear a particularly moving song, whether it’s by Kanye or Bob Dylan, it’s a strange kind of magic that happens when we realize that they know us down to the bone. We ask, “How do you know me when you have never met me?” And when we’re interacting with what someone has created, in a very important way, we’re interacting with them. Crawford said that opening a refrigerator door is an exchange with extremely low interactivity. But for the child who obsesses over opening and closing the refrigerator door over and over again, I believe, in their case, it is a highly interactive experience because they truly believe the refrigerator is alive.

Crawford goes into the differences between regular designers and interactive designers. Bruno Munari is one of the greatest designers of all time. I love a quote by him that goes: “There is no such thing as a personal style in a designer’s work.” Of course, no designer in the world can achieve this. But they try pretty damn hard. I believe the principle difference between regular designers and interactive designers is that the former’s objective is to put as little of themselves into their designs as possible. Interactive designers aim for the absolute, complete opposite. They demand: “See me.” And if what they made was good enough, you can acknowledge that you did.

But songs do this. Movies do this. And those weren’t interactive enough for Crawford. Maybe it’s only when installations seem to say: “Let me try to see you” that they meet the picture in his head. I got the sense that Crawford was relegating a lot of his understanding of the medium to the certainty of the future. I understand him very much in this aspect. I am never able to say what I am trying to say until the future says it for me. I’m no prophet.

HW3: I am Become Death

Concept:

A movie that I watched this summer and which stuck with me was “Oppenheimer”. Specifically this parallel:

Oppenheimer – 2023
In this assignment, I wanted to recreate (or actually just mimic as much as possible) the intense dynamic of the explosion scene from the movie. The idea of this generative art piece is simple: orangish shade particles that stem from the center of the canvas, creating a visually striking spiral pattern with a depth of view. The soundtrack in the background (press key enter to hear it), sets tense dynamics as well. You can loop the artwork by pressing the mouse.

SKETCH:

Instructions:

-Click on key Enter for sound.

-Click on mouse for loop.

Highlight of the code:

class Particle {
  constructor(x, y, col) {
    this.position = createVector(x, y);
    this.velocity = createVector(0, 0);
    this.acceleration = p5.Vector.random2D().mult(random(0.1, 0.5));
    this.color = col;
    this.alpha = 255;
  }

  //This method updates the particle's position based on its velocity and decreases the alpha value over time resulting in a fading effect.
  update() {
    this.velocity.add(this.acceleration);
    this.position.add(this.velocity);
    this.alpha -= 1;
  }

  //This method draws the particle as an ellipse with the specified color and position.
  display() {
    fill(this.color);
    ellipse(this.position.x, this.position.y, 8, 8);
  }

  //This method checks if the particle is finished which occurs when its alpha value becomes less than 0, indicating it has faded out.
  isFinished() {
    return this.alpha < 0;
  }
}

This part of the code was definitely the most challenging to figure out, thanks to OOP. This ‘Particle’ class, is basically the heart of the piece. Here I figured out the movement, appearance, fading effect and the behavior of each particle. First starting with the constructor, ‘this.position’ makes the position of the particle a 2D vector, ‘this.acceleration’ is a random 2d vector that makes the movement random. Then we have the method ‘update’ where I controlled the simulation of the motion through adding ‘this acceleration’ to ‘this velocity’, changed the particles’ positions by adding ‘this velocity’ to ‘this position’ and then reduced 1 in each frame in order for the particles to fade out gradually. The struggle in this part came from the fact that I didn’t know how to do good calculations in order for everything to work. I relied on trial and error until I figured out which number where and the properties. Again, I watched a lot of The Coding Train to figure out this part.

Reflections:

Casey Reas’ talk influenced a lot my perception of art. I started to find meanings and links to images, in abstract patterns with random elements. If someone told me two weeks ago that I’ll create a random spiral pattern and perceive it as a movie scene, I wouldn’t have believed it. While I still think symmetry beautiful, I also find chaos and noise aesthetic now.

Week 2- Loops

Qazaq heritage

My concept: Ironically, I connect with my culture more tightly while being abroad by listening to Kazakh songs, cooking traditional foods and simply wearing clothes in a national style. I am pretty sure that there is a psychological reason for this. As I am abroad now, this feeling is again part of me, inspiring me to create something related to my culture and nation. Immediately, the national ornament in animalistic style came to my mind, which I wanted to illustrate as all our traditional pieces of art and clothing include ornaments of different types. Then, it felt like the ornament was not enough, so I wanted to add another symbol, which has a significant cultural value- Shanyrak (the top backbone of the yurt). For the nomadic nation, the yurt was the transportable house for every season of the year and shanyrak was the essential top part of it. Although we don’t live in yurts anymore, shanyrak still has its cultural significance nowadays. It is even illustrated in the center of the national emblem, symbolizing the unity, peace, family well-being, and common home for all people living in Kazakhstan. 
Fig 1. the ornament. Source: 94f8734cfd84b69702e6f58f422c16cb.jpg
Fig 2. The shanyrak. Source:
ae69d0f81abd14305022e8706d34d6a6.jpg

A highlight of the code I am proud of is the nested for loop code itself because I could create several ornaments just with the three lines of the code (not considering the lines needed to draw the ornament). In the previous assignment, I was copy-pasting the same code multiple times with a slight change in the x and y axes to multiply the same shape. The for loops made the task easier this time. 

for(let x=5; x<width-5; x+=70) {
    for(let y=20; y<height-5; y+=60) {
      noStroke();
      fill(100, 100+mouseY, mouseX+100);
      beginShape();
      vertex(x, y);
      vertex(...); //here many lines of vertex coordinates
      vertex(x+10, y+10);
      endShape(CLOSE);
    }
 }

Embedded sketch: Please move the mouse and click on the sketch.

Reflection and ideas for future work or improvements: If you click the mouse, the word “CULTURAL HERITAGE” appears. However, the initial idea was to make this phrase move in a circular path around the shanyrak continuously. Although I could make all other simple shapes such as ellipses and rectangles rotate along the circle, I couldn’t do the same with the text. I have to learn the functions of this and try to realize my idea. As this idea took me several hours and wasn’t successfully completed, I consider it a challenge to include it in future work. 

Week 2- Reading Reflection

Reflection on “Eyeo2012 – Casey Reas”

The idea that chaos and order can interact with one another to create something unique is what interested me the most. Pure randomness causes the disorder, while the strict rules limit the imagination by creating predictable patterns. Because of this, the application of randomness to the basic rules is the golden line, which allows to have the unpredictable details of the predictable general image. However, the way the computational designers achieve this randomness through the pre-written variables, book of ‘random numbers’, etc. raises the question of the extent to which randomness is achieved through coding. As a piece of evidence for that, the variable ‘random’ itself can be taken. In Python, this variable is referred to as “Generate pseudo-random numbers” where the ‘pseudo’ already means that numbers generated are not really random, but follow the pattern and various distributions. Moreover, the author also provides an example, claiming that the random images created actually tend to have patterns such as all moving in one direction (monotonic) or surrounding the pivotal points, etc.

The author slightly changed my perspective on the abstract art style with the use of geometric figures and random paints. In this case, I am referring to Kasimir Malevitch’s “Black Square”, Piet Mondrian’s “Composition II in Red, Blue, and Yellow” and Cy Twombly’s “Leda and the Swan” and other similar works. Before it was tough for me to understand the message of abstract art as it cannot be associated with a particular real-life object or situation in most cases. However, this is what makes these artworks unique as they don’t follow the rules, don’t reflect reality, and don’t carry one specific message, giving more freedom to artistic expression. The author claims that these artworks became popular particularly because of their randomness as the authors moved away from realism by refusing to follow the rules. The political situation mentioned in the video as the influence of the world wars is an interesting aspect for me as these artworks seem to be a kind of political movement in their own way because they convey the idea of independence, abundance of strict rules, and creation of their own reality opposed to the order created by politicians. Because of these aspects, I think that I started noticing the beauty of abstract art. 

Week 2: Reading Response

I have always thought of code as something that requires precision and organization, having structure and rules that require following. When I think about art, It’s quite the opposite. I see art as something that is unstructured and chaotic, messy.

At first thought, I associated digital art with coding. I started thinking of all these rules and constraints that I should follow, but after watching Casey Reas’s talk, I started questioning my assumptions. Can art be structured? Can coding be uncontrolled? Can the chaos of art and the structure of code be intertwined? Is it possible to let go of our control and embrace the outcome? Am I limiting my capabilities by creating imaginary categories to place different art forms in?

I was surprised to learn that sometimes the power of chaos can lead to better outcomes when it comes to digital art. I was surprised to know that there are people who are studying the art of creating generative art pieces using the simplest of codes and iterations to generate small randomized shapes that add up to build the whole picture. But most importantly, I learned the idea of embracing chaos and randomness through structure. By making a series of calculations, you can allow your program to generate a randomized artwork that you cannot control, but can build upon. I was extremely inspired by the “Fractal Invaders” piece, which plays on the fact that randomly placed squares of white and black that seem like nothing when duplicated using symmetry, can be interpreted by our minds as faces and symbols. 

This talk certainly left me curious to explore the topic of creating art using the simplest ideas but adding on a layer of randomness, symmetry and letting go of the idea of order and precision. I am amazed by the idea of embracing the territory of controlled randomness/ chaos. The talk piqued my interest in exploring more examples similar to the ones shown in the video and get inspired from them to enhance my future work. 

Reading Reflection – Week#3

In the first chapter of The Art of Interactive Design, Crawford attempts to define the word interactivity, which he feels is misunderstood due to its popularity. Instead of defining it in technical terms such as ‘input, process and output’, Crawford sees the more human side of interactivity: listening, thinking, speaking. For him, interactivity comes from reciprocal action between two actors, an action that, in his words, has blood in its veins, or one that imitates life. He draws a distinction between the degrees of interactivity, claiming that it is more like an ever-changing variable than a boolean property; there are high interactivities and low interactivities. For it to be classified as high interactivity, it should perform all three steps, namely listen, think and speak. If it fails in any one of these steps, it falls short and falls under the category of low interactivity. Crawford also differentiates between interactivity and reaction, arguing that mere reaction to forms of media such as books and films fall short of the true definition of interactivity since they do not carry out all of the three steps.

Crawford points out the different approaches to solving a problem by ‘user interface people’ and ‘interactive design people’, mentioning how the ‘user interface people’ seem to be concerned more with the objective side to the solution while the ‘interactive design people’ bring to the table an artistic way of solving the problem. Crawford attempts to unite the two peoples by suggesting that good interactivity design integrates form with functionality, and that they are far from being mutually exclusive.

Crawford is self-aware of how his definition might not resonate with everyone and acknowledges that he cannot claim to provide a definition that truly encompasses everything interactivity is about. His ideas prompted a reconsideration of what I define interactivity as. However, I do think that the degree of interactivity does not matter as much as the thought behind it – which, essentially, is an unspoken understanding between the artist and the beholder, a conversation that might never have been had if not for the interactive art. After all, why, as long as it listens, thinks and speaks, should one compartmentalize the degree of art at all?

Reading Reflection- The art of interactive design

Crawford underscores that effective interactive design does not entail imposing the creator’s vision onto the user but, instead, involves crafting experiences that cater to the user’s unique needs, desires, and motivations. This shift prompts designers to step into the user’s shoes, to anticipate their actions and responses, and to create an experience that is not only engaging but also profoundly meaningful.

Crawford’s metaphor of interactivity as a conversation is profoundly illuminating. He likens interactive systems to an ongoing dialogue between the user and the system, where each action and response shapes the trajectory of this dialogue. This perspective reimagines interactivity as a dynamic exchange—a two-way thoroughfare in which the user’s input carries as much weight as the system’s output. Grasping this metaphor is fundamental to designing interactive experiences that are not only captivating but also highly responsive and adaptive.

Crawford introduces the concept of the “cybernetic loop,” a representation of the iterative nature of user interaction. The cybernetic loop encompasses the user’s action, the system’s response, the user’s perception of that response, and the subsequent action triggered by that perception. This construct underscores the ever-evolving, dynamic nature of interactive design, where each user interaction contributes to an ongoing and continually evolving discourse.

While this chapter highlights a significant shift in perspective, some phrases came across as more provocative than humorous, particularly concerning the subjectivity topic. Nevertheless, Chris Crawford’s fervor for the subject matter imbues his writing, inspiring readers to deeply reflect on their approach to interactive design.

Week 3 – Reading Reflection

Chris Crawford’s reading on what defines interactivity was both frustrating and informative. Personally, I wasn’t a big fan of the pre-internet sense of humor presented in the reading. It often felt like Crawford was overlooking levels of subjectivity and nuances regarding interactivity in mediums such as books and movies. These aspects could have been explored more thoroughly instead of being briefly touched upon. However, the reading provided valuable insights into how interactivity became part of the collective technology lexicon, how it was distorted by various products, and the potential it still holds for the future.

I agree with the idea of interactivity being just a feature of a piece of art or a product, it does not inherently imply merit, which Crawford seems to propose as well. I thought the gradient of interactivity from zero, low to high seemed fruitful, however Crawford’s inisistence on an objective understanding of interactivity was honestly frustrating, but atleast he played into the fact that i cant argue with him through the book.

I found the distinction between a user experience designer and an interactivity designer fascinating. The idea that graphic designers who primarily focus on form and then implement function are not considered interactive designers makes sense. Interactivity requires an equal level of emphasis on both form and function from the beginning in order to provide a “good” interactive experience.

Overall, I found the reading to be thought-provoking. It made me reflect on the importance of interactivity in technology and helped me define my own understanding of interactivity, whether it is “two actors that listen, think, and speak to each other,” or something different.

Assignment 3- Fireworks!

Concept:

The concept behind my code is a joyful celebration brought to life through a fireworks simulation. It all started with a personal inspiration – something that never fails to make me happy. I wanted to capture that happiness and express it through code, turning it into a dynamic and interactive fireworks display.

At first, my code was a simple attempt at creating a fireworks animation. It lacked the functionality to launch fireworks interactively. It looked like this:

However, during my programming class, I learned how to incorporate user interaction. Now, when the mouse is pressed, the fireworks are generated. So, my code has evolved to include this interactive feature.

 

Highlight of Code:

The update() method in the provided code is a central part of the fireworks simulation. It controls the behavior of a firework object based on whether it has exploded or is still ascending in the sky.

update() {
    if (this.exploded) {     // Update particles if the firework has exploded
      for (let i = 0; i < this.particleCount; i++) {
        this.particles[i].update();
      }
      if (this.particleCount === this.particleEnded) {
        this.alive = false;
      }
    } else {                 // Accelerate, move, and draw the firework until it explodes
      this.accelerate();
      this.move();
      this.draw();
      if (this.vy >= 0) {
        this.explode();
      }
    }
  }

if (this.exploded) { … }: This condition checks whether the firework object has already exploded. The code within this block is executed if the firework has exploded..

Inside this block, there’s a for loop that iterates through all the particles of the firework’s explosion, which are stored in the particles array. It calls the update() method for each particle. This is responsible for updating the position, velocity, and appearance of each particle as they move away from the explosion point.

After updating the particles, there’s another check to see if the number of particles that have ended (burned out) is equal to the total particle count (this.particleCount). If this condition is met, it sets the alive property of the firework to false. This means that all the particles have completed their animation, and the firework is considered no longer active.

else { … }: This section of the code is executed when the firework is still ascending in the sky and has not yet exploded. It corresponds to the earlier phase of the firework’s motion.

this.accelerate();: This method is called to apply an acceleration to the firework. Typically, this acceleration represents the effect of gravity, causing the firework to fall faster as it ascends.

this.move();: This method updates the position of the firework, simulating its movement upward in the sky.

this.draw();: This method is responsible for drawing the firework on the canvas, typically as a line representing its trail as it rises.

if (this.vy >= 0) { … }: This condition checks whether the vertical velocity (vy) of the firework has become non-negative, indicating that the firework has reached its peak height and is about to explode. If the condition is met, it calls the explode() method to initiate the explosion phase.

Reflection:

The code successfully achieves the initial concept of creating an interactive and visually appealing fireworks display, effectively simulating the behavior of fireworks with a personal touch through mouse interaction. While the code does a decent job at creating realistic fireworks, there’s room for improvement in enhancing visual effects, such as diverse particle shapes, a broader range of colors, and smoother transitions, to make the display even more captivating.

For future work and improvements, several exciting possibilities exist. These include experimenting with enhanced particle effects, introducing a wider variety of colors and color transitions, adding sound effects to complement the visuals, allowing for the simultaneous launch of multiple fireworks, implementing user-configurable parameters for customization, enhancing the visual background for a more immersive environment, optimizing performance for better handling of a large number of particles