Vokse
Evolution cannot exist without change. This short animation is inspired on the evolution species. These new creatures, called vokses, emerge from the black void, changin and evolving into new shapes and developing new skills such as movement, reproduction or communicating with other creatures alike near them. Vokse means 'to grow' in norwegian.
produced by: Daniel Gabana
Description
"It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change". Charles Darwing, 1809.
This animation made with OpenFrameworks represents the evolution of new specie, abstractly-represented using just a circle. This new specie, called Vokse (which means 'to grow' in norwegian) borns in the void as simple 1 pixel arcs that opens and closes in random angles . The creatures slowly appear one by one, moving and revealing themselves from the black void. Soon they develop new skills, moving as full circles instead of just outline arcs. Then, they transform into a full coloured circle, where the various colours represent the different sub-types of this specie.
Once all the Vokses have evolved into their stage 2 (full circles, or cells), they learn how to slowly float and move on its environment. This new shape adopted by Vokses in the stage 2 of their evolution also provides them with new features and knowledge such as how to reproduce (i.e.: divide itself into two new Vokse) and how to communicate with the other creatures around them in order to exchange information and collaborate towards an optimal evolution.
This animation has been inspired on the visuals created by Simon Geilfus, member of the french visual label Anti-VJ, for the mexican musician Murcof in 2009. You can watch a sample of this audio-visual piece in this video (from minute 1:50 to 3:40). The creation of new circles (minute 1:50) made me think about how to imitate that mitosis process in a more interesting way.
Development
The development of this piece started looking at the tutorial made by Oleg Pashkovsky, which actually is an extension of the master class by Zach Lieberman at the School for Poetic Computation (http://sfpc.io). I used some of Oleg's code to create a circle not without the standard ofDrawCircle method, but drawing points in a ofPolyLine object that will create the outline of the cirlce, or in this case just an arc. In order to create a filled arc (i.e.: a section of the circle), the points calculated in the poly line object has to be drawn in a ofPath object, setting the point at 0,0 so the arc starts at the center of the circle.
The second major part of the animation presents the random movement and reproduction of the circles (cells). To create a realistic animation of how one cell splits into two cells, i combined the animation created by Oleg Pashkovsky (see Fig. 1) and the approach shown by Daniel Shiffman in his video-tutorial on simulating the mitosis process with p5.js, a JavaScript framework to create visual animations. Mitosis is "a part of the cell cycle when replicated chromosomes are separated into two new nuclei". Although this tutorial was made for JavaScript, i developed a similar approach fo my animation in C++ without much trouble. Even though i liked how the circles merges with others creating new colours between them, the collision detection among other circles was problematic due to the initial impulse of the newly created circles.
References
Sine wave animation by Oleg Pashkovsky. http://www.pshkvsky.com/gif2code/sinewaves-animation-tutorial-openframeworks/
Mitosis simulation (in p5.js) by Daniel Shiffman. https://www.youtube.com/watch?v=jxGS3fKPKJA
https://en.wikipedia.org/wiki/Mitosis
----
Figure 1. Oleg Pashkovsky's sine wave animation.