The Fading Circles

Concept:

I’ve chosen to create a cognitive game for my midterm project, inspired by a warmup routine often used by professional gamers to enhance their tracking skills. This game aims to prime players for high-speed gameplay. In this straightforward yet engaging challenge, a circle appears on the screen, and the objective is to swiftly position the cursor over it and click before it vanishes. At the top of the screen, the game keeps track of successful clicks with a ‘Ball Count’ and records any missed opportunities with a ‘Balls Lost’ counter. The game continues until ten balls are lost, at which point a message will display, indicating the end of the game.

Most Challenging part(So Far):

The most challenging hurdle I encountered was generating multiple circle objects on the screen when the ball count surpasses a certain threshold, say 20. Despite my best efforts, I faced a persistent issue. When the ball count exceeded 20, the code went into overdrive, flooding the screen with hundreds of circles. No matter what approaches I attempted, I couldn’t make proper progress in this regard. Eventually, I made the decision to abandon the idea of introducing multiple circle objects. A friend pointed out that the game was already sufficiently challenging, and adding more objects would likely make it too easy to lose. This adjustment ensures that the game remains an effective warmup exercise, rather than becoming an overwhelming challenge geared towards causing the player to lose.

Week 5: Reading Response

The democratization of computer vision represents a remarkable shift in the accessibility and applicability of this technology. In the past, computer vision was often seen as a highly specialized field reserved for experts in signal processing and artificial intelligence. Its applications were largely confined to military and law enforcement. However, the recent developments outlined in the article have broken down these barriers and opened up a world of possibilities.

One of the most exciting aspects of this transformation is the creative renaissance it has sparked. Artists, designers, and novice programmers can now explore and experiment with computer vision to create interactive, visually captivating experiences. This democratization aligns with the broader trend of technology becoming more user-friendly and accessible, empowering individuals to harness the power of advanced technologies for artistic expression and innovation.

The example of “LimboTime” is a testament to the ingenuity that emerges when individuals are given the tools and knowledge to work with computer vision. It’s not just about the technology itself but also about the ideas and artistic visions that can be brought to life. This democratization allows for a diverse range of voices and perspectives to contribute to the development of computer vision applications, enriching the field with fresh insights and innovative approaches.

Furthermore, the article’s emphasis on the synergy between physical environment design and software development is particularly insightful. It reminds me that successful computer vision applications often require a thoughtful integration of the digital and physical worlds. This holistic approach encourages creators to consider the real-world context in which their applications will operate, leading to more effective and imaginative solutions.

As the availability of computer vision tools continues to expand and improve, I can anticipate even more exciting developments in art, gaming, and beyond. The fusion of computer vision with other emerging technologies, such as augmented reality and virtual reality, holds the promise of creating entirely new modes of artistic expression and interactive storytelling. It’s a testament to the power of technology to empower creativity and democratize innovation.

In conclusion, I think the democratization of computer vision is a transformative and positive trend. It not only broadens participation in the field but also enriches the world of art, design, and interactive media. It signifies a shift towards a more inclusive and innovative future where the boundaries of what is possible with computer vision are continually pushed by a diverse community of creators.

Week 4: Reading Response

This reading had one quote that extremely stood out to me and it was as follows “It is the duty of machines and those who design them to understand people. It is not our duty to understand the arbitrary, meaningless dictates of machines”, I have to admit I used to be one of those people the author describes in the reading that think that design is pretty straightforward and is pretty much based on logical decisions. I didn’t think that there is a human behavioral aspect to it. But it makes sense that designers should be able to understand human behaviors to tailor their products to be most comfortable for users, and not the other way around.

I must say, I had my fair share of frustration using laundry machines here on campus, each machine has a different set of features and It’s really hard for me to memorize every single functionality so I tend to choose a random setting each time. The amount of times I’ve thought to myself if only I was smarter to interpret what the signs mean without having to google the manual every time I’m doing laundry are countless. Therefore, Laundry days are almost always so emotionally overwhelming for me and so dreadful. The laundry machines are only one example of complex machines that tend to make me blame myself for being stupid and not competent enough, that’s why I resonate so much with what the author is saying that designers must understand that design is not just about delivering a working product but also about understanding how easy/hard this product will be for the general public and not to fellow engineers/specialized personnel.

However I cannot deny that multiple questions pop up in my mind about the feasibility of intertwining technology and psychology together for enhanced design. I wonder how combining both fields would affect each other. What sorts of compromises have to be made for Human Centered Design to take place? I know that it’s not about choosing one or the other but rather about integrating behavioral sciences within design, but without doubt there will be consequences. How can designers work on simplifying individual complex functionalities without affecting their overall product functionality, because I believe that having to come up with something logical is easier and more straightforward than having to think about all aspects of the human brain and decision making while designing a product that meets certain criteria. I often think that designers are bound by the rules and criteria set to them to make their product as efficient as possible on a budget, so it makes me wonder how taking human centered design into consideration affects all that.

Week 4: F1 data visualization

The concept:

For this project I decided early on that I wanted to do something related to Formula 1 racing, because I have been so interested in racing and race cars since I was very young. I went on Kaggle.com and found so many F1 datasets. I couldn’t decide what to do with them though. I initially wanted to do a visualization of the lap times over time (1950-2023), but the trends weren’t very interesting so I decided to focus on where the drivers are from instead. The whole concept of my project is to show you a visual representation of the countries F1 drivers are from. When you first run my program, you get a screen of two F1 cars racing towards the finish line, each round they have varying speeds though. When you click on the screen, you see the main screen where a map is displayed with red pins on the countries where F1 drivers are from. When you hover over a pin, it displays the country name and the total number of drivers who have raced in F1 from this country over the years. 

A highlight I’m proud of:

One thing I am really proud of is how I got the pins to work in a way so that when they are hovered, the stats are shown above. I used OOP to define the stats class which displays both the pin on the country (I had to create a csv file with the exact locations manually though) and the text displayed when the pin is hovered over. 

class stats { //pins placed on the countries' location and stats displayed
  constructor(countryCode, x, y, countryCount) {
    this.countryCode = countryCode;
    this.x = x;
    this.y = y;
    this.diameter = 3; // Initial circle diameter
    this.isHovered = false; //boolean variable to know whether the pin is hovered or not
    this.hoveredDiameter = 20;//diameter of the circle when hovered on
    this.countryCount = countryCount;
  }

  display() {
    noStroke();
    fill(255, 0, 0);
    ellipse(this.x, this.y, this.isHovered ? this.hoveredDiameter : this.diameter); // Adjust size when hovered accordingly
    
    if (this.isHovered) {//display the stats above when pin is hovered
      fill(220);
      textSize(22);
      textAlign(CENTER, CENTER);
      text(str(this.countryCount), width - 70 , 15);
      text(str(this.countryCode),width/2 - 50 , 15)

    }
    
  } 
  
  checkMouseHover() {
    // Calculate the distance between mouse and pin center
    let distance = dist(mouseX, mouseY, this.x, this.y);

    // Check if the mouse is within 2 pts of the pin 
    this.isHovered = distance < (this.diameter / 2) + 2;
  }
   
}

 

Reflection and ideas for future work or improvements:

I really enjoyed working on this project because it allowed me to explore new concepts and challenge myself to make it as close to what I had in mind as possible. One thing I really wanted to do though, but I couldn’t get the hang of was to create a smooth transition between the opening screen and the main screen. What I had in mind was to code it so that it would show the opening screen first and when the cars cross the finish line, there would be confetti all over the screen and transition into the main screen, where users can hover over the pins and display the country stats. This is the one extra thing I would’ve loved to include in my code. 

References:

Car and Map clipart: https://www.clipartmax.com/ 

Assignment 5: Computer Vision for Designers Reflection

Have you ever met a genius? I’m grateful to say that I have. You don’t stumble across geniuses very often. He doesn’t live on earth with everyone else. His mind is always in worlds beyond this one. And his computational genius extends to accommodate that. He makes virtual worlds that look like ours. He’s buying a tracking suit soon that will allow him to put himself and other actors in his video games and virtual simulations. It’s quite extraordinary. But the way he talks sometimes–”Very soon, you won’t need people to make movies. You can program them. If you want to make something in the sea, you won’t actually need to go to the sea. You can program it all on your own.” And it scares me. The technology that fueled computer vision is fantastic. It allowed us to put ourselves in worlds that allow us to express our deepest emotions and cognitive dissonances. But as what point do we abandon this world for the virtual one? And what will we sacrifice for it? I don’t want to live in a totally virtual world. My genius friend, he has no problem. As if he thinks there was nothing special about the one we occupy already anyways. And this world, which is never living up to our expectations, which we have no control over. This world, with its chaos and limitations and stopped dreams. Why would you choose this world over the one in your head? And hasn’t that always been humanity’s ultimate vision? To return to the Garden of Eden inside us. To be free. There’s this Arcade Fire lyric: “My body is a cage.” And computer vision and its associated technologies– it’s a way out of that. And I can see that. But even now, as our world grows increasingly digitally interactive, and the lines between technological worlds and reality increasingly blur, we are feeling the effects. And I’m not too sure that they’re all good. The old adage goes you can’t have your cake and eat it too. But have we ever really believed that, for a second?

I really loved the projects the reading used as examples. They reminded me of artistic conceptual pieces I’ve read about in photography and video classes. They’re so original. Such perspective-bending ways of interpreting reality that make you feel the way you do when you see a good design, that “aha!” moment–”life IS that way.” But they’re still innovations grounded in this reality. And in my heart, I was feeling I would rather stick to these methods of using the technology at our disposal. Even pieces like the Suicide Box, however jarring, stabilize me on Planet Earth. At least I’m grounded in this world, with its sadnesses and its issues. I still think, “And this is the story of us.” Soon, we’ll be leaving this world altogether. For better ones? I don’t know. I don’t know if being anxious about that makes me a luddite, short-sighted, conservative.

How far will you go to make a world? For me, I have to just focus on learning how to make even the most rudimentary projects using computer vision. Cute artistic pieces. But for the rest of humanity, for the farthest thinking of us, I think that will be the question on their minds as they delve deeper into these technologies. What is line between art and escape? Between reinterpretation and delusion? Either way, in the end, there is no escaping this life. Same party, different props I like to say. Mary Shelly was asking the same questions writing Frankenstein. The “modern day Prometheus” he’s called. How long can you play with the fire before getting burned?

Week 5 response

Computer Vision X interactive Arts

After diving into week 3’s  paper that tackled the concept of “interactivity,” I couldn’t help but be intrigued by how this idea was put into practice in our current reading. It was like uncovering a hidden dimension of technology and its impact on our daily lives.

What really blew my mind was the revelation that the very first virtual reality (VR) environment came into existence roughly half a century ago. Imagine that, 50 years ago, someone was already dreaming up immersive digital worlds! This historical tidbit adds a layer of perspective to our modern, high-tech world and reminds us of how far we’ve come.

As the author sifted through various projects in their analysis, it became evident that there was a noticeable surge in the variety and scope of projects in the early 2000s. This period seems to have been a turning point where technology started enabling a broader range of interactive experiences, and that’s a testament to the rapid evolution of our digital landscape.

What truly captured my imagination, though, was the way computer vision revolutionized interactive art and computer-based interactions, which the reading explained through numerous real-world examples. It’s fascinating to witness how technology, particularly computer vision, has transformed the way we engage with both art and machines. The reading was like a window into a world where the boundaries between humans and technology blur, opening up exciting possibilities for creativity and innovation.

In essence, these insights not only highlight the evolving nature of technology but also underscore its profound impact on our lives, from the way we define interactivity to the immersive experiences we now take for granted in the digital age.

Week 4 – Reading response

It is sometimes unfair to expect a user to read a manual before using our application. I agree with the author that not everything has to be completely intuitive, such as an airplane cockpit does not have to be designed to be easily usable by an untrained passenger. However, complexity should not be added to objects that simply do not require it. A door should be easy to figure out, and it should be designed from an average layperson’s POV. What would an average person do? Would they pull/push the door? If so, then the door should be designed with that in mind, unless there is an actual need for using a non-conventional approach to design like having to tap the door three times for it to open. Or if you’re designing an escape room, where the intention is inverted on it’s head — you try to design something that is difficult to use.

From the perspective of designing my p5.js sketches, I think this idea of intuitiveness and familiarity comes into play. Would a user know to press specific buttons on their keyboard if there is no instruction to do so, without reading the code ( in this case, why should they read the code before running our sketch? ). Yet we must not treat the users as completely incapable and instruct them every single step of the way. Personally, I think it should be safe to assume that users would move their mouse around a sketch, and maybe press the mouse buttons a few times, thus I personally think that instructions are not needed for mouse interactions , but should be there for keyboard interactions. In an ideal world, instructions should be there for what the user is ignorant of, and instructions should be left out for what users know as it just adds clutter.

Week#4 – reading reflection

I think this reading accentuates how finicky product design can be. There are so many different fields a product must fulfill e.g., ergonomics, optimization of function, aesthetics, interactivity/ user experience, whilst staying in keeping with budget constraints, for it to be considered optimal. It also highlights the difficulty of remaining in balance. It shows that we are always teetering towards one extreme, in this case, it may be logic with user functionality and aesthetics. I think NYUAD serves a primal typification of this struggle with remaining in balance. The long path winding down to D2 faces a “major” yet aesthetic obstruction: an elevated grass platform with chairs and tables and patio umbrellas(?) deliberately placed in the middle of an open path leading straight to the entrance of the dining hall. It’s what I can only describe as a deterrence. This debate has surfaced in NYUAD’s Room of Requirement whereby multiple people have criticised its hostile architecture. I feel as though this may also be applicable to the design of John Sexton’s Square, although this may be more of a subjective, personal critique.

Another thing the reading does profoundly is emphasise the importance of psychology in all aspects of design. Human centered design is centered around and relies largely on our concise understanding of human psychology and behaviour. Furthermore, such a study can be applied to increase commercial sales which also spotlights its importance in commercial businesses. This reminded me of deliberate aesthetic/ functionality designs of architecture as a means to maximise profit, for example: casinos. The windowless walls essentially inhibit one’s perception of time, and maze-like layouts ensure patrons serendipitously discover new games at every intersection. Overall, I think its fascinating how a singular area of design can encompass and call upon diverse disciplines e.g., maths, psychology, engineering, arts. In this sense, I think it perfectly encapsulates the intricacies that are necessary and play a paramount role in this specific field.

Reading Reflection: Week 4

In this chapter, Norman emphasizes the importance of clear and effective design in enhancing user understanding and interaction with a wide range of products, systems and environments. He highlights the immense significance of crafting designs that not only look appealing but are also intuitive, user-friendly and aligned with human behavior and capabilities.

In today’s rapidly evolving technological landscape, it becomes essential to prioritize effective design. We seek natural and frustration-free interactions with machines. No matter how technologically advanced a product may be, its true value lies in its user-friendliness.

The reading reminded me of my freshman year when I had to do laundry for the first time. The different settings left me so confused and frustrated that I left the laundry room altogether, and then I had a friend come in who helped me. It is a stark reminder of how we crave simplicity and intuitive design in our daily interactions.

The reading also raised a question for me: How can we ensure that as emerging technologies push the boundaries of advancement, they do not compromise on user-friendliness? Striking a balance between innovation and usability becomes paramount in an era where the rate of technological change is relentless.

Week 4: Loading Data

For this assignment, I opted to create a rainfall data visualization for my hometown, Islamabad. The motivation behind this choice was because it serves as a nostalgic reminder of the lush, rainy climate in Islamabad, which I truly miss in contrast to the super hot weather here in Abu Dhabi.

Initially, I began with a simple bar chart. However, during my research on data visualization techniques, I stumbled upon Chart.js, which I decided to incorporate into my assignment due to its ability to provide a visually engaging representation of the data. I sourced my dataset from Kaggle, which contained various columns related to weather, including minimum and maximum temperatures. However, I chose to focus solely on the column that documented the maximum monthly rainfall in Islamabad.

Here’s how my barchart looks like:

Working with the dataset was relatively straightforward, as I had prior experience working with CSV files. One aspect of my code that I particularly like is the part dedicated to visualizations.

function createChart() {
  let options = {
    type: 'bar',
    data: {
      labels: months,
      datasets: [
        {
          backgroundColor: originalColor, // Set original color
          borderColor: 'rgb(0, 50, 100)',
          borderWidth: 2,
          barPercentage: 1,
          data: rainfallData,
          label: 'Monthly Heaviest Rainfall (mm)',
        },
      ],
    },
    options: {
      title: {
        display: true,
        text: title,
      },
      legend: {
        display: false,
      },
      scales: {
        xAxes: [
          {
            ticks: {
              autoSkip: false, // Prevent auto-rotation
              maxRotation: 0, // Set rotation angle to 0 degrees (horizontal)
              minRotation: 0, // Set rotation angle to 0 degrees (horizontal)
              fontSize: 8, // Adjust the font size of x-axis labels
            },
            categorySpacing: 40, // Increase the spacing between category (label) items
          },
        ],
        yAxes: [
          {
            scaleLabel: {
              display: true,
              labelString: 'Monthly Heaviest Rainfall (mm)',
            },
          },
        ],
      },
   
        }
      },

I’m pleased with the feature that displays the corresponding rainfall value when hovering over each bar. This functionality simplifies the process of interpreting the chart, eliminating the need to constantly refer to the x and y axes.

Overall, I’m satisfied with how this assignment turned out. However, in future projects, I’d like to incorporate more interactivity to make the visualization more engaging and enjoyable for users.