My projection mapping project uses the form of the projection surface to inform the graphics, which explore a playful narrative of a tower block.
produced by: Batool Desouky
Concept and background research
I picked the tower shape as the projection object to experiment with architectural elements and explore what kinds of visuals I could create with the restriction of a building structure. So the resulting animation was heavily informed by and alluded to the shape underneath.
Narrative was another central focus of the code, I wanted to explore conveying a progression of events and story development through the visuals. Combining the form of the structure with narrative elements I created a story of a residential tower block that gets taken over and drowned by a big wave. After the block is drowned it goes into an inverse world where the colours are inverted and the structure appears to be “infected” before radioactive underwater plants take over the structure and shoot particles into the structure that grow and take it over.
The animation starts with a slower pace, setting the scene for the building as the bricks and the windows fall and swing into place. As the the scene progresses, a wave climbs up the building, destabilising it and triggering the “radioactive” boolean. As the story progresses the animation gets faster and more intense, until the entire tower structure is taken over my the growing particles.
In order to structure the narrative easily I used several counters (variables set to increment at different rates) tied to the frame count function. The counters were in turn tied to several boolean conditions, which, when met, trigger different parts of the visuals. I also used random numbers to add some organic elements to the colours and shapes in the animation to break the uniformity of the visuals.
A lot of the narrative progession was based on editing the basic structure of the code in different ways over time, as opposed to creating new code for each part of the story. To do so easily and with clear code, I used as many functions as possible to control the visual elements in the space, and several boolean condition to control the event-based changes in time.
My goal was to understand and be able to easily control coding using time constrains, and to create an object oriented code that is easy to edit.