EMOJIFIED
Concept
In this project I wanted to portray myself not just through my physical appearance, but also by showcasing my personality, hobbies, and interests. To achieve this, I initially explored various methods of conveying this information, experimenting with different visual structures. However, I found that nothing captured it better than emojis. I carefully selected emojis that resonated with me and then experimented with their placement on a canvas.
I wanted to convey the idea that there’s a lot happening in my mind, even though it might not be apparent from the outside. To achieve this, I initially tried placing these emojis in a small container that resembled a portal to my thoughts, but it didn’t feel right. Then, I considered stationary placements around my image, but that didn’t quite capture what I was aiming for. Finally, I decided to position the emojis behind my portrait and give them random motion, which better represented my inner thoughts and emotions.
Creating the facial features was another journey of exploration. I stumbled upon the Bezier shape, which, although initially confusing and requiring precise coordination, presented a unique opportunity. To simplify its usage, I developed a function that assisted me in determining the mouse’s location on the screen, significantly saving me time in the process. As a final touch to enhance the project, I chose to replicate the effect of concert lights in the backdrop. Thus, when you click, dynamic lights can be observed moving behind my portrait which were also created using 3 different colored hearts.
Code that i’m proud of
Mouse coordinate function:
//mouse coordinates
textSize(18);
fill(255, 50, 30);
text("(" + mouseX + ", " + mouseY + ")", mouseX, mouseY);
The face
//shirt
noStroke();
fill(201, 73, 73);
ellipse(189+9, 410+70, 460, 372)
//collar
fill(135, 43, 43);
ellipse(189 +9, 260+70, 221, 138);
//neck
fill(215, 183, 150);
ellipse(189+9, 250+70, 191, 115);
//neck height
fill(215, 183, 150);
rect(94+9, 167+70, 190, 88);
//ear R
fill(215, 183, 150);
ellipse(318, 170, 40, 69);
//ear L
fill(215, 183, 150);
ellipse(72, 170, 40, 69);
//Hair rear
fill(0);
rect(72.5, 10, 245, 170);
//head
noStroke();
fill(215, 183, 150);
rect(79, 10+35, 232, 186);
//jaw
noStroke();
fill(215, 183, 150);
ellipse(195, 200+30, 232, 179);
//right eye
noStroke();
fill(255);
ellipse(250, 135, 79, 41); // white eye
noStroke();
fill(66, 33, 11);
ellipse(250, 135, 40, 40); //pupil brown
noStroke();
fill(0);
ellipse(250, 135, 22, 22); //pupil black
//left eye
noStroke();
fill(255);
ellipse(132, 135, 79, 41); //white eye
noStroke();
fill(66, 33, 11);
ellipse(132, 135, 40, 40);//pupil brown
noStroke();
fill(0);
ellipse(132, 135, 22, 22); //pupil black
//beard
noStroke();
let x = 12;
let y = -120;
fill(184, 156, 128);
beginShape();
vertex(79, 178);
bezierVertex(79, 178, 178, 261, 311, 178);
bezierVertex(311, 243, 323, 325, 195, 325);
bezierVertex(78, 325, 75, 257, 79, 178);
endShape();
//Nose Arc
noFill();
stroke(171, 123, 76);
strokeWeight(7)
strokeCap(ROUND);
bezier(159, 195, 181, 218, 208, 218, 230, 195);
//Nose Tri
noStroke();
fill(171, 123, 76);
triangle(194, 115, 194, 216, 230, 200);
noStroke()
fill(188, 75, 102);
ellipse(196, 253, 94, 34);
//Lip Line
noFill()
strokeCap(ROUND);
stroke(133, 53, 72);
bezier(147, 246, 147, 246, 187, 266, 242, 246);
//Eyebrow R
noFill();
stroke(0);
strokeWeight(17);
bezier(90, 110, 105, 94, 142, 87, 166, 94);
//Eyebrow L
stroke(0);
strokeWeight(17);
bezier(222, 93, 247, 86, 283, 95, 298, 112);
Sketch
Reflection and improvements:
In the future, I’d like to incorporate more interactive features. One idea is to make the eyes on the portrait move along with your mouse. I’m also thinking about adding different feelings or vibes that can change how everything looks – the background and the emojis – to make the project more interesting and more fun to interact with.