The first semester of coding was interesting, providing me with valuable insights into new ways to make digital artworks by using JavaScript, in particular through the implementation of the p5.js library. The artworks featured in the projects “Perspective” and “Motion” were developed using this approach.
The “Motion” project, in particular, allowed me to explore the creation of moving elements on a canvas by utilizing loops, especially for-loops. This process follows a mathematical approach that uses algorithms and artificial intelligence to autonomously generate complex designs, structures, or systems. Rather than manually defining every detail, developers establish a set of rules, constraints, and input parameters, enabling the system to explore and produce multiple design variations. This concept is called generative design, which is widely recognized for its efficiency in problem-solving and innovation across various fields, including engineering, architecture, and digital art.
In addition to programming in JavaScript, I learned the basics of HTML and CSS, including the principles of website layout, typography, color theory, and other essential design elements.
Additionally, I learned color theory and its applications in digital design. Colors play a crucial role in how a user perceives a website, influencing both its aesthetics and functionality. For example, complementary colors create strong contrast, whereas analogous colors blend together for a more cohesive look. From a coding perspective, implementing color in design requires careful consideration, as different programming languages use various methods to define and manipulate colors.
They differentiate, for example, in CSS, where colors can be specified using predefined names, RGB, HEX, or HSL values and applied to elements through properties such as background-color, border, and color. By learning these color theory principles, programmers can style different elements. Understanding these principles allows developers to enhance the styling and consistency of a webpage, facilitated further by CSS variables (e.g., --primary-color: #ff5733;).
JavaScript extends this functionality by introducing interactivity, allowing users to change colors in real-time. Using event listeners, elements can react to user input, such as clicking a button to change the background with document.querySelector().style.backgroundColor = "blue";. More advanced techniques include JavaScript libraries like p5.js, where functions such as fill(r, g, b) and stroke(r, g, b) allow for more creative and dynamic color manipulations.
The final project on physical computing expanded my perspective on programming by incorporating hands-on applications. This experience allowed me to explore novel approaches to coding while interacting with tangible outputs, reinforcing my understanding of both software and hardware integration.
Overall, the whole semester has changed my perception of coding.
Initially, I considered it an unappealing and rigid discipline. However, I have since changed my perspective on the topic; it has opened up new opportunities for innovative design possibilities. The semester has demonstrated that coding is not only a valuable skill but also a potential career path that I am willing to explore further as a future designer.