An interactive project that engages the user to move shapes on the screen by gently moving the hands in the air. These shapes are circular and trickle down the screen in a motion that is similar to a cascading waterfall .
produced by: Daniah Alsaleh
Cascade is a project that is inspired by water, as in rain drops against the skin, water splashing from a puddle that a vehicle ran over, or by water droplets around a fountain with children splashing around it. It was always my wish that I could control the little droplets and defy gravity, just like astronauts in space play around with water particles and control the flow of how a particular water mass move about in their surrounding area.
Concept and background research
Golan Levin and Zack Lieberman's piece named Footfalls was an interactive audiovisual installation where visitors interact with cascading virtual forms. What I loved about the piece is that it gave the participant a sense of power and full command of the objects, they stamp their feet and instantly objects are created. Another piece which I liked is the large interactive mural that was created for the san hose museum of art by Dan AmineZade. The artist created a mural of different sizes of digital objects, where the audience could control the object they touched on the mural and interact with the different shapes. Another playful digital installation is a piece created for the transmediale.11 by Büro Achter April called animated wall . The piece has various different shapes on a wall arranged in an organised form but where the user can intervene, dismantle and cause chaos and disorder in unexpected surprising ways.
Moving forward from these samples of art installation I wanted to do something not necessarily similar but something that the user could control and play around with in a fun way. I had a vision of creating a particle system that was entirely controlled by a human agent. I started with the great Daniel Shiffman's book: The Nature of Code. The chapters on Forces, Oscillation and Particle system helped me understand the algorithmic thinking and the physics aspect and explenations of the code.
Started with the particle system examples in the nature of code book, I started to build on top of that by using the week 12 examples of openCv. I had to figure a way to incorporate both to work together in a way that the user could have control of movements of the object. It was not a straight forward way I must say, the program initially was lagging and was so heavy on the cpu. Investigating further into open framework I found ofThread. ofThread is a thread base class with a built in mutex. A thread is essentially a mini processing object you can run in parallel to your main application loop and is useful for running time intensive operations without slowing down your app. Trying to implement it was time consuming as the concept was very new to me. With time, effort, many trial and errors, and lots of help the thread class worked by having a class openCvThread and incorporating it with parameters of the ofXopenCv. Using video grabber and making the vectors reflect images of the vedio was another decision I made, as drawing circles did not work at all, so by taking the vectors and giving their weight a value of 60, gave me a somewhat reasonable sized circles.
When drawing the grid for my vector points, I could only go up to length 20 by 20 in the double for loop, if I increased the length of the grid, the cpu worked too hard and I had a lag in movement, so I stuck to the size of 20. I would like to have the time and investigate on how to solve this problem, as I would like to have much more points on the screen that the user can play around with. Further development also include attending to the problem of the cpu, and having a program that is robust enough to run for long periods. It would be wonderful to have this interaction on a a digital wall, where passers can interact by the movements of their bodies, as if they are walking next to a vector style waterfall.
My overall impression of the final project was that I was pleased with it especially the amount of time that went into it. I realised too, that I needed a lot of technical practise and skill to be able to take the project further and make it a stand alone stable installation. I can see it not only used as an art installation, but also as a fun game or an exercise activity for children.
The most challenging aspect of the program was dealing with ofThread, although I managed at the end to make it work, but I had to deal with the amount of vectors I can use, I was restricted to a grid of 20 by 20. I could not make the program work for a larger size grid.
Perevalov D, Tatarnikov I . openFrameworks Essentials 2015
Shiffman D. Nature of Code 2012