5-in-5
Prototype 1
The first experiment is an exploration of how a generative design piece using primitives could work, and what kinds of parameters I can use to control the piece.
I went through a few rounds of iteration as I worked on this project. I aimed to create a loop animation and identify as many parameters as possible that could be user-controlled. I observed the effects of these parameters, and how certain sliders invited more interaction and certain invited less.
As I figure out the technology behind my project, these sliding parameters will be controlled instead by human gestures and movements. I want to keep the same sense of exploration, and allow people to figure out how to play with different aspects of the sketch and analyse which ones encourage comfort/discomfort.
Reflection
I feel like this prototype was a good starting point for thinking about the final image of the project, and how I want people to play with the output. I like the layered aspect of it, and the constant movement. Both of these are probably concepts I’ll explore in further iterations. I’d like the final visual to have more dynamism though - both in terms of what the control parameters affect and the sketch itself.
Prototype 2
For the second prototype, I chose to explore a form of technology. I used a PIR motion sensor with an Arduino and an LED to see how viable it would be in motion detection, tracking, and capture.
The circuit itself, after some trial and error, was not too complicated to set up. I connected the input, output, and ground nodes on the PIR sensor to the corresponding keys on the Arduino board, and attached an LED to the output. I uploaded code to the Arduino that theoretically should have turned the LED on whenever motion was detected on the sensor and turned it off otherwise.
However, I ran into trouble when the LED was always on, never turning off, because the sensor is sensitive enough that it was always detecting some sort of motion.
After some searching and troubleshooting, I managed to turn down the sensitivity of the sensor by turning down two tiny knobs on one end of the sensor that control time delay and sensitivity. However, the result of this was that motion was detected and undetected at a very high speed, which meant that I got an LED blinking very fast.
Reflection
The results I got from this experiment were the outcome of a rudimentary start to a new piece of technology. Given more time and resources, I could get a more sophisticated system working that could probably be used to control a parameter of a sketch or art piece.
However, the results I got through a PIR motion sensor were essentially boolean - so they can be used to control one single parameter in absolute terms. I am unsure of how viable this would be in a larger, more complex project which needs multiple control parameters.
Prototype 3
My third prototype was built on exploring ways people could interact with each other and the project, and the possible data points I could aim to capture. I sketched out scenarios demonstrating the environmental, spatial, practical, and experiential factors.
Reflection
This prototype was a good way to get myself thinking about the more human factors of the project. Up until now, I’ve been mostly focused on technological considerations and output, and taking a break from that to sketch out environments and people helped me ground myself within the project. It also helped me get some initial ideas about how people can interact with each other in the context of this project, and continued sketching will probably help me land on a solid idea on how to proceed.
Prototype 4
The last two prototypes are explorations of the geometries and aesthetics of 3D visualisations in different platforms. For this prototype, I worked with three.js.
I aimed to create something dense, using multiple kinds of geometries. I restricted myself to simple geometric shapes, because more complex ones would be more difficult for the user to understand, visualise, and connect with. I kept in mind parameters that could allow for soft, gentle movement that would be intuitively understandable if I choose to make this an animated prototype.
Reflection
This prototype was a good starting point for visualising three dimensions. I had to keep in mind the extent to which 3D, especially on a screen, can be hard for minds to conceptualise and relate to. I think adding dynamism to this prototype would help assess that aspect better. I also think the gentle flowing nature of the geometry is worth keeping in whichever visual style I end up using - it lends itself to intuitive movement that could be easy to understand.
Prototype 5
For the final prototype, I took the image I created with three.js above and tried to recreate it with p5.js, adding in animation and movement. Due to limitations of p5.js, I wasn’t able to add the noisy dots yet, but I worked out the sin wave with the blocks. p5.js in 3D works differently from three.js 3D, so the overall look and feel of the geometry, materials, and animation is different.
Reflection
Building a dynamic 3D visual helped me start to articulate the different parameters I could use to control such a sketch. The parameters will need to be connected to gestures spatially within the sketch too, or a 3D sketch could get too confusing.
Exploring another 3D platform like p5.js was also interesting. p5.js handles 3D rendering differently than three.js. While p5.js has softer colours and easier dynamics, three.js has better lighting and rendering systems, spatial flexibility, and the ability to render multiple scenes on top of each other. The platform I use will depend highly on the kind of sketch I want to make.