Project: Wings
Date: May 18th, 2019
Processor: JH Moon
Introduction:
My final project is about object simulation. I intend to simulate the motion of bird wing and to make some visual effect based on the anatomical movement with p5.js . The project has two versions: one shows the physical structure of bird wings, the other visualizes the appearance of wings by applying particles systems.
Inspiration:
The inspiration of my project comes from some street arts that paints wings of human size with various art styles. One common feature for these kinds of wings art works are that, the audience are invited to become part of art pieces by posing with the wings. Also, from my other class about 3D modeling, I learnt that wings is a common organic feature in many 3D modeling scenes and game design, which leaves the concept with much room for exploration and utilization. With p5.js, I would like explore this form of art by creating visuals of moving wings, and by utilizing tools like projection in the future, I would like to let the art piece to be immersive or even interactive.
Development:
Since my project really focuses on the object of wings, I started off with researching for and analyzing the anatomical movement of wings.
With reference to the research findings, I divided the structure into several parts: joints, bones, and feathers; and based on that, I proceed to plan my project by breaking them down into different gradations: sketch, movement, and appearance.
As shown in the sketch, I first planed to build the bone structure and joints with the basic movement, then I would attach feather structure to the bones by using the concept of springs, and finally I would visualize the appearance of wings by applying particles to the kinetic structure. My project were basically implemented according to this plan.
Bone structure:
To build the bone structure, I created the movement of joints (points) first and connected them with lines (bones). However, the way to design movement was tricky. I firstly tried to change the joints position with spring concept, but the wan points moving with springs is was not very regular and they would tangle with each other. So I proceeded to manually change the positions of the joints. I used the sin() and cos() first, but in this way, the movement was too stiff and the bones were stretching.
To solve the problem, I looked up more animated movement of wings online to study the organic principles, and I realized that the problem was each joint was not moving based on the previous one. The way joints are moving should be revolving around an axis. Therefore, I changed the code to achieve the effect.
Feather structure:
After completing the bone structure, I then proceeded to attached the feather mainly using the concept of springs. I used lerp() function to divide the distance between each two joints into ten and placed one end of the spring over there. I then positioned the other end of spring based on the first one by using sin() and noise() to build the basic curve shape of wings and connected the points with springs.
Two wings:
After having the basic structure of one wing, I used class systems to duplicate and flip the wing to make a pair of them. The final result for the wing structure looked very organic and really met my exception.
Link for p5 demonstration: https://editor.p5js.org/Skye/sketches/4ycJm0eZg
Particles:
With the anatomical structure of wings, I then tried present the appearance of wings by attaching particles to the structure. The outcome looked like this:
Link for p5 demonstration: https://editor.p5js.org/Skye/sketches/ZVm2FPYOo
Presentation & Future improvement:
For presentation, I showed the two versions of my wings, and got feedbacks that I should as I have two version of the wings: one is realistic simulation, the other is more about artistic representation, I may be should choose one direction to focus on and push it to the limit.
Due to my intensive schedule during the final, I did not fully achieve the result of my project as expected, which left much room for me to further develop it. Based on the feedbacks and my reflection, I think I should have these future improvements:
- Make the wings structure & movement more realistic and organic by experiencing with the variables;
- Explore with the particles to create different kind of visual effects of wings (e.g.. color, shapes, lights);
- Create some scenarios by adding some background or decorations in the canvas;
- …
In all, it was an challenge for me at some stage but I really learnt a lot from those theories and concepts in class. I am especially thankful for all the help and support professor Moon had offered us. It was a real pleasure to be in the class!