Perante orçamentos limitados para a educação e cultura, os projectos de software livre e código aberto tornam-se essenciais para garantir a capacidade da criação digital em membros de famílias menos privilegiadas financeiramente. Não precisamos de pagar licenças de software, muitas vezes desproporcionais à capacidade salarial Portuguesa, para ter acesso legal a ferramentas gratuitas que nos permitem desenhar, animar, compor música, editar vídeo ou programar gráficos.
Um dos projectos mais interessantes que encontrei recentemente foi desenvolvido durante a pandemia para capacitar professores de arte com soluções online gratuitas, o DIDAE.EU, um simples site que lista ferramentas de várias categorias e ideias de como as capacitar para cumprir um objectivo que desbloqueie o processo criativo e a curiosidade em descobrir o verdadeiro potencial da tecnologia informática. Tenho muitos projectos que queria partilhar, mas gostaria de me focar em ferramentas completas que encorajam a aprendizagem da programação gráfica: desenhar coisas no ecrã, meter coisas a mexer, fazer pequenos jogos interactivos, contar uma história.
O Scratch da MIT é usado para ensinar programação a miúdos e graúdos, com muitos tutoriais e o bónus de podermos explorar como outras pessoas fizeram com exemplos. É bastante limitado, mas bom para ensinar o básico a quem nunca ouviu falar de linguagens de programação.
Outra das principais ferramentas e ambientes de desenvolvimento tipicamente mencionadas quando falamos desta área é o Processing, desenvolvido para facilitar o ensino da programação gráfica a estudantes de arte e design, abstrai muita da complexidade necessária para ter algo no ecrã, mantendo o acesso possível a coisas mais complexas. Como resposta às limitações do Processing, surgiram outros projectos para programação gráfica como o OpenFrameworks e o libCinder, e mais recentemente o OPENRNDR. Esperam um conhecimento mais profundo de linguagens de programação e ambientes de desenvolvimento, mas em contrapartida permitem fazer coisas mais complexas e com melhor performance que o Processing alguma vez conseguiria.
Nos últimos anos também temos vistos um surgir das chamadas ‘fantasy consoles’, ambientes de desenvolvimento com limitações de resolução de ecrã e áudio típicas dos computadores e consolas de jogos dos anos 90, mas onde podemos usar linguagens de script modernas como LUA ou javascript para escrever o nosso código. Além disso inclui editores de gráficos e trackers de música disponíveis no software, o que as torna numa plataforma completamente auto-contida de criação digital onde as limitações potenciam a criatividade. Uma das mais famosas fantasy consoles de código aberto é o TIC-80 com vários tutoriais de introdução à plataforma e uma longa lista de jogos e *demos* feitas para esta plataforma gratuitamente disponíveis para jogar e consultar a fonte para aprendermos como foram feitos.
Outro ambiente sandbox de programação gráfica online onde podemos consultar como o código das outras pessoas foi feito é o ShaderToy, a página web para programação de shaders, mais conhecida do mundo. A programação de shaders executa directamente na placa gráfica, devido à sua natureza de computação paralela, e permite programar visuais com performance superior à dos processadores comuns, é uma área mais nicho da programação gráfica, mas muito atrativa a quem está a aprender a programar gráficos 3D.
Há outras bibliotecas de código aberto de mais baixo nível que poderia mencionar como o libSDL, o raylib ou o bgfx, que são essenciais conhecer para quem quer desenvolver aplicações e videojogos para várias plataformas, mas provavelmente demasiado avançadas para quem só quer aprender a fazer as coisas mexer no ecrã.
Por outro lado, há ferramentas de desenho, composição e programação completamente visuais, que requerem algum conhecimento do meio, mas não necessariamente conhecimentos avançados de linguagens de programação. Temos editores de modelação 3D mais conhecidos como o Blender ou o seu parente menos conhecido bforartists.
E depois temos completos ambientes de programação visual mais modernos como o [cables.gl] e o [tixl.app] onde conseguimos prototipar e manipular composições gráficas interactivas com nós e caixas de operadores. Pode parecer um bocado assustador à partida, mas têm todos os tutoriais disponíveis para facilitar o acesso aos interessados e uma comunidade activa de utilizadores.
Lista mais completa de ferramentas livres de código aberto está disponivel online no meu github.