Project
For my midterm, I wanted to make an interactive landscape where users can manipulate the time of day, weather, season, and animals/insects using their body.
Controls
- Sunrise/sunset– head position on either the left or right side of the screen
- Bird & beehive– hands and arms; when raised, the right arm becomes smoke that gets rid of the beehive and the left arm becomes a tree which the bird flies to
- Rain and clouds– raising either of the arms makes the rain and clouds disappear
- Winter– cross your arms across the chest makes the screen change to a winter scenery.
A link to the video demonstration can be found here.
Inspiration & Process
The inspiration for this project came from a previous homework, where I had a much more basic version of this project. The initial project was just that when you raised your arms, your body would change colors to look similar to either tree or blend in with the environment.
I used bodypix for this project to track the body movements of a user to manipulate the environment. In terms of coding, the way I created the functions listed above was closely related to designating the position of certain body parts, finding the center average area of the hands, and turning on/off functions with many if/else statements.
I had to reference a lot of outside coding to fulfill what I wanted in the project. This website helped me understand how to achieve a nice gradient for the sunset and sunrise I wanted to use for the sky. For the rain code, I referenced an example from Professor Moon’s GitHub that showed how to make particles rain. For the bird flying code, I referred to the class examples we coded together in class.
There was definitely some changes that occurred throughout my coding process. Initially, I had the code set up so that both a bee and bird flying around and I wanted them both to fly to their designated arms. However, a friend who user-tested mentioned that there was a lot of movement going on in the screen so it got a bit overwhelming. After thinking of her critique for a bit, I decided that I agreed. Plus, I thought it would be nice to diversify the actions. Thus, I changed the “flying bee to hand” concept to “get rid of the beehive with your hand” idea instead.
As for difficulties I encountered, they mostly came towards the end. I didn’t have trouble changing basic colors and the codes I referenced up above had some bumps but I eventually were able to understand them. The difficulties came from trying to get these codes to work with bodypix. I realized that in order to turn some functions on/off, I had to use a lot of variables and create true false values to help activate/deactivate the functions.
Probably the most difficult part of the project, though, was getting the birds to fly towards the hand. I found it confusing and difficult to get the bird to move towards the hand because, since I was using bodypix and my hand, the values bodypix picks up for my hands is very fickle and inconsistent. However, after talking to Professor Moon, he explained to me how to find the average area of these body segments and how I can find the center of these body parts. After talking with him, I was able to give a specific point for the bird to fly to, and it worked.
Presentation & Feedback
My original “final” midterm project lacked clouds and didn’t have a circular shaped face/sun. After presenting to the class and receiving their feedback, I changed the sun to become a round circle, rather than a semi-rectangular shape that was following the outline of the users face. Also, I found that when some friends user-tested my project, they found it confusing that the sun wasn’t perfectly round. Additionally, I took into account Eszter’s comments about the bird flying off the screen and there being a lack of clouds so I gave the bird more defined parameters for flying off the screen and added clouds. I unfortunately didn’t have time to change the arms to also look more realistic, but this is an aspect that I elaborate a bit more in the next section.
Thoughts
I feel relatively satisfied with my project. Given that we had a week to complete this midterm, I feel very happy that I was able to complete everything I originally set out to do. However, I think there is definitely ample room to improve. Professor Moon mentioned in his critique perhaps using pix 2 pix in order to make the arms and face return as more realistic images. If I had time/if I want to continue this project for my midterm, I think I could definitely incorporate this element into the project.
Additionally, I would like to add more interactive elements such as when the arms are raised above the head and connected, the rain slides off the arms. But overall, I think I become a lot more comfortable with using bodypix and am excited to learn more to see what other functions I can create.