These images were all created entirely with code, some in JavaScript with p5.js, and some in Python with matplotlib. They all include some amount of 'randomness', so produce a slightly different image each time the code is run.
These images were all created entirely with code, some in JavaScript with p5.js, and some in Python with matplotlib. They all include some amount of 'randomness', so produce a slightly different image each time the code is run.
These trees are fractals, a repeating pattern that could repeat itself infinitely. They are generated using L-systems. All that is required is an initial 'state' (in the case of these trees, the initial state is the trunk), and a rule to evolve it. For all of these trees, the trunk evolves to produce two new branches from the top, both of which evolve in the same way. Each evolution also creates the additional branches with some rotation and changes to size and/or colour. In addition, the 'painted' effect is just many translucent rectangles drawn randomly over the branches.
These L-systems were taken from Prusinkiewicz et al. (2003), see the paper for more details.
This uses a similar 'painted' effect to that used for the trees above. The shape of the leaves was modelled with Desmos, and then many of them are rendered with randomly varying shapes to make it look more natural.
The shape of these mountains is created with Perlin noise, a way of generating random numbers that vary smoothly. The textured background is also created using perlin noise, multiplied by a function that varies periodically along the diagonal. A watercolour effect here is achieved with many slightly deformed shapes, drawn over the top of each other, see here for an example.
Perlin noise was used to create a field, then many particles are created which follow the contours of the field. The particles' motions are traced, producing this image.