Home
Jun 29, 2026

Creative Coding

Around 2019, when I was 12, I started programming at a school camp where we made tiny games with p5.js, a JavaScript library for drawing and interaction in the browser. I then took more p5.js classes with Rafid Hoda and, in 2020, a summer computer class with a middle school teacher. The fun part for me was not copying the lesson exactly; it was making my own small version of the exercise, changing it until it felt like mine, and asking the teacher what I could try next.

The 2020 summer class made me interested in doing this again in my free time. The early sketches in my OpenProcessing archive were where I learned basic programming concepts by reading docs and trying things: variables, functions, loops, conditionals, arrays, classes, and mouse or keyboard input. Most sketches were small visual tests of those ideas, with loops becoming patterns, coordinates becoming movement, and variables changing color, scale, or spacing.

The sketches were where programming first became visual and immediate, but they were not the only thing I was building before LLMs entered my workflow. As I got more comfortable, I started turning the same fundamentals into fuller apps.

Early circular line sketch with concentric broken rings.

A 2020 circular-line sketch, where repetition and spacing turn a small rule into a visual structure. Open sketch.

That turned into more deliberate noise and interaction studies. I liked taking Perlin noise and tuning it until it became a cleaner visual. Small changes to scale, contrast, repetition, and movement could make the result denser, more detailed, and closer to an art medium.

Red abstract field generated from tuned noise variables.

A 2024 abstract field made by tuning simple noise rules instead of drawing the form directly.

In 2025, coming to Eindhoven University of Technology pushed the work into fuller systems. Image-based noise became one direction, with source photos turning into light, edges, and texture. Agents also made iteration quicker and broader, so I could try more parameter sets, exports, and variations without treating each one as a separate manual pass. Printing changed the work because the MetaForum plotter made it possible to test it physically, not just on screen. That changed what mattered: contrast, export size, paper, and whether the image still worked as a print.

Pixelated figure study generated from image-based noise.
Two black-and-white generative prints pinned to a wall.

Left: a 2025 image-based noise study using light, edges, and source material. Right: printed studies made possible through the university printer.

External Links

OpenProcessing archive cover with a centered OpenProcessing logo over a generative blue and red background
Open OpenProcessing Archive

OpenProcessing Archive

Browser-based p5.js sketch archive with early visual programming experiments and interactive studies.

Instagram sketch log cover with a transparent Instagram logo mark
Open Instagram Sketch Log

Instagram Sketch Log

Creative coding account for generative sketches, image-based studies, and visual experiments.