Week 4 Response

  • What’s something (not mentioned in the reading) that drives you crazy and how could it be improved?

One thing recently is that in the game I’m playing right now, a Pokémon game, I cannot reorder my card decks even though on so many other UI interfaces I can, it is really frustrating that I cannot do this on an iPhone.

  • How can you apply some of the author’s principles of design to interactive media?

I think they are especially applicable. Keeping in mind that products mus be designed with the end-user in mind, we can use the assumptions people will have about things (link should be pressed) (pages scroll down) as ways to help us decide how we should structure the media we create to make it more accessible for users. It is a matter of stepping into their shoes and thinking about how would someone with no knowledge of the thing they are interacting with do upon first instinct.

week4- reading response

Reading Reflection – Week 5

One thing that annoys me is faulty elevator button designs such as the “Door Close” button that doesn’t work or when floors are numbered in a way that makes no sense. Some others make you swipe a keycard first before you press a floor, but you can’t tell that you’re meant to do that, so you just keep pressing the button and can’t figure out why it’s not working. The easy fix is more obvious signifiers, such as a little light or message that says, “Swipe card first.” This is Norman’s guideline that good design must make things obvious so users won’t need to guess. As for interactive media, I believe Norman’s principles can be applied there too.

For example, in VR, buttons and menus need to behave in intuitive ways—like grabbing objects in the same way you would in the real world instead of using awkward button presses. And feedback is crucial as well. If I tap at something within an application or a game, I expect to feel the effect of the tap in some way, with sound, graphical feedback, or vibration. Norman speaks quite extensively about human-centered design, and my favourites kinds of interactive experience are when things just naturally work the way you think you can do with them—they feel intuitive and do not require interrupting flow for working out what you are meant to be doing.

Week 4 : Generative text

For this week’s project, I wanted to create something with a cosmic theme that felt both interactive and magical. I focused on shades of blue and purple to match the theme and added a twinkling star effect as the background. The core of the project is the interactive bubbles—users can click on the screen to generate bubbles, and each bubble will display a random star sign. Clicking on an existing bubble reveals a short message related to that star sign. The letters of the message then fall down in an effect imitating a meteor shower.

CLICK TO CREATE AND POP BUBBLES

One part of the code that I’m particularly proud of is the way the bubbles and the falling messages behave. When the user clicks on a bubble, the bubble displays a message tied to the star sign. After a few seconds, the letters from the message “fall” like meteors. This falling effect was challenging to create because I had to ensure the letters moved smoothly and looked dynamic without overlapping or bunching together. Balancing the timing and position of each letter took some effort, but I’m happy with how it turned out. It adds a playful touch to the overall design.

I’m also proud of how the bubbles behave when they’re generated. Perfecting their collision and bounce behavior was tricky—it was difficult to make sure they didn’t overlap or get stuck together without affecting their smooth movement across the screen. It took a lot of experimenting to perfect the constraints that controlled their movement, Despite the challenges, I found it rewarding to see how small tweaks could make such a big improvement in the final product. These interactions made the overall experience feel more dynamic and immersive, which is exactly what I was aiming for with the cosmic theme.

class Fortune {
  constructor(x, y, message) {
    this.x = x;
    this.y = y;
    this.message = message;
    this.alpha = 0; // Start invisible for fade-in effect
    this.timer = 90; // Now lasts for 3 seconds
    this.fadeInSpeed = 5; // Controls how fast it fades in
    this.released = false;
    this.floatOffset = 0; // For a slight floating effect
  }

  update() {
    if (this.timer > 0) {
      this.timer--;
      if (this.alpha < 255) this.alpha += this.fadeInSpeed; // Gradually appear
      this.floatOffset = sin(frameCount * 0.1) * 2; // Subtle floating effect
    } else if (!this.released) {
      this.releaseLetters();
      this.released = true;
    }
  }

  display() {
    if (this.timer > 0) {
      push();
      translate(this.x, this.y + this.floatOffset);

      // Glowing text effect
      fill(255, 255, 255, this.alpha);
      textSize(14);
      textAlign(CENTER, CENTER);
      drawingContext.shadowBlur = 10;
      drawingContext.shadowColor = color(255, 200, 255, this.alpha);

      text(this.message, 0, 0);

      pop();
    }
  }

  releaseLetters() {
    for (let i = 0; i < this.message.length; i++) {
      rainingLetters.push(new Letter(this.x, this.y, this.message.charAt(i)));
    }
  }
}


class Letter {
  constructor(x, y, char) {
    this.x = x + random(-10, 10);
    this.y = y;
    this.char = char;
    this.speed = random(1, 3);
    this.alpha = 255;
  }

  update() {
    this.y += this.speed;
    this.alpha -= 3;
  }

  display() {
    push();
    translate(this.x, this.y);
    fill(255, this.alpha);
    textSize(20);
    textAlign(CENTER, CENTER);
    text(this.char, 0, 0);
    pop();
  }
}

Reflections and Future Ideas

Overall, I really enjoyed working on this project, even though it was a bit frustrating at times. Looking back, I feel like I could improve the overall aesthetic of the bubbles by adding a shine to make them look like they’re reflecting light. I’d also like to enhance the appearance of the text since the current font is quite simple. Another idea I have is to experiment with different styles for the falling letters—and maybe space them out more and slow the fall for a better visual experience, to better match the cosmic theme.

Reading Reflection – Week 4

This has been my favourite reading yet! I am a massive ‘good-design’ junkie, and love to appreciate when something is made with the User in mind. In fact, I’m so enthusiastic about this that I spent last summer teaching design principles to high school students in Japan. It was incredibly rewarding to share my knowledge and watch young minds grasp the importance of user-centered design.

One aspect of design that particularly excites me is analyzing the ergonomics of products. I love examining how objects interact with the human body and how they can be optimized for comfort and efficiency. This interest led me to develop my own acronym for designing things for people: SUPREME FAM. Each letter represents a crucial aspect of the design process:

S: Stakeholder
U: Usability
P: Primary User Needs
R: 6Rs (Rethink, Refuse, Reduce, Reuse, Recycle, Repair)
E: Ergonomics
M: Machining
E: Environment
F: Function
A: Aesthetic
M: Materials

I find that using this acronym helps me approach design challenges in a comprehensive and user-centered way, much like the principles Norman discusses in his work.

Norman’s emphasis on the importance of affordances, signifiers, and feedback in design struck a chord. I recall a recent visit to our Art Gallery, where I hesitated to touch an exhibit because there were no clear indications of how to engage with it. The art piece was discussing a jelly-like lizard and there was one on display. However, the lack of signifiers left me unsure whether I was allowed to interact or if I might accidentally damage the artwork. This experience made me appreciate how crucial it is for designers to provide clear cues that guide user behavior. I had a similar experience of bewilderment when I stood in front of a high-tech coffee machine, at a friend’s house, unable to figure out how to make a simple cup of coffee. The machine’s sleek design offered no clues about its functionality, leaving me feeling embarrassed and caffeine-deprived.

One thing that drives me crazy is the design of many public restroom sinks. I often find myself waving my hands frantically under the faucet, trying to trigger the sensor to start the water flow. Sometimes I’m left wondering if the sink is broken or if I’m simply not performing the correct “hand dance” to activate it. To improve this, I imagine a design where the sensor area is clearly marked with a simple icon or color, and perhaps a small LED light that illuminates when hands are detected. This would provide clear signifiers and immediate feedback, reducing user frustration and water waste.

Applying Norman’s principles to Interactive Media, I believe designers should focus on creating intuitive interfaces that provide clear feedback and match users’ conceptual models. For example, a website’s navigation should use familiar speech patterns and provide visible cues about the user’s current location and available actions. Interactive elements should offer immediate feedback to confirm user actions, much like how a well-designed physical button provides tactile and visual feedback when pressed. By incorporating these principles, designers can create digital experiences that are both engaging and frustration-free.

Week 4 Visualization

I created an interactive galaxy simulation where users can draw stars onto the canvas by clicking the mouse. The stars are generated based on data provided in a CSV file, and the galaxy background moves and spirals as part of the effect.

One of the most challenging aspects of this project was working with dynamic data in the form of a CSV file and integrating it into the interactive star drawing. I wanted to make a galaxy where the background constantly moved while the user could add stars by clicking on the canvas. The CSV file had to be loaded, parsed, and used to generate star properties such as position, size, and color. Managing the data flow, especially ensuring that the properties were being applied correctly to each star object, was tricky.

The file contains predefined star data such as position (x, y), size, and color (r, g, b). In the preload() function, the CSV is loaded using loadTable(), which makes the data accessible within the program. After that, in the setup() function, I loop through each row of the CSV and extract these values to create star objects. These stars are then pushed into the stars array, which holds all the stars that will be drawn on the canvas.


for (let i = 0; i < starData.getRowCount(); i++) {
let x = starData.getNum(i, 'x');
let y = starData.getNum(i, 'y');
let size = starData.getNum(i, 'size');
let r = starData.getNum(i, 'r');
let g = starData.getNum(i, 'g');
let b = starData.getNum(i, 'b');
stars.push({
x: x,
y: y,
size: size,
color: color(r, g, b),
brightness: random(180, 255)
});
}

Right now, all the stars are drawn on the same layer, which can make the galaxy feel flat. I would like to improve this by adding a sense of depth—farther stars could be smaller and move slower than closer stars, and also add different layers of stars to simulate foreground and background elements. Also, I would like to improve the galaxy background, it could be enhanced by adding a texture or some glowing nebula-like shapes to give more life and movement.

Week 4 – Displaying text

Week 4 – Displaying Text

For this project, I wanted to make something fun, so I created a random law generator. The goal was to create absurd but still convincing-sounding fake laws that feel like they could exist in some strange town. The program works by randomly generating a town name, a weird law, and an exception. When the user clicks on the canvas, a new random law appears. As for the visual aspect, the law is displayed on a lined piece of paper with a pencil next to it. I added a brown background to make it look like the paper is resting on a wooden table.

One of the main parts of the project is how the laws are randomly generated and displayed:

function generateLaw() {
  let town = random(towns);
  let action = random(illegalActions);
  let exception = random(exceptions);

  randomLaw = `In the town of ${town}, it is illegal to ${action} ${exception}.`;
}

This selects a random town name from the towns array and picks a random illegal action from illegalActions. Then it selects a random exception from exceptions and combines them into an absurd law.

I faced a few challenges I had to overcome, including correctly aligning the pencil. At first, the pencil eraser and tip didn’t align properly with the body, so I had to adjust the x and y positions carefully to ensure the pencil remained vertical. Additionally, the lines on the paper were too bold, which made it feel unrealistic so I had to adjust the stroke colour and spacing.

Overall, I am satisfied with the way this turned out as it was a fun way to practice generative text output in p5.js. I learned how randomization in programming can create entertaining and unexpected results. Additionally, I had another chance to explore loops, which were useful for drawing repetitive elements like notebook lines. However, there are a few things I could improve on next time like including a hand holding the pencil or making the paper slightly curved for a more realistic effect. I also thought of an interesting element I could add, where I may add a “law history” section that can keep track of the previous laws.

Reading Reflection – Week 4

One of the things that frustrates me a lot and is not mentioned in the reading are the air blowers found in public bathrooms. As you might now some of the malls or other public bathrooms for some reason decide to put air blowers instead of paper towels for drying hands. In most cases these blowers can’t detect when we place our hands under and we are left there standing next to to the machine going forwards and backwards with our hands like we are doing some stupid dance choreography. Not to mention how some bathrooms have very strong blowers which will dry my hands faster, but I will go out with a wet shirt. Papers are towels are easier to use, straight forward and do the job much quicker and better than the blowing machines.

In order to avoid my design being hard or unpleasant to use I will apply the following principals to my design. I will make the buttons look clickable and the links underlined or colored differently so it is obvious to the user that button or link is intended for clicking. I will make sure that the user gets immediate response to their interaction of any part of the design and I will place buttons and other interactive objects in places where it makes sense. No hidden menus or buttons which are weirdly colored or hidden so they are barely visible. Some websites don’t do the color matching correctly so the links look like every other word in the sentence and is hard to determine on what to click, I will make sure I don’t do such thing.

Assignment 4 – Reading Response

While reading Don Norman’s “The Design of Everyday Things”, I was heavily agreeing with his notes on poor design making everyday tasks unnecessarily difficult. An example I found myself thinking of was of the commonplace microwave. Every student lounge in the NYUAD dorms has been provided with one, but each has a slightly different usability, making it an irritating chore to relearn where all the controls are. Many have excessive buttons with controls such as “Auto-Defrost”, “Popcorn”, or have random food symbols with no clear indication of what that setting does. The button layout is unintuitive, and can make tasks like setting a power level or temperature more tedious than it needs to be. This design could very easily be improved, by removing unnecessary additions, and making more-utilized features like the power-level or the timer more prominent. The arrangement of buttons should logically reflect their use. If there’s a sequence required (such as first setting a temperature, then a timer), the layout should guide users intuitively from left to right or top to bottom.

Terrible design aside, I found many of Norman’s points relevant in terms of interactive media. A key aspect of IM is the user interaction, and a user will not fully appreciate the functionality of a design if it is very unintuitive to use or tedious to learn. Websites, apps, video games, and even art pieces, should have visual cues that are easy to understand and distinguishable. Design shouldn’t suffer due to functionality, but that doesn’t mean that it shouldn’t be functional at all. Users should be able to recieve immediate, meaningful responses to their actions, not a frustrating mess.

Week 4 Response

One thing that drives me crazy is the automatic doors at the D2 Dining Hall. These doors tend to close too quickly, often shutting in people’s faces and making them difficult to reopen. This creates frustration, especially during busy meal times when students are entering and exiting frequently. The problem seems to stem from poor sensor placement or improper programming of the doors’ timing mechanisms.

This is us:
Tom Trying To Open The Door for 2 minutes - YouTube

To improve this, the sensors should be recalibrated to ensure they detect approaching individuals from a greater distance and remain open long enough for safe passage. A more intuitive design could also incorporate clear signifiers—such as visible sensors or a light indicator—to communicate to users when the doors are about to close. These adjustments would align with Don Norman’s design principles, particularly the importance of discoverability, ensuring that users can easily and safely navigate the entryway.

How it feels to enter just before the door closes:
ArtStation - THE ULTIMATE TOM AND JERRY MEME COLLECTION in Native 4K

In Interactive Media, clear conceptual models help users predict how a system functions. For example, a digital audio workstation (DAW) for music production should visually resemble a real mixing console, helping users transfer their real-world knowledge to the digital interface. If a system’s structure contradicts user expectations, such as a website with illogical navigation, it creates confusion. So, a well-designed user interface (UI) ensures that users do not have to guess where to tap or click. This aligns with Norman’s principles of design, particularly discoverability, feedback, and conceptual models, which are highly relevant to interactive media

Week 4 – Reading Response

What’s something (not mentioned in the reading) that drives you crazy and how could it be improved?

What drive me crazy is the back of a normal wooden HB pencil once the eraser is finished. It is understandable that the metal band was designed to secure the eraser, but what if I excessively used it throughout handwriting and hear a screeching sound, similar to nails on a chalkboard? Nowadays with new materials used to secure erasers on pencils, I believe they should get rid of the metal band on the pencil end.

  1. The metal band itself can feel uncomfortable when touched or pressed against the skin. It’s often slightly sharp and can feel like it’s tugging at your fingers or the paper.
  2. When I have to erase something on a page unintentionally, it would be sharp enough to tear the paper apart.

I wish that these wooden pencils at least replace the metal bands with materials like rubber, silicon since to me, rubber and silicon would give the pencil a soft, smooth feel, and they’d be less likely to scratch or irritate your fingers.

How can you apply some of the author’s principles of design to interactive media?

To apply these principles, it ensures that technology aligns with human needs, making systems more intuitive, efficient, and enjoyable to use. With the use of his principle of affordances, it can help users understand what actions are possible, while signifiers provide clear cues to guide them, like buttons, links, and things the mouse can hover over, so that it can be accessible to the users. To me, a well-designed model for websites and apps helps users predict how a system works. While technology can make tasks easier, it can also add complexity, so designers must carefully balance functionality, usability, and aesthetics to create a smooth and engaging experience.