Week 2 – Reading Reflection

One thing that stood out to me from the video was how randomness can be used to generate complexity. Casey talked about how simple rules together with random elements, can give results that feel natural and unexpected. I personally like using randomness in my work because it makes things feel more natural, rather than too structured or predictable. I also found it  interesting how randomness isn’t just about making things look chaotic—it actually reflects real-life patterns from the biological to the mathematical world. Just like in nature, nothing is perfectly placed, and randomness can help simulate that. However, I believe it is best to allow randomness to do its thing in artwork but while still maintaining some control over the whole structure to some extent. Having control or knowledge over art makes me feel more connected to the final structure.  If everything is completely random, it can feel messy, but if there’s no randomness at all, it feels artificial. I choose to settle for balance between the two . A great example Casey mentioned was a piece that incorporated randomness but became more structured when symmetry was introduced. This showed how even a small amount of control can bring order to something that initially seems chaotic. 

Another point that resonated with me was on the use of random numbers in art. He mentioned how random numbers can serve as a tool to introduce variation, but they also rely on a system of rules to guide the outcome. Without some guiding principles, the randomness would lose its purpose. I think this aligns with my approach to using randomness in my work—it’s not just about throwing chaos into the mix, but about using it in a controlled way to show creativity while still achieving a somewhat desired result. In my week two project, I was able to maintain order for the most part of the artwork, while also adding randomness in aspects like the color choices.

Week 2 – Calming Color Waves

Concept

For my art project, I initially aimed to create dynamic helix structures using sine and cosine functions combined with loops. I wanted something dynamic and wavy like in the image below I saw from the Computer Graphics and Art resource document;However, achieving a realistic 3D effect proved challenging. Despite this, my efforts were not wasted—they laid the foundation for my new project: Color Waves. Throughout the process, I discovered my passion for interactive art, balancing control with an element of randomness in the colors.

Code Highlight

I’m particularly proud of how I successfully integrated sine curves and loops to create a smooth, gradual increase in the size of both circles and squares.

for (let x = initial_x + offsetX; x < width; x += spacing) {
  for (let y = initial_x + offsetY; y < height; y += spacing) {
    let size = sin(frameCount * 0.05 + (x + y) * 0.01) * 15 + 30;

Reflection & Future Improvements

Although I didn’t fully achieve my original vision of a helix, I notably improved from my previous project as far as interactivity is concerned.  I also gained valuable insights throughout the creative process. This experience has deepened my interest in digital art, and I’m excited to explore and master 3D figures and objects in future projects.

CLICK 🙂

 

 

Week 1; Self-Portrait

Motivation

I’m not much of a social media person, and even on the platforms I’m on, I’m rarely active. Snapchat, in particular, never really interested me until a good friend recommended it and encouraged me to join. During the account creation process, I had to create an avatar that resembled me. Months later, I joined Duolingo and had to do something similar. I found it fascinating to customize every detail—from facial features and skin tone to hairstyle and outfit. Beyond the fun of creating these avatars, I became curious about the logic and methods behind designing such features. When I learned that our first-week assignment was to draw a self-portrait, it therefore felt familiar, but this time, there were no pre-made shapes or preset colors to choose from. Instead, I was responsible for drawing and coloring everything myself using p5.js. I was genuinely excited about the challenge! I therefore drew my inspiration from my snapchat and Duolingo avatar that I think paint a picture of who I am.

Code

Before coding the portrait, I began by sketching it on plain paper to guide me, particularly with determining precise measurements for the coordinates. I worked on a 400×400 canvas with a light grey background (Greyscale: 220). I started by coding the body and gradually worked my way upward. After much thought about choosing a color that closely represents my skin tone, I decided on RGB(79, 41, 3). To keep the code organized, I grouped related features into separate blocks—such as eyes, glasses, ears, and nose. I’m especially proud of how the eyes, ears, glasses, and mouth turned out because positioning and sizing them correctly took a lot of effort and calculations. For the outfit, I settled for a grey zipper jacket, as grey happens to be my favorite color. To add more aesthetics and also to learn something new; sin curves I decided to add a frame on the top and bottom.

Challenges and Areas for Improvement

The entire process was enjoyable, but I did encounter some challenges along the way. While some issues were minor and I managed to resolve them, others were more complex, and I had to settle for alternative approaches. Some of the key challenges I faced included making curves on the edges of quads, maintaining symmetry, and working with arcs. Additionally, I was unable to implement interactivity in this project, but I hope to explore and implement it in future projects. I aim to enhance my skills in adding interactivity to make future projects more dynamic and engaging. Overall, I really enjoyed the process and look forward to creating more projects. I also appreciate how this journey allows me to continuously improve my JavaScript skills as I move forward.