Experiment 5 - 3D Art

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 goal of this project was to replicate the train sketch that Dave Pagurek exhibited in class. This doodle piqued our interest due to its sophisticated design, despite the seeming simplicity of the p5.js framework. ChatGPT designed the tunnel as a series of revolving rectangular prisms. We were intrigued by this method and chose to expand our experiments by modifying the concept to include new shapes. Our experiments lead us to use spinning spheres as an alternative. This variation piqued our interest, encouraging us to think how we can build on the concept. The idea of modeling the solar system arose from our brainstorming. We considered the possibility of using our spinning sphere concept to reproduce celestial bodies orbiting a center point, similar to the arrangement of planets in our solar systemn.

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.

When we reached this point, we took the strategy of generating a giant core sphere with slow revolution, surrounded by multiple smaller planets rotating faster. ChatGPT helped us determine the colors for the planets and supplied a helpful function for this task.We incorporated randomization into our rotation algorithm, allowing the planets to revolve across multiple planes. We also used phase shifts to maintain constant desynchronization between the rotations of individual planets. While this tweak produced satisfactory results, we believed it lacked depth.To improve the visual attractiveness, we added mouse movement that allows the camera to rotate around celestial objects.

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.

We put randomly arranged stars in the backdrop, making this design quite enjoyable to play with. At the conclusion of the day, we were satisfied.

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.

  • For this project, Arthur and I conducted a lot of pair programming. We used ChatGPT to assist us with the colour helper function and the mouse camera interaction, and we made sure to cite the code from ChatGPT in the GitHub repository. This project took a number of days to finish, and I believe that the most difficult aspect of it was getting the rotation variability to work; Arthur and I struggled with its functioning for quite awhile. However, the highlight of this research was successfully implementing the phase shift and inclination on the planetary rotation. This was undoubtedly our greatest effort, and we spent a significant amount of time on it. We are quite pleased with the end job.

Results