media art spring 2021
contents concept process output
Concept Digitising water surface. Water is a substance with infinite resolution. It is dynamic and ever - changing. With this project i wanted to capture and use this data to make a low-res representation of it. In its current state, the project is more so an expirement, a proof of concept, than a fully fleshed out project. Ideally it would capture real, organic waves instead of a fabricated one.
Process Original idea focused on distortion. The idea was to use water as a way to distort forms.
Balls floating on top of water, the poles is to keep the balls in place
Each ball cor
rresponds to a square.
The vertical position of each ball will control how much each square is pushed out.
The idea shifted from using water refraction as distortion to using the surface height as a data input for distortion.
Make models with the correct measurements in Fusion 360. These where then imported into Slicer to generate files for laser cutting.
Stand for servo motor
Rack and pinion
Piece for rotary encoder
Water height is collected with a rack and pinion rotating a rotary encoder. This data is then transferred and processed in Unity game engine. The project has nine entry points to collect surface height (nine encoders). Data between these nine inputs is using an average of the four nearest points. This average is calculated every frame. Waves are generated by two servo motors pushing two plates back and forth.
This is the arduino code collecting the data. In the loop function, the getRotaryPosition function is called for each rotary. This function compares the last known position of the rotary encoder with the current input. If the value is changed it will update an array containing all the rotaries at the correct spot. For example, rotary - 0 will update the rotary at position 0 in the array. This data is then sendt to Unity through the Serial.println with info about which encoder it is and its position.
media art spring 2021