Tjerk Woudsma
Creative Developer, Designer

LinkedIn
Github
Personal blog

Currently working as a JavaScript Consultant at Passionate People
Contact: mail


WIP weekend projects:
Swarmlet, a self-hosted, open-source PaaS
Heron, a hardware MIDI sequencer
...

Sketchbook

"Heron" hardware MIDI sequencer V2 (test board) - 2024

Working on a second version of the sequencer. This version has 16 buttons + encoders for steps/trigs, additional buttons for different actions and a slide potentiometer (crossfader).

#arduino #MIDI #sequencer #multitrack #raspberry pi

"Heron" hardware MIDI sequencer (work in progress) - 2023

Built with:
- Raspberry Pi 4B
- 4.3" DSI Touch Display
- Midiface 4x4 USB MIDI interface
- Custom PCB and various switches/encoders/GPIO expanders/LEDs/...
- Shell, Python and Node.js

The UI is built with Electron and React. The previous version of the UI used node-raylib - which has less overhead and is more performant, but developing in a browser window is much faster. The quad-core RPi seems to be able to handle it without too much latency. The Electron app communicates with the Python processes for IO access and shared state is stored in memory using Redis.

#hardware #midi #sequencer #raspberry pi #python #node.js #redis #raylib #electron

Marbler sketch

#WebGL #GLSL #react-three-fiber

Digital Feedback - 2015-2020

Algorithmic non-linear textures. Made in Processing.

#processing #java #feedback loop

Digital Feedback - 23-04-2015

#processing #glsl

Digital Feedback - 07-05-2015

#processing #glsl

#processing #opengl #glsl

Venation - 2015

#processing #space colonization algorithm #bugs

#processing #feedback #loop

#processing #glsl

Pixel Voyage - GAN test on faces dataset

#python #keras #GAN

Pixel Voyage - GAN test on faces dataset

#python #keras #GAN

#processing #feedback #loop

Digital Feedback - 09-05-2015

#processing #glsl #ping-pong #shader

#processing

Pixel Voyage (tests) - 2019

https://pixel.voyage

#python

#whatsapp #continuums

Attractor - 2015

#processing #vectors #generative

Pixel Voyage (tests) - 2018

#python

Cloudskate (tests) - 2018 skating.team cloud.skating.team

#cloudskate #skating.team #javascript #webgl #threejs

Never lose a screenshot

#screenshot #shuffle

10-11-2014

#processing #RAM dump #visualisation #turtle

UV

Source: https://github.com/woudsma/feedback-shader

#javascript #webgl #glsl #threejs #feedback

Flock drawings - 2014

#processing #flocking

Magnetic - 2013

#photography #magnet #iron powder

UrbanXpose projection mapping tests - 2016
Temporary exhibition @ Je m’appelle Company, Amsterdam

Synchronized Full HD video across multiple surfaces
Materials: 5 Short-Throw HD beamers, 6 Raspberry PI’s, network switch, lots of LAN/power cables

#projection mapping #raspberry pi #openframeworks #node.js #ffmpeg

Digital Feedback - 11-06-2015

#processing #glsl #ping-pong #shader

#javascript #webgl #three.js #glsl

Digital Feedback - 22-04-2015

#processing #glsl #ping-pong #shader

Crystallization

#javascript #webgl #glsl #three.js

Algo badges

#javascript #webgl #glsl #three.js

2D ping-pong shader

#javascript #webgl #three.js #glsl

#javascript #webgl #three.js #glsl

WebGL experiments - #2
2017

#javascript #webgl #glsl

28min compilation of footage from an exhibition at BAM! Festival in Hengelo - 2015

Materials: 4x2.2M LED display, computer running custom software written in Processing

#installation #generative #processing

Dystopian Network - Sander Molenaar
GDA graduation exhibition - 2016

Materials: Raspberry Pi - 55″ flatscreen - 8 iMacs - 10 port switch - Redbull
Software: Node.js - Express - Socket.io - React

#GDA #ArtEZ #node.js #express #socket.io #react #raspberry pi

Hypercubes #2 - 2017
(every node connects to other nodes)

1. Cube - 3 dimensions
2. Tesseract - 4 dimensions
3. Octeract - 8 dimensions
4, 5. Dekeract - 10 dimensions
6. Dodekeract - 12 dimensions

#javascript #n-dimensional cubes

Dystopian - tests - 2016

#node.js

Conglomeraat #2 - 2015
distribution / dislocation - 50x70cm

#screen print #processing #generative #nonlinear #algorithm

Vector Odyssey - 2014

#processing #vector #animation #2001: A Space Odyssey

OpenGL RGB experiments - 2015

#processing #glsl #generative #nonlinear #pixel #graphics

RGB/HSL experiments - 2015

#processing #generative #pixels

DLA - 2015

#processing #DLA

Processing + lasercutter experiments - 2014

#processing #simplecode #aki #artez

Balance 3 2015

#processing #nonlinear #2d

PostGIS clustering

#node.js #mapnik #postgis

VLC feedback

#vlc #feedback

Book covers with Sander Molenaar - Coding Freedom
2015

#processing

Balance 1 2014

#processing

#processing #glsl

#feedback #chrome

dystopia in progress => with cl0udv1rus (Sander Molenaar)

#node.js #react #es6 #rxjs

Pixel algorithms @ BAM festival 2015

#processing #screen estate

#processing #opencv #2001: a space odyssey

#processing #digital #feedback

Feedback

#processing #digital #feedback

#processing #glsl

Reaction #2

#processing #digital #feedback

Reaction #1

#processing #digital #feedback

1. Tesseract
2. Penteract
3. Dekeract
4. Octeract
5. Hexeract
6. Penteract

#processing #hypercubes

Dislocations

#processing #feedback #generative

#processing #feedback

Digital feedback #2 - Processing

#processing #feedback

Digital feedback - Processing

#processing #video #feedback

Square root

#processing #generative

Self-organising cell textures

#processing #generative

Shape to shape

#processing #generative #genetic

A genetic algorithm trying to solve the Traveling Salesman Problem (TSP) with 15+ cities.

If the salesman has to visit all the cities, but can only visit each city once, which route is the quickest?

#processing #genetic #algorithm #tsp #pyprocessing

#processing

#processing #generative

Seiça / Arnhem

The algorithm used for generating the leaf venation pattern is inspired by the "Space Colonization Algorithm". Written in Processing.

See this tutorial for more information.

"Nature"

Dune | Screen print - 46.5x46.5cm, black ink on Simili Japon paper, 0-11

1e3² (1M) pixels

The grid is initially populated with random values between 0-255, creating a black-and-white noise surface. The algorithm iterates through each pixel every frame, creating a new value for the pixel based on it’s neighbors. They are trying to find a balance. The algorithm is very slow, it’s not optimized for the GPU. This is a frame after ±20 min of rendering.

#processing #screen print #algorithm

Inspired by "Substrate" by Gallery of Computation

Dune series

#processing #generative #algorithm

Movie-collages