Demo 2025
by Tim Rodenbröker, posted on June 24, 2026




A series of visuals displayed at DEMO Festival 2025. Made with Processing and dithered with gifsicle. I documented the process of creating these systems and gave a talk at the festival about it. You can read or listen to the whole story on this blogpost.
int elements = 32;
int dur = 100;
void setup() {
size(72, 128);
}
void draw() {
background(#0000ff);
float driver = map(frameCount, 0, dur, 0, 360);
float mag = width * 0.8;
float step = 360 / float(elements);
noStroke();
fill(0);
for (int j = 0; j < elements; j++) {
for (int i = 0; i < elements; i++) {
float mag2 = map(sin(radians(driver + j * 10)), -1, 1, mag, mag);
float stepOutside = mag2 / float(elements);
float wave = sin(radians(driver + j*4 + j)) * 40;
float e = map(sin(radians(driver* 4 + i * 10 + j * 10 )), -1, 1, 0, 255);
fill(e);
int x = int(sin(radians(i*step * 2))* j * stepOutside);
int y = int(cos(radians(i*step))* j * stepOutside);
push();
translate(width/2 + wave, height/2);
rect(x, y-5, 5, 10);
fill(255 -e);
rect(x+5, y-5, 5, 10);
pop();
}
}
}