PROJECT PLANNING¶
As the project consists of several parts I structured my project plannign through these components.
Parametric Design¶
Growing Roots¶
Sensor & Visualization¶
Collective Blanket¶
Questionaire for Growing Roots/Moldes¶
Parametric Design Set- Up for Moldes¶
Technical Set-Up Arduino¶
Roots¶
Roots Time Laps¶
Touch Sensor & Video projection¶
Code
#include <CapacitiveSensor.h>
CapacitiveSensor cs = CapacitiveSensor(4, 2);
// (send pin, receive pin)
long threshold = 500; // you will adjust this
void setup() {
Serial.begin(9600);
}
void loop() {
long value = cs.capacitiveSensor(30);
if (value > threshold) {
Serial.println(1); // touched
} else {
Serial.println(0); // not touched
}
delay(10);
}
Ultrasensoric Sensor & Audio¶
Code:
//ULTRASONIC SENSOR
int TRIG = 3;
int ECHO = 2;
int DURATION;
int DISTANCE;
void setup() {
//ULTRASONIC SENSOR
pinMode(TRIG, OUTPUT);
pinMode (ECHO, INPUT);
//SERIAL
Serial.begin(9600);
}
void loop () {
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);
DURATION = pulseIn(ECHO, HIGH);
DISTANCE = DURATION / 58.2;
if(DISTANCE > 0 && DISTANCE < 50) {
Serial.println(DISTANCE);
delay(10);
}
}
Recording Root Sound¶
Code:
// -------- Pins --------
const int sensorPin = A0;
const int speakerPin = 6; // connecting to D5
// -------- Audio Setup --------
const int pwmChannel = 0;
const int pwmResolution = 8;
float baseline = 0;
float smooth = 0;
void setup() {
Serial.begin(115200);
delay(2000);
analogReadResolution(12); // 0–4095
// NEW Core 3.x syntax
ledcAttach(speakerPin, 1000, pwmResolution);
}
void loop() {
long sum = 0;
for(int i=0; i<32; i++){
sum += analogRead(sensorPin);
delay(2);
}
float raw = sum / 32.0;
float voltage = raw * (3.3 / 4095.0);
baseline = baseline * 0.999 + raw * 0.001;
float filtered = raw - baseline;
smooth = smooth * 0.9 + filtered * 0.1;
float amplified = smooth * 6.0;
int freq = abs(amplified);
if(freq < 100) freq = 100;
if(freq > 3000) freq = 3000;
// Core 3.x version uses PIN, not channel
ledcWriteTone(speakerPin, freq);
Serial.print("Freq: ");
Serial.println(freq);
delay(40);
}
STORYTELLING¶
Setup for video¶
Atmosphere: Dimmed light, warm tone, calm ambiance.
Room: Theatrum anatomicum - at Waag
Main element - Root blanket:
-
Root blanket lying on a beige/off-white fabric for a soft, earthy look or a darker surface for higher contrast
-
Consider placing them on a wooden board to frame the piece — prevents it from “getting lost” in the space.
-
Optionally, add a handful of soil around the roots for more organic texture.
Projection:
-
Visuals of my recordings of growing roots projected onto the background wall.
-
Must connect technically via cables — keep connections hidden under the table or surface.
Sound¶
-
Main sound is the sound of growing roots, recorded via electroc chemical signals - organic creaks, scratches, and low-frequency movements
-
Speaker setup Subtle, ideally beneath or behind the scene; keep cables hidden - will be added later with video editing - for exibithion maybe inside the roots.
Requirements¶
-
Cables & tech: All cables must be physically connected to my laptop as TouchDesigner has to run for the sensor signals → all technique hidden underneath the table (exibithion)/ behind something for video
-
Projection: projected visuals have to algin with the physical setup — test connection and brightness.
Voice Over¶
Voice Over will be mixed with sounds of growing roots
- How am I rooted when everything is in motion?
- I listen to the sound of roots growing — a pulse beneath the surface.
- When was the last time you reached for your roots? - Were they beneath your feet? In a place, a memory, a relationship?
- We are all connected, yet rarely intertwined.
- We move, drift, uproot, and replant ourselves again and again.
- Maybe connection isn’t something we find — maybe it’s something we grow.
- Inside ourselft. Together. Slowly. Quietly.












