Nature of Code Feedback
Objective
For my Nature of Code project, I wanted to create an algorithm that could generate and replicate a unique natural phenomenon. I found my inspiration during our stay on Amrum, where I closely observed oyster shells. My goal was to create an endless series of distinct, computer-generated shells by programmatically replicating their unique growth rings and individual variations.
Process
The biggest challenge was figuring out how to translate the complex, organic shape of a shell into a programming structure. Initially, I struggled to find a way to accurately describe its form and growth patterns. The turning point came when I adapted some existing code from my lecturer. This code provided the foundational logic for generating the half-ellipses and other functions needed to create the growth rings and overall shape. The final program is quite extensive because it can produce a huge number of unique variations from a single core pattern. It is also worth noting that I used a large language model to help with development, which might have added some unnecessary functions to the code. The colour scheme was taken directly from the natural colours of the oyster shells I observed.
Problems
Even though the project successfully generated unique shells, one technical problem remained unsolved. I could not find a way to programmatically get rid of the straight lines that defined the angle and outer border of the growth rings. I tried several different solutions, but every attempt to fix the issue ended up corrupting the existing code. As a result, and since there was a risk of destabilising the entire project, I decided to accept this visual quirk as a limitation rather than keep trying to fix it.
Solution
Given how difficult the straight-line issue was and the risk it posed, the only real solution was to acknowledge it as an accepted limitation. This decision allowed me to complete and demonstrate the project, while still being transparent about the fact that it could be refined further. The experience taught me a crucial lesson about project management: namely, that sometimes, it is more practical to work around a problem than to spend a disproportionate amount of time trying to fix it, especially if the fix is risky.
Conclusion
This project was a significant learning experience that provided me with valuable insights into creating generative art. The main takeaway is the importance of having a strong foundational understanding of the physical and mathematical principles behind this art form. This knowledge is essential for giving an AI assistant clear, specific instructions since vague prompts can lead to inefficient or flawed code. Having a working example, like the code my lecturer provided, was also an invaluable resource. The project, ultimately, showed me the power of combining observation, foundational knowledge, and collaborative tools to achieve a complex creative outcome, even when you face challenges that you cannot completely solve.