Concept: Converting Names into Visual Forms
The main idea behind this project was to create imagery by using the names of objects to represent their form. I wanted to implement water as I felt that I could create a cool wave pattern by moving the letters. The final result was this sketch:
Process
I began by sketching out different ideas on combining text and imagery:
In the end, I ended up liking this idea the most:
To implement this, I looked up functions that would allow me to manipulate texts as objects. I was able to find the textToPoints
function, which allows me to convert text to an array of points that make up the shape of the text. With this array of points, I could use the beginShape
function to create a closed shape of the text. Then, by altering the position of the points, I could manipulate the shape of the text.
However, I found that converting the shape of the text when converting the entire string at once didn’t give me a clean shape. So, I decided to split the text into individual characters, and converting each of those into a separate shape.
After adding some rippling effect and moving each letter like a wave, I ended up with the following result:
Since I went with an object-oriented approach, I could just replicate the water across a grid to generate a wave of water. I repeated the same steps to create a moon and added points that twinkled to add stars in the background.
Code Highlights
My favorite part of the code was creating the rippling and wave effect. It was so simple, but I believe it added amazing detail to the sketch.
//make the water ripple let rippleFactor = map(this.textSize, MINFONTSIZE, MAXFONTSIZE, 0, 2); y += noise(frameCount * 0.02 + j * 0.02) * rippleFactor; //make the water wave let waveHeight = map(this.textSize, MINFONTSIZE, MAXFONTSIZE, 1, 2); y += waveHeight * sin(frameCount * 0.02 * (i + 1) + this.offset);
I added some noise and used the frameCount
variable to make the letters move in a wave pattern. The crucial part was to make these changes when drawing, since I did not want to modify the points directly, otherwise I would need to reset their position. If I didn’t do that, the movement would add up and move the letters out of place. So, this was a simple way of getting this effect.
Reflection
For this project, I feel like I really pushed my creativity. Although my previous projects might have been more technical, I really enjoyed the planning and ideation of this project.
Sources
Font used: Super Funky Font | dafont.com