An introduction to projection mapping utilising some of the content taught to us during the Workshops In Creative Computing class.
produced by: Edward Ward
I wanted to create a few scenes for the video that would allow me to showcase some original work whilst utilising the skills developed over the duration of the unit. The three scenes are simple and consistent in style and uniformity, with each maintaining unique qualities. I did not intentionally pursue any artistic style or reference the work of others, but used an organic approach to generate the visuals. This approach allowed me to flow flexibly in the direction of the most interesting aspects of the created visuals.
Concept and background research
To begin the project I wanted to work with single stroke lines. I began making a simple rectangle that would increase in size with each frame. Taking the form of the projection pyramad into account, I translated the centeres to each corner of the window. Over the length of the scene the stroke changes colour and the rectangles rotate on their centerpoint. This, I think, gives an interesting effect given their positioning on the pyramid.
I wanted to tackle vectors, and did so for the remaining two scenes. The middle scene, Noisy Lines, uses the vector to store ofNoise values which I use for locX and locY posiitons of a line endpoint. The overall effect of the scene again is quite simple by being updated over time as the amount of lines that are generated update throughout the runtime. Given the uniformity along each edge, they allign well with each other on the pyramid and this produces a good effect. I did find that the noise value was tricky to constrain and maybe I used too many variables within the ofNoise function. I would have liked to have the amount of noise vectors to update throughout the drawing but that seemed to have been a cap to my knowledge on the matter.
The final scene I used similar ofNoise values but used the begin shape function to create triangles, one vertex constrained to the corner of the window, one to the ofNoise val, and the third using a counter that would extend one edge of the triangle. During the scene the colour changes from red to green to white, and the final part of the scene the endopoints are not limited by the counter and continue to the center of the scene where they interact with one another at a visual level.
Each of the scenes were written in Processing first to give speed and flexibility to generate shapes. These were each then implemented into their own openFrameworks project befor finally collatingall of the scenes into the PiMapper classess / project.
I found the change in resolution to be a big factor, going from a 4k laptop, a 2k desktop, and a 1k projector, and the rescaling of the quads to fit the cubes - the loss of resolution really impacted the overall viewing experience of the work, where the lines would be broken up and distorted, removing the finish of the single point stroke.
Further work on the vectors would have helped me realise my design intent a little better. I could have identified / sourced some original work to draw inspiration from which could have served as a foundation to the work, but I am happy with the iterative approach I took to get to the final visuals.
As mentioned already I had several concerns for the resolution of the final piece which some testing could have identified, this would have perhaps given better results. What I did find though with this project was that I had a bit more time to sit and experiement with the software, code and outputs compared to other homeworks. I was able to give several hours to the project to experiment and iterate on the code in order to get to a point that I was happy with. I think If I could tell a story with my work, that would provide a better grounding. However, I am learning / applying ths skills at a surface level so perhaps with more in depth technical understanding I could have experimented further. Using the ofBook, or nNature of Code book as a starting point could have helped with this aspect.