generative work

Code Draws Itself

Interactive pieces built with vanilla JavaScript and canvas. Each one is alive — move your cursor, click, resize your window. No two frames are the same.

001 CANVAS · JS

Particle Field

Particles drift and connect when close enough — forming organic constellations that follow your cursor.

[ move cursor to interact ]

002 CANVAS · PERLIN NOISE

Flow Lines

Hundreds of agents trace paths through a Perlin-like noise field — a study in emergent pattern from simple rules.

[ click to regenerate ]

003 CANVAS · RECURSION

Recursive Growth

A fractal tree that grows and sways. Each branch angle is influenced by cursor position — pull the wind left or right.

[ move cursor left/right to change wind ]

The algorithm starts with a trunk and recursively splits into branches. Each level reduces length by a decay factor and rotates by an angle offset. Cursor position maps to a windAngle variable that biases all branch rotations, creating the illusion of a breeze. Depth is capped at 11 levels to keep things smooth.

paintings & personal work

By Hand

The other side of the screen. Acrylics, watercolour, and whatever else is within reach. These are the things I make to slow down.

image coming soon

Untitled I

ACRYLIC ON CANVAS · 2024

image coming soon

Untitled II

WATERCOLOUR · 2024

image coming soon

Untitled III

MIXED MEDIA · 2025

image coming soon

Untitled IV

ACRYLIC · 2025

image coming soon

Untitled V

WATERCOLOUR · 2025

image coming soon

Untitled VI

MIXED MEDIA · 2025

"

Art is just code with feelings — and code is just art with rules.

See the professional side?

View my work Get in touch