Experiment 2 - Stars/Generative Design
Imitate
To develop artistic creativity in coding, it can be helpful to start by studying and learning from existing examples. This might involve reviewing code written by others, analyzing successful techniques, or even copying and modifying code to better understand how it works. By imitating and learning from existing techniques and strategies, we can gain a better understanding of what has been done before and what is possible, and identify opportunities for improvement and innovation.
The original code (P_2_2_5_02) was taken from a generative art sketch in which circles were packed together. To create an interactive and visually appealing composition, the code made use of key commands, mouse interactions, and SVG imports. I studied the original code carefully during the imitation phase to learn how to import SVG modules, place circles without overlapping, and implement interactivity. I tried to focus on understanding how mouse interactions work, the reasoning behind the circle-packing algorithm, and how SVG images are used to create visual elements.
Integrate
After learning from existing techniques and strategies, we can build upon that foundation by combining elements from different sources. This might involve combining elements from different programming languages, using libraries or frameworks in new ways, or bringing together techniques from different fields or disciplines. By integrating and combining elements from different sources, we can create something new and unique.
I then extended the original code by turning the circle-packing idea into a dynamic sketch that draws stars which also fits the theme of my website. I added size variations, colour changes, and star-drawing functions in place of the circle-drawing logic. Users still have control over the creative process because the original mouse interactions and key commands for freezing have been kept. I documented my modification of the circle-drawing logic to generate stars during this integration phase. But I also emphasized code changes, like adding the Star class and adding methods for updating size, jittering, and drawing. Reusing key commands to modify the mouse interaction area, change the background color, and freeze was part of the plan for my integration process, which I followed through with.
Innovate
Finally, we can introduce new or original ideas to our coding process by thinking creatively and pushing the boundaries. This might involve developing entirely new techniques or approaches, or using existing techniques in new and creative ways. By innovating and introducing new ideas, we can create art that is truly groundbreaking.
During the innovation phase, the circle-packing sketch was changed into a dynamic star art generator in order to introduce a new concept. I was able to create a distinct visual style which was introduced by the inclusion of jittering, size variation, and the star shape itself. Users could create colourful, animated star patterns with interactive elements thanks to the original code's adaptation, offering a novel and imaginative experience which was something I was passionate about delivering. I added new features to the original code, documenting how they worked, like the Star class's unique shape, dynamic size changes over time, and the addition of colour variations. I felt that I was able to demonstrate how the initial concept's adaptability was achieved by highlighting how the original code served as a basis for producing a completely different visual result which in my opinion doesn't take away from it, but adds to the original.
Reflection
Each person that worked on the code should reflect on the process, the difficulties, and the successes of the experiment. Here's where you can put your reflections.
- To reflect upon this assignment, I contributed to the overall design and interactivity of the sketch. Basing it off the original reference and the p5js library, helped me come up with the star generator. I added two new key mechanics which were f for freeze and c for colour changes. I did not collaborate with any other students in this class. But I found the freeze mechanic and the jitter mechanic the high of this experiment and also the most rewarding. However, I did face challenges initially with my star sizes not adjusting, my original star shape did not allow for random sizes so I ended up creating a new star shape which worked out perfectly. I found this experiment very rewarding and felt that it taught me a lot about a platform I have not used in the past.