Equisite Corpse
Prompt
For this assignment, you will first design a human or non-human figure that has a head, an upper body, and a lower body. You can choose the orientation of the figure you draw (portrait or landscape.) You will exchange different body parts with your peers during the lab session, and transfer the exquisite corpse drawing into code using functions. You are welcomed to incorporate motion, interaction, and animation into the final output.
Process
My classmates and I traded drawings and backstories of our character design.
The Three Corpse
Back Stories
Dave Bot: Originally called Robot 3X93RL1, Dave traveled the the multiverse and decided to settle down on Earth. He named himself Dave because it is a generic name that he believes will allow him to fit in with the humans. He wore glasses and shoes to in hopes of blending in but forgot that he has no clothes on his body. His round belly is considered attractive from where he came from so he was shocked when the humans said it was unattractive. Dave bot was found unresponsive after he tried the Heart Attack Gril in Las Vegas. So Now he's just an expensive corpse.
Joey The Snowman: Joey lives in Central Park close to the ice rink and his favorite color is red because it suites his eyes so well. In his free time he likes to watch people ice skate and kids throw snowballs. He's feeling very hot and sweaty these days and is very much looking forward to the cooler season.
Singing Shark: The shark likes to sing under the sea, unfortunately humans cannot hear him. So he decided to live on land and sing for humans.
Creating The Exquisite Corpse: Snow Shark Dave
It was a very fun experience incorporating my classmate's design to create my own character. I started coding from the top of the head before making my way down to its bottom. I tried to make my code as reusable as possible. To ensure that the codes are easy to use and understand, I named my parameters based on its characteristics such as the eye's x-axis (eyeX) and eye's width (eyeW).
My process starts with hard coding the face with constant variables, then I look for variables I can use as an anchor point. Afterwards, I calculated how the constants should be manipulated to produce the shapes I desired. I then created my own functions and put the parameters in, making an argument. I repeated this process throughout the whole body. The most interesting part was the teeth as I used the for-loop to create the shapes for me, reducing the amount of code that I have to use. The same method was also used to code the background rain and snow drops.
New Narrative: Snow Shark Dave
Dave Bot, Joey The Snowman, and Singing Shark were all sent to a hospital in Las Vegas after their traumatic end. A scientist saw an opportunity to create a new being so he tore their bodies apart and stiched them back together. Snow Shark Dave was created by attaching Dave's head to Joey's bottom, and Singing Shark's body. Snow Shark Dave is now really cranky because his whole body prefers different kinds of weather. His head does not like water but his body does while his bottom likes the snow and his body hates it. On the other hand, the sun irritates the bottom. Overall, Snow Shark Dave is not as friendly as his past self as he's always complaining about the weather.
Reflection
Through this exercise, I learned the importance of creating user-defined functions. It makes the work much easier to debug and comment out. By naming the functions in a meaningful way, it was also easier for other coders to understand what each function was for. By making the variables interchangable through parameters, changing the shape size on a later stage took less than 1 minute. I also learned the importance of keeping the code as concise as possible. When I was coding the background snow and rain drops by calling the function multiple times, my computer was burning up as it was using a lot of processing power. I noticed that the shape rendering was much slower, too.
I replaced this method by replacing it with a for loop. Instead of calling the multiple times in intervals of 30, I reduced it to just 2 lines of code:
for(snowLocation =0; snowLocation <600; snowLocation+=30){snowEffect(20+snowLocation,snowY)}
snowEffect(0,snowY)
snowEffect(50,snowY)
snowEffect(100,snowY)
snowEffect(150,snowY)
.
.