Como projecto final para a disciplina de Grafismos, a criação de um meme, decidi parodiar o “triângulo hipster” (um conceito que eu achava menos afirmado do que a realidade da pesquisa me veio a revelar). Basicamente, a ideia foi a criação de um triângulo esverdeado (o tom mais utilizado), que permitisse a variação da opacidade (muito importante para a “cena indie”). Este triângulo, um pouco à semelhança de memes como o Advice Dog, marcará pela sugestão ao leitor do abandono de vários hábitos “fracos” da cultura da internet, substituindo-os por alternativas mais fixes. Este triângulo aparecerá sempre sobre culturas quer da internet, quer mainstream, à partida para “dizer mal” de algo que esta sugira. A frase base “Abandon your porn, watch a Felinni” servirá como exemplo do que se pode fazer com este meme.
Como fonte tipográfica, escolhi a Rockwell pela sua qualidade indie, com a possibilidade de variar o tamanho. A disposição de texto será, à partida, dupla (cima e baixo), se bem que o utilizador terá a possibilidade de criar ele mesmo os textos (podendo assim optar por um, outro ou ambos, bem como a sua posição no eixo dos x). O branco de origem na fonte servia para a maior parte das imagens, mas existe a possibilidade de o mudar para outras mais “da cena”
Sem mais demoras, eis o código:
size (500, 400)
colormode(RGB, 255)
imagens = [“hyp1.png”, “hyp2.png”, “hyp3.png”, “hyp4.png”]
imagem = choice(imagens)
image(imagem, 0, 0)
#variáveis
var(“textocima”,TEXT, “Abandon your porn”)
var(“textobaixo”, TEXT, “watch a Felinni”)
var(“alfa”, NUMBER, 0,0,255)
var(“fonte”, TEXT, “Rockwell”)
var(“tamanho”, NUMBER, 50, 8, 200)
var(“xizecima”, NUMBER, 100, 30, 300)
var(“xizebaixo”, NUMBER, 100,30,300)
var(“tom”, NUMBER, 0, 0, 255)
var(“tom2”, NUMBER, 0, 0, 255)
var(“tom3”, NUMBER, 0, 0, 255)
#texto
fill(tom, tom2, tom3)
font(fonte,tamanho)
text(textocima, xizecima, 70)
text(textobaixo, xizebaixo, 340)
#triangulo hispter
fill(80,200,160,alfa)
beginpath(250, 100)
lineto(170, 250)
lineto(330, 250)
endpath()
E fica aqui o projecto resolvido; no fim optei por usar fundos neutros, uma vez que o branco ficava aborrecido, e a maior parte dos padrões que encontrei pareciam excessivos. Entre as cores incluo a do próprio fato, simbolizando o ambiente perfeito de camuflagem. Esqueci-me dizer que, a nível de aplicabilidade, tinha pensado estes bonecos como ícones alternativos para blogues a afins; ou seja, em vez de se dirigirem a um público específico, seriam aqueles que ficam em “storage” para as pessoas que procuram algo diferente do que já têm
código:
size(1200,800)
background(255)
olhos = [“olho1.png”, “olho2.png”, “olho3.png”, “olho4.png”, “olho5.png”, “olho6.png”, “olho7.png”, “olho8.png”, “olho9.png”, “olho10.png”]
cabecas = [“cabeca1.png”, “cabeca2.png”, “cabeca3.png”, “cabeca4.png”, “cabeca5.png”, “cabeca6.png”, “cabeca7.png”, “cabeca8.png”, “cabeca9.png”, “cabeca10.png”]
caudas = [“cauda1.png”, “cauda2.png”, “cauda3.png”, “cauda4.png”, “cauda5.png”, “cauda6.png”, “cauda7.png”, “cauda8.png”, “cauda9.png”, “cauda10.png”]
armas = [“arma1.png”, “arma2.png”, “arma3.png”, “arma4.png”, “arma5.png”, “arma6.png”, “arma7.png”, “arma8.png”, “arma9.png”, “arma10.png”]
lados = [“lado1.png”, “lado2.png”, “lado3.png”, “lado4.png”, “lado5.png”, “lado6.png”, “lado7.png”, “lado8.png”, “lado9.png”, “lado10.png”]
fundos = [fundo1.png”, “fundo2.png”, “fundo3.png”, “fundo4.png”, “fundo5.png”, “fundo6.png”, “fundo7.png”, “fundo8.png”, “fundo9.png”, “fundo10.png”]
indice = random(0, 9)
image(“tronco.png”, -80, 0)
image(olhos[indice], -80, 0)
image(cabecas[indice], -80, 0)
image(caudas[indice], -80, 0)
image(armas[indice], -80, 0)
image(lados[indice], -80, 0)
image(fundos[indice], -80, 0)
Ficam aqui mais duas maquetes do projecto, agora que decidi de vez que não consigo fazer vestes ninja com os tais padrões de ilusão de óptica. Ficam com cor ninja fixa. Provavelmente irei acrescentar fundos
Maquete; ver em “High Res” para perceber melhor a ilusão de óptica
As cinco características são: cabeça, olhos, arma, cauda, fundo. A possibilidade de uma sexta será colocada após completar o projecto montado em nodebox, e será, como planeado originalmente, costas e/ou armamento secundário.
Relativamente aos fundos, tenho vindo a gostar da junção camaleão/fundo ilusório. Vou experimentar mais algumas alternativas, possivelmente incluindo o camaleão ficar com um fato de cor única e o fundo mudar de tom, bem como tentar compreender como é que as máscaras do nodebox funcionam, para ver se consigo concretizar a minha ideia original
(A qualidade da imagem ficou bastante terrível, vou tentar jogar com as diferentes alternativas de exporte para ver se consigo algo com melhor aspecto)
A ideia deste projecto era a criação de camaleões ninja. O intuito era estabelecer uma relação de pleonasmo, pegando num animal já de si associado à ideia de camuflagem , e fundi-lo com um conceito também ele directamente relacionado com dissimulação física.
O pensamento das características móveis centrou-se essencialmente na morfologia do camaleão. No entanto, também pretendia que o camaleão tivesse diferentes alternativas para o seu armamento. Por fim, tinha a ideia de que o seu “fato” ninja poderia adquirir padrões de ilusões de óptica, mas não tenho vindo a conseguir descobrir como o fazer. Assim sendo, decidi que poderia ser engraçado dar fundos neutros à “frame” das ilustrações, e deixar que todo o facto ficasse com essas mesmas cores em vez de o pintar, de forma a misturar o camaleão com o fundo
Conceito: Posters a gozar com a ideia do fim-do-mundo numa geração que já sobreviveu à mudança do século. Neste caso, a referência é 2012 mas, para manter uma certa atemporalidade, anulou-se a data, optando antes por “in two years”. A maior parte das referências apocalípticas são também brincadeiras baseadas em diferentes referências.
Nota: O contorno das ilustrações não é propositado, mas, por alguma razão, ele encontra-se presente. Todas as formas para contrariar este efeito não tiveram sucesso (anular strokewidth, tentar dar cor ao stroke das imagens equivalente à cor destas, vectorizar de várias formas diferentes, gravar noutros formatos). No final, acabei por assumir este contorno.
Outra nota: O tumblr provavelmente aumenta as imagens, daí a qualidade reduzida. Isso, e o facto de serem printscreens
size(380, 520)
colormode(RGB, 255)
background(255)
icones = [“chtulhu2_vectorized.png”, “monster.png”, “meteorite.png”, “nuky.png”, “empire2.png”, “cat.png”, “pingu.png”]
arautos = [“Chtulhu”, “Spaghetti Monster”, “Meteor”, “Judgement Day”, “The Empire”, “Basement Cat”, “Pingu”]
cores = [(221, 226, 182), (238, 230, 171), (144, 183, 154), (197, 50, 22), (145, 154, 125), (171, 187, 159), (200, 189, 206)]
cores2 = [(170, 204, 177), (197, 188, 142), (231, 244, 231) , (227, 204, 168), (194, 193, 147), (111, 139, 148), (245, 234, 253)]
indice = random(0,6)
fill(cores[indice])
rect(0, 0, 500, 600)
fill(cores2[indice])
star(190, 180, points=30, outer=600, inner=50)
nofill()
image(icones[indice], 80, 80)
fill(50)
font(“Gotham”, 25)
text(“Can you feel it?”, 20, 50)
fill(255)
rect(0, 380, 560, 8)
fill(cores2[indice])
rect(0, 388, 600, 560)
fill(0)
font(“GothamBold”, 33)
text(arautos[indice], 20, 435)
font(“Gotham”, 20)
text(“is upon us!”, 20, 459)
fill(50)
font(“Gotham”, 14)
text(“the clocks stop in two years.”, 20, 500)
Pequeno teste com a grelha e esquemas de cor durante a aula.
size(600, 800)
background(0)
fill(1)
colormode(HSB)
hue = 0.3
saturation = 0.6
brightness = random(0, 1.0)
numeros = (“0”, “1”)
for x, y in grid(30, 42, 20, 20):
fill(random(0.30, 0.40), random(0, 1.0), random(0, 1.00))
#rect(x, y, 18 ,18 )
text(numeros, x, y)
rotate(5)
Pequena crítica a projectos de poetas e escritores que abusam da eloquência do dicionário dos sinónimos.
size(400, 150)
background(1)
linespace = 20
substantivos = [“logro”, “fogo”, “solstício”, “silício”, “homúnculo”, “fado”, “dodecaedro”]
verbos = [“choro”, “lembro”, “saúda”, “migra”, “rompe”, “penetra”, “chilreia”, “abraça”, “assalta”]
adjectivos = [“concupiscente”, “vertiginoso”, “invejável”, “elíptico”, “belicoso”, “boçal”, “virginal”]
adverbios = [“copiosamente”, “vermelho”, “rotativamente”, “intensamente”, “saudosamente”, “intermitentemente”, “febril”]
determinantes = [“o”, “no”, “num”, “um”]
substantivos2 = [“cogumelo”, “Cristo”, “polvo”, “rochedo”, “pão-de-ló”, “saco”, “Adamastor”, “titereiro”]
verbos2 = [“ronda”, “pondera”, “vê”, “ressente”, “és”, “ofusca”, “lacrimeja”, “altera”, “embarca”, “ama”]
adjectivos2 = [ “belo”, “fulguroso”, “quebrado”, “minúsculo”, “escrotal”, “alarve”, “pretencioso”, “pernicioso”, “pedofílico”]
adverbios2 = [“relativo”, “imenso”, “azul”, “palpitante”, “intenso”, “pancreático”]
determinantes2 = [“por”, “qual”, “porque”]
substantivos3 = [“Vénus”, “coruja”, “estátua”, “pedra”, “pena”, “sombra”, “pilosidade”, “marioneta”, “pêga”, “cascata”, “carne”]
verbos3 = [“cirandeia”, “seguia”, “antecede”, “sucede”, “esmaga”, “esgana”, “convida”, “depenada”, “alterna”]
adjectivos3 = [ “gloriosa”, “temível”, “ascendente”, “caída”, “molhada”, “nauseante”, “nefasta”, “dentífrica”, “dolorosa”]
adverbios3 = [“ululante”, “interminável”, “repetidamente”, “fulminante”, “inconstante”, “deliciosamente”, “inconsistentemente”]
determinantes3 = [“para”, “em”, “ante”]
substantivos4 = [“busto”, “espartilho”, “dedo”, “globo ocular”, “intestino”, “Mefistófeles”, “idoso”, “trapézio”, “soldado”, “pacifista”]
verbos4 = [“inverte”, “repele”, “espelha”, “reparte”, “faz”, “treme”, “trauteia”, “coloca”, “desflora”, “amadurece”]
adjectivos4 = [ “refractado”, “volátil”, “efémero”, “eterno”, “externo”, “apático”, “interno”, “bolboso”, “obeso”, “desproporcionado”]
outros = [“e”, “ou”, “mas”, “quando”]
x = 45
y = 50
substantivo = choice(substantivos)
verbo = choice(verbos)
adjectivo = choice(adjectivos)
adverbio = choice(adverbios)
determinante = choice(determinantes)
substantivo2 = choice(substantivos2)
verbo2 = choice(verbos2)
adjectivo2 = choice(adjectivos2)
adverbio2 = choice(adverbios2)
determinante2 = choice(determinantes2)
substantivo3 = choice(substantivos3)
verbo3 = choice(verbos3)
adjectivo3 = choice(adjectivos3)
adverbio3 = choice(adverbios3)
determinante3 = choice(determinantes3)
substantivo4 = choice(substantivos4)
verbo4 = choice(verbos4)
adjectivo4 = choice(adjectivos4)
outro = choice(outros)
#1a estrofe
verso1 = “%s %s %s %s %s,” % (verbo, adverbio, choice(determinantes), substantivo, adjectivo)
verso2 = “%s %s %s %s, ” % (adverbio2, verbo2, substantivo2, adjectivo2)
verso3 = “%s %s %s %s %s,” % (determinante3, adjectivo3, substantivo3, verbo3, adverbio3)
verso4 = “%s %s %s %s %s.” % (outro, verbo4, choice(determinantes), substantivo4, adjectivo4)
fill(0)
text(verso1, x, y)
text(verso2, x, y + linespace)
text(verso3, x, y + 2 * linespace)
text(verso4, x, y + 3 * linespace)
Resultado da aula-tutorial
size(300, 300)
background(1)
#colormode(RGB, 255)
fill(0.6, 0.6)
oval(10, 10, 100, 100)
stroke(0, 0, 0)
fill(0.2, 0.5, 0.6, 0.7)
oval(70, 70, 100, 100)
fill(0.6, 0.1, 0.3, 0.7)
beginpath(120, 90)
lineto(230, 190)
lineto(190, 140)
lineto(150, 90)
curveto(250, 70, 220, 100, 200, 140)
endpath()
frases = [“dia”, “de”, “pascoal”, “bacalhau”, “com”, “NATAS!”]
#variáveis do texto
x = 60
y = 260
texto = “COMAMOS BACALHAU”
#loop
x2 = 0
y2 = 10
linespacing = 20
font(“Rockwell”, 16)
text(texto, x, y)
for frase in frases:
text(frase, 60, 190)
y2 = y2 + linespacing
rotate(35)
scale (0.95)