Generative art

Notes on algorithmic art made with a pen, paper and a polargraph.

The arxiv is there.


Various dithering examples
2022/11/26-16:23:24

Some examples of dithering using bayes algorithm. But first the original (stable diffusion generated).


+20: Ana Hatherly
2022/11/15-10:28:20

Há muitos, muitos anos, se isto se pode escrever da vida de alguém, há mais de +20, desenhei com um escantilhão estas estruturas a lápis. A motivação foi, lembro-me perfeitamente, ou antes o catalisador, o alfabeto estrutural de Ana Hatherly publicado em 1967. Não me lembro exactamente como o consultei na altura, agora está disponível no arquivo po-ex.net, mas imprimiu sobre mim, agora que recupero parte daquilo que ficou esquecido durante este tempo, numa tinta pastosa de difícil remoção, algo que não saiu.

As "cópias" que fiz na altura são estas e não tenho a certeza de ter entendido na altura o texto que copiei.


Laser engraving bitwise raster images
2022/11/13-21:50:06

The motivation started after reading about Sleator's bitwise image on Knuth's "The Art of Computer Programming, Volume 4, Fascicle 1: Bitwise Tricks & Techniques".

It actually turned out very well!

Added a coat of white paint and repeated... mixed feelings about the result. Two laser passages, the first removing the white paint and the second to get a darker background.

Added two coats of water-varnish on both.

Last try with 3 passages, no paint or varnish on the final result.

Next step: Sierpinski triangles!

And finally a stray running dog.

Need to get some more wood squares blocks!


bit a bit
2022/11/04-18:25:59

Uma das formas mais simples de gerar imagens num rectângulo, de uma forma generativa, é usar os índices de uma matriz, (x,y) e efectuar o preenchimento dessa matriz com o valor de uma função f(x,y). Ora uma das formas mais interessantes de fazer isso é usando operações binárias bit-a-bit dos índices da matriz.

Exemplificando usando o GNU/Octave:

bitxor(3,5)
6. A disjunção-exclusiva, xor para os amigos, bit-a-bit de 3 com 56 i.e.
3=011
5=101
6=3|5=110
faz-se o xor bit-a-bit.

O código seguinte implementa e gera as imagens, com tamanho definido por n, neste caso 256x256, usando a função bitxor e fazendo no fim o congruência módulo 9 (o resto inteiro da divisão por 9).

############################################################
## author: @tca@masto.pt
## date: 2022-11-03 [15:03]
## This program is public domain.

timetag= floor(time*1000);
n=256;
[x y]=meshgrid([0:n-1],[0:n-1]);
z=mod(bitxor(x,y),9);
z=(z/max(max(z)));

m=512; ## define o tamanho da imagem final

## por ordem inversa para ficarem bem ordenados 

figure(3)
imshow(~logical(z))
print("-djpg", ["-S" num2str(m) "," num2str(m)], [num2str(timetag) "-negonebit-bitx" ".jpg"])

figure(2)
imshow(logical(z))
print("-djpg", ["-S" num2str(m) "," num2str(m)], [num2str(timetag) "-onebit-bitx" ".jpg"])

figure(1)
imshow(255*z)
print("-djpg", ["-S" num2str(m) "," num2str(m)], [num2str(timetag) "-grey-bitx" ".jpg"])

Resultado de aplicação da expressão mod(bitor(x,y),9)

com coloração de 1bit apenas, obtida com a operação logical dos valores anteriores

e a sua negação

O link inicial dá-nos mais pistas e outras fórmulas que podemos usar. Seguem alguns exemplos.

Exemplos

triângulos de Sierpinski mod(bitor(x,y),3)

mod(127*(x-127),(y-127))

mod((x.*y).^9,3)

mod(mod(x,y),4)

bitand(bitand(x,y),mod(bitor(x,y),19)).*mod(127*(x-127),(y-63))

mod(64*x,y)

Numa outra qualquer linguagem de programação é possível repetir estes exemplos ou construir outros ;) Fico à espera dessas partilhas @tca@masto.pt!

Bons desenhos generativos!


P.S.

bitshift(bitshift(bitand(bitxor(x,bitcmp(y)),x-350),-3).^2,-12)

Sleator (1976, unpublished)


Refs.:


Some impressionist pics
2022/11/04-09:46:39


Estudo de cara
2022/11/04-08:44:21

Desenhos generativo feitos pela polargraph com caneta BIC (1.6mm) em papel Canson A3 de 200g pintados com o resto da tinta da caneta que os fez.


Different shading algorithms
2022/11/04-08:44:08

Random walk on the image

Uniform additive noise

Uniform multiplicative noise


Por vezes esquecemos
2022/10/16-10:59:09

Desenhos generativos de gira-sois com caneta BIC (1.6mm) em papel Canson A3 de 200g pintados com o resto da tinta da caneta que os fez.


(in)visible cities
2022/10/14-09:27:46

(in)visible cities will be a literature inspired generative pen drawing series based on Calvino's book "Invisible Cities".

The images will be generated using stable diffusion deep learning text-to-image model, using a cured set of tokens from each city description and then converted and manipulated with my drawing algorithm.

Here's some examples of some work-in-progress.

Be merry and generative.


engre-nagem
2022/10/12-11:18:32


Criado/Created: 2022

Última actualização/Last updated: 26-11-2022 [16:23]


Voltar à página inicial.


GNU/Emacs Creative Commons License

(c) Tiago Charters de Azevedo