▩▩▩▩▩▩▩ WEEK 8 ▩▩▩▩▩▩▩
Reframing my Proposal
After submitting my RPO for formative feedback, I revisited it and found myself lost. Firstly, my
introduction seemed lackluster and failed to effectively convey my research. It left room for ambiguity
and did not provide a clear roadmap for my study. Additionally, I struggled to establish a coherent
connection between my research method and objectives. Furthermore, as I scrutinized my RPO, I noticed that
I had a surplus of 150 words. This extra word allowance presented an opportunity for me to expand on my
key points.
I've developed a comprehensive checklist to guide the effective utilization of language in articulating my
research. In the introduction, I aim to provide a clear problem statement and emphasize the significance
of my proposed solution:
When summarizing existing research, my goal is to bolster my understanding and categorize it into three
core pillars. The research objectives encompass two primary elements: promoting algorithm awareness and
knowledge
acquisition. I also underscore the role of speculative design in prompting critical reflection rather than
furnishing immediate solutions. In the 'Approaches and Methods' section, my intent is to rationalize the
choice of a critical journal
approach as the most suitable method for my speculative prototyping. By ticking off this checklist, I'm
confident that my research proposal will be both clear and concise.
Challenges with Ideation
The ideation process has proven to be quite challenging. Creating a speculative prototype entails checking
numerous boxes to ensure its true speculative nature. To effectively stimulate critical thinking, I delved
into a plethora of references that touch upon human psychology and behavior. Simultaneously, I've been
striving to gain a comprehensive understanding of the current perspectives on algorithm curation.
However, I've also encountered some limitations stemming from the computational nature of the atelier.
Many of my ideas demand a strong grasp of coding, and the format I've opted for feels more like a personal
preference rather than a strategic choice for the prototype. My motivation is to leverage this opportunity
to familiarize myself with TouchDesigner, as I see its substantial potential for future interdisciplinary
collaboration. The challenge I'm currently facing is that becoming proficient with TouchDesigner requires
a significant investment of time.
In the past, my approach to 'making' in computational projects significantly differed from my approach in
other projects. This difference can be due to my lack of experience with non-traditional computing
software. My initial plan, which was to generate one idea for each of the listed dilemmas, hasn't yielded
the desired results. Consequently, I've opted for a shift in strategy. Instead, I'll allow ideas to emerge
serendipitously as I become more acquainted with TouchDesigner. During this learning process, I also
aspire to craft small experiments, thereby enriching the quality of my catalogue of making.
A list of abandoned ideas
Learning TouchDesigner &
Small Experiments
In all of my experiments, I've consistently employed the same approach. When I engage with tutorials, my
focus is on identifying and documenting the parameters that directly impact the final result. I've
discovered that this method is more efficient than gradually comprehending the function of each parameter
within every operator.
For each of the experiments listed below, I will meticulously record my key takeaways and learning points.
A glimpse into my saved tutorials
Experiment 4 – Image Instancing
In this experiment, I delved into the concept of instancing, a technique that involves generating multiple
copies of an object using a single render call. This computational approach not only conserves GPU and CPU
resources but also contributes to smoother frame rates.
My exploration extended to a comprehensive understanding of the parameters within the noise function,
encompassing both CHOP and TOP variants. Additionally, I found the feedback OP to be pivotal in creating a
feedback effect, one that could be influenced by the blur and ramp OP.
Through experimentation with the parameters of the blur and feedback OP, I achieved markedly diverse
outcomes. By adjusting these parameters, I could make the feedback appear more fluid and even produce a
captivating kaleidoscope effect in the background. The noise CHOP function played a crucial role in
functioning as a control mechanism, allowing for adjustments to the speed, quantity, and path of the
images.
I noticed that noise is used a lot for abstract visuals, but personally, I would prefer a more controlled
rather than random input. So I’ll keep a look out for what can achieve that.
Side by side view of using Image as texture
Experiment 5 – Image Instancing with Particles
This experiment represents an extension of the previous one, where I explored the application of
instancing as a texture overlay on an image. I was intrigued by the idea of symbolizing data manipulation
in this way, so I decided to give it a try.
I must admit that I faced some challenges in comprehending the intricacies of this experiment, as it
involved a rather complex process. The approach included the use of 4 math TOPs to extract RGBA data from
the image, followed by the reordering of this data into a geometric structure. It was confusing as the
references for the values were used in seemingly specific ways that didn’t feel logical to me. The Red and
Green values were plugged into translating the x and y axis, while the Blue value was plugged into scaling
the Y axis. Does it not sound a little random?
I found limited control over this particular file, and my scope for adjustments was mostly confined to the
noise and blur operators (OPs). Nevertheless, despite these limitations, I was able to achieve a distinct
outcome compared to the tutorial. The tutorial's result had a more fluid quality, which didn't align with
my vision. To introduce a more 'aggressive' aesthetic, I decided to increase the period of the noise and
the filter size of the blur, resulting in the desired effect.
An overview of the nodes
Experiment 6 – Particle Flow
In this particular experiment, I was introduced to 'particlesGpu,' a shader-based particle system. I found
this tutorial notably more straightforward and logical to follow.
The process involved using a 'ramp' and reordering the RGB values within the ramp. We then utilized 'point
transform' to center it along the xyz axis. Subsequently, we generated particles atop this setup using
'particlesGpu,' followed by the application of a 'feedback TOP' and movement manipulation through the use
of noise.
The diverse outcomes were driven by variations in the parameters of 'particlesGpu' and noise. What piqued
my interest was the incorporation of a keyboard in CHOP, enabling the creation of keybindings for altering
the seed of the noise inputs. This added an element of interactivity that I found quite valuable.
At this juncture, my familiarity with the noise operators (OPs) was growing. A quick glance at the results
allowed me to pinpoint the necessary tweaks to either enhance the frame rate or slow down the movements. I
also noticed a significant improvement in my workflow, as I became well-versed in keyboard shortcuts, and
the file setup process felt more streamlined.
Parameters of particlesGpu
Experiment 7 – Pixel Sorting
As I explored ways to manipulate images or devise filters to symbolize data extraction and manipulation, I
encountered 'pixel sorting.' Although I'd encountered this concept numerous times while working with p5.js
in the past, this was my first time implementing it in TouchDesigner.
This endeavor also marked my initial foray into the Python coding language and the utilization of external
scripts. Setting up my VSCode required the installation of several extensions, though the tutorial didn't
provide specific guidance on this aspect. I'm proud to say that after some research, I successfully added
the module path, overcoming this initial challenge.
However, I confronted several difficulties with the code, which felt distinct from working with p5.js or
HTML/CSS. I spent about an hour troubleshooting only to realize that my functions weren't recognized due
to a missing indent. I also attempted to tackle part 2 of the tutorial but encountered insurmountable
errors, leading me to spend over two hours before seeking assistance from Andreas via email.
Given the heavy reliance on scripts, I had limited parameters to experiment with in this project. To be
honest, I didn't fully grasp the code's intricacies beyond the ability to alter the direction of pixel
sorting. Part 2 delved into more advanced experimentation, which I struggled to reach.
This experiment was considerably more complex because the creator had optimized the code, but this also
made it less beginner-friendly due to its brevity.
Up to this point, working on this experiment has been a source of frustration since my primary aim was to
achieve the visuals outlined in part 2.
Heavy reliance on Code
Programming in Python
Experiment 8 – Particle Cloud & Pseudo Plexus
I must admit that this experiment ended up as a disappointment, even though it held immense potential, and I could envision creating something akin to the work of Refik Anadol (satire).
Several factors contributed to the failure of this experiment. Firstly, it placed an excessive burden on both my CPU and GPU due to a lack of optimization in the parameters. My frame rate consistently hovered in the 10-15 range, and troubleshooting proved challenging, primarily because of my limited knowledge about the operators being used. The project featured numerous points, lines, and nodes overlapping each other, making optimization a complex task. In my efforts to troubleshoot and optimize the process, I inadvertently crashed the file.
Despite the setbacks, I was genuinely captivated by the visual elements in this tutorial and felt a sense of disappointment that I couldn't achieve them. I could already envision each layer of the constant as an image, with the lines symbolizing algorithms extracting data to recommend another image. This experience underscored the crucial lesson of optimization, reminding me to revisit my catalogue of making and optimize all my files, in consideration of sparing others from similar frustrations.
9 frames per second...