Better Birds

pigeon_card_set_cropped
Historical cards of various pigeon breeds

After I had a working model of my sketch working I decided to see if I could improve the birds in my sketch. At the moment I had only one type of bird, however I wanted to include more in my sketch. There are a few reasons for this, the main one being that it is just more interesting to have a variety of different birds on screen, but as well it is a reference to the breed diversity of pigeons, due to the breeding efforts of pigeon fanciers.

sketch1
My bird sketches. The mockup of the Processing version is on the right, whilst the more “realistic” version is one the left

To create some more bird types for my sketch I first drew on paper to come up with some designs. Earlier I had limited myself to designing with only triangles and I wanted to keep with this rule, as it would make the transition to making the birds in Processing much easier.

As well as these triangle birds, I also drew a quick, more “realistic” sketch outline of what I thought the bird could look like on the right. Hopefully this would help me when putting these birds into Processing with their flight pattern. As noted on my previous research into bird biomechanics, different types of birds have very different ways of flapping their wings (Tobalske, 2007). Through envisioning a more realistic version of the “Processing friendly” when coding I could come up with a way of moving their wings which ties in with their design.

20150124_085235

To start with I drew out the bird I started with. I then slightly changed the angles of the triangles. Surprisingly with only these minor changes I managed to get some very different body shapes for the birds.

20150124_085246

I also tried adding tails to the birds. I chose to keep the colour scheme for my first design quite simple but experimented with using more naturalistic colours in the last one. However I do not think it was very effective as it did not stand out as much as the birds based on primary and secondary colours.

Different_Birds

Next was to implement this into Processing. In order to create different kinds of birds but not copy the whole bird class several times, I used a staple technique of object-orientated programming called polymorphism. This is where objects can become “children” of a parent class and inherit all its properties. However you can also override these by adding in some extra functionality. To do this I created a class called Swallow and by using the line class Swallow extends Bird at the top of the class I created an idential class. By then adding in different oscillate and display functions I was able to change the appearance of the bird. Firstly I tested this out by making red versions of the original birds.

Processing sketch test of giving a bird a tail

tails

I also tested giving the birds tails, by adding in another triangle to the birds. Like the initial building of the birds this was quite hard to do as the geometry had to match up perfectly. I hoped this would be effective, however as the tails did not move dynamically with the movement of the birds (a real birds tail would bob up and down during flight) they looked very stiff and artificial. I decided not to include them in the final sketch.

Different_Bodies

Here’s the final sketch. In the end I based the birds of the top two in my sketches, with a green bird with longer wings, tail and beak and a red, stubbier bird. I only put in these two types because otherwise I think the sketch would become too crowded. I also tried to modify the wing speed of these birds to match their shape. I made the green birds wings flap slower and the red birds wings flap faster as this is is how similarly- bodied birds would fly in real life.

Happy with the results of this testing, I want to gain a second opinion on my work, so I will show it to some friends and see what they think.

Tobalske, B., 2007. Biomechanics of Bird Flight. Journal of Experimental Biology [online] 210 (3135-3147).

Shiffman, D. 2008. CHAPTER 22: EXAMPLE 22-2: POLYMORPHISM [online] Avaiable at: http://www.learningprocessing.com/examples/chapter-22/example-22-2/ [Accessed 09.01.2014]