Arte generativa

Computação é uma área da ciência gigante que inclui diversas sub-áreas também muito grandes. Machine learning e blockchain são algumas dessas sub-áreas que acabam adiquirindo um grande hype pela comunidade e gerando também novas áreas de estudos na áreea acadêmica.

Uma das sub-áreas da computação que já existe a bastante tempo mas não é tão difundida é a de arte generativa que busca misturar arte com computação.

O que é

Arte generativa é a criação de arte através de programação. Uma das ideias por trás disso é que a arte não é gerada totalmente pelo artista, mas sim através de valores aleatórios gerados pelo computador.

A arte generativa é uma junção da ideia do artista que definirá os parâmetros e a forma que a arte será gerada, e a capacidade do computador de processar essa ideia e gerar uma arte totalmente diferente a cada interação.

Essa área não é totalmente nova. Desde a década de 60, quando a era dos computadores ainda estava no início, alguns artistas já estavam começando a trabalhar com esse conceito. Georg Ness é um dos pioneros dessa área criando obras que influenciaram outros artistas, como a da imagem abaixo.

Obra "Schotter" de Georg Ness

Anders Hoff é um artista da atualidade que mantém um blog sobre suas criações e ideias em relação a arte generativa. Mas ele não é o único. No site Generative artistry, Ruth John e Tim Holman mantém uma série de tutoriais de como recriar obras famosas utilizando arte generativa através de javascript. Eles também possuem um podcast falando sobre arte generativa onde entrevistam alguns artistas.

Código

Na tentativa de brincar um pouco com arte generativa utilizando a biblioteca p5.js, criei o código abaixo que irá gerar uma nova imagem diferente a cada vez que essa janela for atualizada.

See the Pen Generative by cleyson (@cgreinhold) on CodePen.

Você pode ver ela sendo executada também em um loop no código abaixo.

See the Pen Generative loop by cleyson (@cgreinhold) on CodePen.

Ou uma versão alternativa

See the Pen p5.js by cleyson (@cgreinhold) on CodePen.