Genuary 2021

[ en ]

Genuary 2021

Um display e-ink mostrando curvas que surgem a partir de linhas de um quadrado

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.



  1. Laços triplamente aninhados

    Círculos preenchendo máximo possível a tela.

    Empacotamento de círculos.

  2. Regra 30

    Automato celular formando triângulos.
  3. Faça algo humano

    Boneco de palito dando tchau.

    Eu já tava cansado...

  4. Pequenas áreas de simetria

    Quadrados dentro de quadrados dentro de quadrados com um aspecto aparentement fractal.
  5. Code golf! Com quão pouco código você consegue fazer algo interessante?

    Linhas retas vindo de várias direções e se encontrando no centro da tela.

    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.

  6. Subdivisão de triângulos

    Triângulo de Sierpinski

    Tinha que ser o triângulo de Sierpinski.

  7. Gere algumas regras, depois siga elas à mão em um papel

    Regras para um desenho no estilo LOGO. Linhas desenhadas a mão formando um caminho.

    Faltou espaço no papel.

  8. Só curvas

    Várias retas formando curvas.

    Mas só com retas.

  9. Padrões de interferência

    Vários quadrados superpostos formando padrões de interferência.
  10. TREE

    Um árvore formada por segmentos de reta.

    Uma tartaruga meio bêbada seguindo regras geradas por um L-System.

  11. Use algo além de um computador como um processo autônomo (ou use uma fonte de aleatoriedade que não seja um computador)

  12. 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).

  13. Não repita

    Bouncy ball.

    Bouncy ball que passa só uma vez em cada ponto.

  14. Subdivisão

    Retângulos se subdividindo até que não dê mais para discerni-los.
  15. Deixe outra pessoa decidir as regras gerais por você

    Padrão aparentemente aleatório de pixels brancos e pretos.

    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.

  16. Só círculos

    Textura de Perlin noise com halftone dithering. Textura de Perlin noise com halftone dithering.

    Texturas de Perlin noise com halftone dithering

  17. Desenhe uma linha, escolha outra cor, ande um pouco

    Linhas em halftone

    Como só tenho duas cores, as linhas tão halftoned de novo. A cor é definida por perlin noise também.

  18. Um processo faz crescer, o outro poda

  19. Aumente a aleatoriedade ao longo do eixo Y

    Bloco de pixels pretos com uma margem que vai ficando cada vez menos suave.
  20. Sem laços

    Curvas formadas por linhas retas em um quadrado. Curvas formadas por linhas retas em um quadrado.

    Então recursão e trigonometria.

  21. function f(x) { DRAW(x); f(1 * x / 4); f(2 * x / 4); f(3 * x / 4); }

    Linhas que começam pequenas no centro do display mas crescem e se entortam em direção às margens.
  22. Desenhe uma linha. Só respostas erradas.

    Vários pontos espalhados, mas com uma concentração maior ao longo do centro vertical da tela.

    Confiando na distribuição normal.

  23. #264653 #2a9d8f #e9c46a #f4a261 #e76f51, sem gradientes. Você pode também usar um fundo branco ou preto.

    Várias linhas pontilhadas.

    Meu display é preto e branco. As cores viraram bitmasks para as linhas.

  24. 500 linhas

    500 linhas *quase* retas, uma ao lado da outra.
  25. Faça uma matriz de permutações de algo

    Uma matriz de variações de linhas tortas, parecendo um alfabeto desconhecido.

    Conectei pontos de um círculo e saiu um alfabeto.

  26. Perspectiva 2D

    Um túcel de quadrados em perspectiva.
  27. Gradientes monocromáticos sem linhas

    Padrão halftone.
  28. Use som

    Algumas senoides fora de fase sobrepostas.

    Não tive tempo de colocar um microfone. Usei algumas senoides fora de fase. Som Imaginário...

  29. Qualquer forma, nenhuma pode encostar na outra

    Padrão tesselado de hexágonos.
  30. Replique um conceito natural

  31. Eno's oblique strategies ("twist the spine")


Voltar ao início ⇑