More selected projects


Rehab is a projection mapping project dealing with the intuitive connection between sovereignty, the fall of democracies and the crisis of the COVID-19 pandemic. 

produced by: Sai (Shai) Rapoports


As the computational art field and coding are completely new to me, I took this project as an opportunity to revise play and explore some different strategies of coding I have learned in the first term and from some books and videos online. The result- Rehab- is a short 3 scene projection installation constructed of 2D graphics and readymade manipulations. 


The stages of planning the piece conceptually were my starting point, as I wanted a narrative wrapping it all up and directing me towards the images I want to create. The piece draws a line between the uncertainty and deconstruction caused by the spread of the COVID-19 pandemic, and present sinister anti-democratic politics in Israel. Toxic fake news, anxiety, disorientation, and oppression all mix up in these weird times. This leads us all to the simple hope of purification, recovery, rehab from all toxins and viruses out there: human and non-human.
Alongside with some straight-forward imagery, some images and metaphors are pretty vague and could be viewed and interpreted as many thingsat the same time. For example, the trailing agent in the first scene, resembles a microscopic string virus, the maps showing locations infected by COVID, or- as I found out while playing with the colors in the process- a blossoming East Asian Cherry. The abstractness of visual coding is a gateway to endless possibilities which will serve me as I learn more and improve my current skills. 


Rehab was written in C++ using openFrameworks and the ofxPiMapper addon. In addition, the project uses the ofxJSON and ofxXmlSettings addons in order to create a scene score, each scene assigned with a different duration of choice.

The first scene uses ofNoise, sin and cos functions to generate an organic looking microbe, with some manipulations of its size and the “noisiness” of its outline. These functions are also in use with the little atoms/circles around the microbe, each translated to a different place and with an individual route. The second animation of the first scene uses the “dumbAgents” concept, with a modulo affecting the coloring. A vector is in use to allow the drawing of 4 agents. In addition, in order to generate two different instances of the same class in the first scene, I used a constructor which takes a string name and assigns it to the FBO created in the piMapper.

In the second scene, the virus animation keeps on going while two other readymade manipulations take place. The first is an interpolation between two distorted images. Images are taken from the protests in Israel against the corruptness of the government the current prime minister Benjamin Netanyahu. One image depicts a protester holding an Israeli flag while being hit by a police water cannon, the other an innocent protester being violently lifted and taken away by the police. Each image is distorted slightly so that it is still a bit recognizable (done by a noise and sin dependent on individual location and an offset). Then a 3-dimentional noise is used to lerp between the color value of each pixel in the image’s pixel arrays. The second animation manipulates a readymade video of Bibi giving a speech during the pandemic. The code follows the “shapes from pixels” exercise, with an additional feature of a sin wave controlling the deconstructing and rebuilding of the video as it keeps playing.

In the third scene I used classes in order to generate both the Evil Eyes and the Smoky trails. These animations were inspired by the fiery comet code and some basic physics.

Other then wanting a lot more time to work on the project and get to the result I would have wanted, the code was really heavy on the CPU of my computer. A decent amount of time was being spent on trying to lighten up the process and make it more efficient by moving calculations that are unnecessarily iterated to other parts of the code. In other cases, I had to settle for a different outcome then the one I had in mind, though this is obviously also part of the process of artistic process.

Self evaluation

I feel like I needed to experiment with this project to get a better understanding of the subjects we have learned in this term. I am aware of the compromises I did but also quite proud of myself and grateful I didn’t try to perfect something instead of playing around. I am looking forward to go further into learning new skills and use coding ideas made by others in my projects, following their way of thinking and enriching myself. I am also very curious when and how my artistic language will develop in this field, and in what ways will this relate to my background in live performance and dance.

Future development

I would definitely put more thought on the aesthetics of the piece since I find it to be a weak point at the moment. I would also love to solve some glitches and add more aspects, e.g. the first and last point in the microbe circle, a wiser use of the triangle shape I am projecting on, collision between the evil eyes and more. In addition I would try to create a more elaborate score of scenes and play around with the construction of a narrative so It will take into consideration timing and spatial aspects in the final projection. Given the opportunity I would probably also incorporate some sound manipulation supporting the narrative.