
Genuary é um incentivo para a criação de arte gerativa. No site são publicados gatilhos diários com a ideia de que eles sirvam como ponto de partida para escrever código que faça "coisas bonitas".
Em janeiro de 2021 eu (e boa parte do resto do mundo) tive um pouco de tempo a mais em casa e decidi seguir o Genuary de 2021.
Como uma restrição extra, decidi fazer tudo com código rodando em um ESP32 controlando um display e-ink de 7 polegadas. Isso significa que todos os desenhos têm que se limitar a duas cores e que qualquer animação seria bem lenta. Todo o código está disponível em um repositório git.
Abaixo estão os pontos de partida publicados no site do Genuary 2021 e fotos do resultado no display (você pode ir direto para o final para ver todas as fotos juntas). As frases em português são uma tradução livre minha.
-
Laços triplamente aninhados
Empacotamento de círculos.
-
Regra 30
-
Faça algo humano
Eu já tava cansado...
-
Pequenas áreas de simetria
-
Code golf! Com quão pouco código você consegue fazer algo interessante?
Essa foi um pouco difícil por causa da inicialização do display, que já exige bastante código.
Os artefatos não são da compressão do JPEG, mas resultado de desenhar linhas em certos ângulos com uma resolução baixa.
-
Subdivisão de triângulos
Tinha que ser o triângulo de Sierpinski.
-
Gere algumas regras, depois siga elas à mão em um papel
Faltou espaço no papel.
-
Só curvas
Mas só com retas.
-
Padrões de interferência
-
TREE
Uma tartaruga meio bêbada seguindo regras geradas por um L-System.
-
Use algo além de um computador como um processo autônomo (ou use uma fonte de aleatoriedade que não seja um computador)
-
Use uma API.
Fiz o clássico flow field com dados do vento do mês anterior (dados do MetaWeather, que parece estar fora do ar).
-
Não repita
Bouncy ball que passa só uma vez em cada ponto.
-
Subdivisão
-
Deixe outra pessoa decidir as regras gerais por você
O Bruno Gola teve a excelente ideia de desenhar algo baseado no próprio programa que está sendo executado no ESP32 para desenhar na tela.
O código lê cada bit da memória flash do microcontrolador (que contém o próprio código) e desenha um pixel preto se o bit é 1 ou um pixel branco se é 0.
-
Só círculos
Texturas de Perlin noise com halftone dithering
-
Desenhe uma linha, escolha outra cor, ande um pouco
Como só tenho duas cores, as linhas tão halftoned de novo. A cor é definida por perlin noise também.
-
Um processo faz crescer, o outro poda
-
Aumente a aleatoriedade ao longo do eixo Y
-
Sem laços
Então recursão e trigonometria.
-
function f(x) { DRAW(x); f(1 * x / 4); f(2 * x / 4); f(3 * x / 4); }
-
Desenhe uma linha. Só respostas erradas.
Confiando na distribuição normal.
-
#264653 #2a9d8f #e9c46a #f4a261 #e76f51, sem gradientes. Você pode também usar um fundo branco ou preto.
Meu display é preto e branco. As cores viraram bitmasks para as linhas.
-
500 linhas
-
Faça uma matriz de permutações de algo
Conectei pontos de um círculo e saiu um alfabeto.
-
Perspectiva 2D
-
Gradientes monocromáticos sem linhas
-
Use som
Não tive tempo de colocar um microfone. Usei algumas senoides fora de fase. Som Imaginário...
-
Qualquer forma, nenhuma pode encostar na outra
-
Replique um conceito natural
-
Eno's oblique strategies ("twist the spine")