Painting with code, exploring sfumato through generative systems
Abstraction reimagines Leonardo’s sfumato through code — turning brushstrokes, light, and randomness into a digital form of painting.
From Renaissance technique to generative painting
The project Abstraction was born from a fascination with Leonardo da Vinci’s sfumato, the subtle technique that softens contours by layering translucent pigments to create smooth, atmospheric transitions. In the digital realm, I wondered if this centuries-old approach could be translated into code — how softness, blur, and light diffusion could emerge from logic, randomness, and algorithms rather than oil and brush.
Simulating the brushstroke
The first experiments were built around a single object simulating a digital brushstroke. Each stroke was drawn line by line with a slight, smooth random offset to mimic the fluid imperfection of a hand. Opacity ranged between 1 and 10 (on a scale of 255), producing a translucent layering effect. With thousands of strokes and carefully harmonized color palettes, textures began to appear — complex, organic, and softly blurred.
100 layers of brushstrokes
300 layers of brushstrokes
With palette 2
With palette 3
With palette 4
From brushwork to abstraction
By applying a sfumato-treated square at the center of the composition, the painting naturally evolved into an abstract work, where form emerged from accumulation. This algorithm became the foundation for a generative NFT on EditArt, a platform built around co-creation.
Adding a square
Adding a square
On EditArt, each collector becomes a co-creator, selecting one variation among a grid of randomly generated outcomes. Ten of these digital canvases have been collected, each unique but sharing the same genetic code.
Abstraction #0
Abstraction #5
Abstraction #7
Co-creators : Abstraction #5 Dave Bollinger, Abstraction #7 Chinalski
Color harmonies and palette exploration
Because of its layered nature, the algorithm became a tool for color research — a way to visualize harmony through accumulation. I later modified the program to generate numbered-color palettes randomly, allowing new chromatic dialogues to emerge.
2 colors
3 colors
4 colors
5 colors
From paint to wave
Curiosity led me to expand the painterly idea through GLSL shaders. The first tests recreated a wave, initially shaped in the spirit of sfumato — soft, organic, almost liquid.
Using a shader displacement map
Further experiments introduced a second texture used as a displacement map, where brightness values distorted the underlying image. This process became the foundation for the generative NFT project Abstraction 2, published on editArt.xyz. The mint was open for 24 hours, generating 45 unique pieces — each shaped by the same shader-driven deformation, revealing organic variations within a strictly coded system.
An open process
Abstraction remains an open and evolving project — a living system of code that bridges classical painting and generative aesthetics. Future iterations may push further into shader-based abstraction, new forms of color perception, and the endless interplay between chaos and harmony.


