Self-Starter, Taking Risks, Technology

The Art In Code

When I first started learning how to code, I was not sure how I could create art with just code. I knew how to utilize CSS to decorate websites. As a result, I would create early internet websites that had a lot of passion but may not have been visually appealing. Still, I wanted to learn more about this fusion between code and art but didn’t know how languages like Python or Java would fit into this.

This changed once I learned how to use Processing, an open-source integrated development environment for electronic arts that uses a custom language built on top of the Java programming language. It started simply with me creating a little alien constructed of simple shapes or a circle separated into 4 arcs. However as I continue to learn more about how to add interactivity to my projects, I remade old processing projects. For example, the 4-arc circle project was remade to be like a drawing tool where users can draw circles and rotate them to create circle patterns. 

First Big Project

My most recent project is a simple hypnotic spiral in the Bauhaus style. As simple as it sounds, it was the first art project where I incorporated tons of math utilizing angles and sine, cosine, and interpolation to give the shape of a hypnotic spiral in every frame the program runs. However, I had some issues with creating this art project and a major one was how fast the program was drawing the spiral. To create a hypnotic spiral, an important aspect is how smoothly the spiral descends / changes size. If the spiral animation is clunky and slow, you would not be as enthralled. 

My first attempt at this project reached a staggering 3 frames per second, which was not ideal. Since the enjoyment of this art would be how it is perceived in motion, I understood that optimizing my code had to be a priority. This includes changing how I do my calculations per frame, as this would be the biggest concern in runtime. After a few hours of slamming my head into my laptop, I figured that switching how I store the angle information allowed me to do fewer calculations for each frame by storing values I had already made. By applying the principles of code I know and my design philosophy, I was able to improve my project’s runtime to a smoother 30 frames per second, and the result is now a hypnotizing spiral for anyone’s viewing.