Week 3 – Generative Artwork
Concept:
For my generative artwork, I was inspired by the simplicity and elegance of moving lines. The lines move in different directions across the canvas, creating a dynamic and constantly changing composition. My idea was to explore motion, angles, and structure through minimalistic elements. The intention was to create an engaging visual using key programming concepts including functions, arrays, and object-oriented programming. I also wanted to implement an element of randomness, which is a concept we looked into last week. Through this, I believe the artwork can maintain a balance between structure and unpredictability, making each frame unique.
Code highlight:
I needed to ensure that when a line moves across the canvas, it stays within the visible area instead of disappearing off the screen.
// Keeps the lines inside the canvas if (this.x > width || this.x < 0) this.speedX *= -1; if (this.y > height || this.y < 0) this.speedY *= -1;
Future Improvements:
For the future, I would like to include more engaging elements to the artwork. For example, I could include more user interaction, like clicking to create new lines. Also, I would also like to also include more variations in stroke weight so that the final art has more added depth. Overall, this assignment has allowed me to explore generative art through the use of structured randomness, while also using key programming concepts in P5.js.
Creative Reading Response:
To me, a strongly interactive system is characterised by intuitive user control, real-time responsiveness, meaningful feedback, adaptability, and finally, engagement. The system should have a dynamic feeling to it, where the users are able to influence the outcomes in both a seamless and rewarding way. Additionally, I believe the system should also anticipate and predict the user’s needs, be able to adjust to various inputs, and also provide a clear visual or auditory cue to ensure that users effectively understand their interactions. Interactivity is extremely important because it keeps the users invested and engaged with the system. For example, some interactive systems respond to user movement, which creates a personalised experience, making the users more invested and engaged with it. These are principles that can be applied to many disciplines, including education, entertainment, and digital art, as they help make more meaningful and engaging interactions.
For my p5.js sketches, I could add a few elements to improve the user interaction in them. First, I could include real-time input, where I may use mouse movement, touch, or voice commands to affect the visuals. This is connected to adding more dynamic feedback, where the visual or auditory cues respond to user actions. Additionally, I could implement more adaptive elements, where various objects react differently based on the user’s behaviour. Lastly, I could include techniques that introduce elements like challenges or rewards in order to enhance engagement. By implementing these improvements, my p5.js sketches can become more interactive and also more immersive, engaging, and intuitive, which aligns with the principles of a well-designed interactive system.
Challenges:
While I was creating this artwork, I faced some challenges. The first one was that initially, some of the lines would move off the screen permanently, which is not what I wanted. However, I overcame this by making them reverse their direction upon hitting the canvas boundaries. Additionally, at the start it was difficult making sure that I had the right balance between movement speed and line length. In order to ensure that the art was more visually engaging, I experimented with changing colours over time using frameCount % ().
Future Improvements:
For the future, I would like to include more engaging elements to the artwork. For example, I could include more user interaction, like clicking to create new lines. Also, I would also like to also include more variations in stroke weight so that the final art has more added depth. Overall, this assignment has allowed me to explore generative art through the use of structured randomness, while also using key programming concepts in P5.js.
Reading response:
To me, a strongly interactive system is characterised by intuitive user control, real-time responsiveness, meaningful feedback, adaptability, and finally, engagement. The system should have a dynamic feeling to it, where the users are able to influence the outcomes in both a seamless and rewarding way. Additionally, I believe the system should also anticipate and predict the user’s needs, be able to adjust to various inputs, and also provide a clear visual or auditory cue to ensure that users effectively understand their interactions. Interactivity is extremely important because it keeps the users invested and engaged with the system. For example, some interactive systems respond to user movement, which creates a personalised experience, making the users more invested and engaged with it. These are principles that can be applied to many disciplines, including education, entertainment, and digital art, as they help make more meaningful and engaging interactions.
For my p5.js sketches, I could add a few elements to improve the user interaction in them. First, I could include real-time input, where I may use mouse movement, touch, or voice commands to affect the visuals. This is connected to adding more dynamic feedback, where the visual or auditory cues respond to user actions. Additionally, I could implement more adaptive elements, where various objects react differently based on the user’s behaviour. Lastly, I could include techniques that introduce elements like challenges or rewards in order to enhance engagement. By implementing these improvements, my p5.js sketches can become more interactive and also more immersive, engaging, and intuitive, which aligns with the principles of a well-designed interactive system.