Behandling er et computersprog, der bruges af billedkunstnere til at lave generativ og interaktiv kunst. Udover at skabe grafik på skærmen bruges sproget også til at lave alle former for interaktiv skulptur og fysisk kunst. I starten er det svært at forstå hvad det er for, men det er nok at sige, at kunstverdenen har omfavnet Processing som det valgte programmeringssprog.

I denne artikel kan vi se, hvordan bandet Sinatra-testen skabte et cover til sit kommende album, der skaber en unik version for hver bruger via en Mac-app, der distribueres med musikken.

Album Cover Generator

For deres kommende album "ambientertainment" ønskede Sinatra Test at have et cover design, der afspejlede den genererede karakter af musikken på albummet. Behandling tilbød en enkel og nem at lære metode til at gøre netop det.

Koden til albumcoveret er ikke helt færdig på tidspunktet for skrivningen, men de var tilfredse med udgangen for at lade os se på resultaterne hidtil og offentliggøre koden til denne tidlige version, så folk kan prøve sig selv.

Koden er meget kort og enkel, men det gør jobbet. I denne aktuelle version på Mac'en skaber opbygningen af ​​appen en variant af designet og gemmer det til samme sted som appen.

For at installere Processing skal du gå til download siden på webstedet og klikke på linket til din platform. Når den downloades, skal du pakke ud ZIP-filen og trække programmet til din mappe Applications.

Lav det til en PDF

Det første skridt er at indlæse PDF-oprettelsesbiblioteket:

 import processing.pdf. *; 

Så sætter vi størrelsen på output på skærmen, i dette tilfælde 500 pixels kvadrat:

 størrelse (500, 500); 

Udtrykket er naturligvis en PDF-vektor grafik, så det kan skaleres til enhver størrelse uden nedbrydning eller ujævne linjer.

Dernæst skal vi definere et filnavn for den resulterende PDF og begynde at optage grafikken, da de oprettes til opbevaring i det endelige billede:

 startRecord (PDF, "cover.pdf"); 

Farverne på billedet defineres derefter. Baggrunden er sort:

 baggrund (0); 

Når du er i tvivl, Randomize

For at skabe farverne på trådene blev det besluttet at de skulle være mest grønne, men med variationer. Strategien var, at RGB af farverne er randomiseret, men med det grønne element er det altid muligt at gå højere end det røde eller det blå. Grøn kan gå helt op til 256, men de to andre kanaler er begrænset til 100.

Så vi definerer de flydende variabler rød, grøn og blå med følgende værdier:

 flyde rødt = tilfældigt (100); float green = tilfældigt (255); float blue = tilfældigt (100); 

Dette skaber en ny farvelægning hver gang, grøn hver gang men med varierende grad af rød, grøn og blå for at justere skyggen. Der er altid mere grøn end rød eller blå.

Hår, blade eller bøffer? Hvem ved!

Nu koden til tegning af tråde. Linjevægten af ​​hver streng er randomiseret, og den vandrette position af top og bund af trådene varieres også tilfældigt inden for bestemte parametre. Strengene er 60% gennemskinnelige, hvilket resulterer i en behagelig hårlignende strengseffekt:

 for (int i = 0; i <500; i ++) {float r = tilfældigt (10); strokeWeight (r); slagtilfælde (rød, grøn, blå, 60); float offset = r * 5.0; linje (i-20, 500, i + forskydning, 0); } 

Nu nogle tekst

Næste skal skrifttypen oprettes. Til brug i Processing skal skrifttyper konverteres til et .vlw-format. Dette gøres fra et ansigt i skrifterne på værtssystemet.

Bemærk: Dette er et område, som bandet stadig arbejder på. For webapps kan den konverterede skrifttype gemmes på serveren, og det bliver aldrig installeret på brugerens system.

 PFont skrifttype; font = createFont ("CooperBlackMS", 24); textFont (skrifttype); 

Når skrifttypen er oprettet, skrives teksten til billedet, navnet på bandet øverst til venstre og navnet på albummet nederst til højre:

 tekst ("sinatra testen", 10, 20); tekst ("ambientertainment", 250, 490); 

Tilsyneladende tog det en masse forsøg og fejl at placere teksten korrekt, og de tilsyneladende vilkårlig koordinater er dem, der så bedst ud på skærmen.

Pak den ind

Derefter slutter optagelsen af ​​PDF'en, stopper programmet effektivt og skriver det færdige billede til disken med filnavnet som defineret ovenfor:

 endRecord (); 

Endelig udskriver programmet en meddelelse til konsollen for at indikere, at den er færdig:

 print ("Udført det! Nyt Album Oprettet"); 

justeringer

Den endelige version af appen vil have nogle forbedringer, som f.eks. En indlejret skrifttype og en lidt mere interaktiv brugergrænseflade, hvilket muligvis giver brugeren mulighed for at forudindstille nogle parametre.

Processprogrammet på Mac skriver også Java som standard til at lave apps, hvilket er det, det blev brugt til i dette tilfælde, men du kan inkludere andre tilstande som Coffeescript, Javascript og Python, hvis du ønsker det. Også under undersøgelse er en version af softwaren kodet for Javascript, der skaber albumcoveret via en webside og overfører den til brugerens computer.

Generering af kunst ved hjælp af software er en voksende tendens i moderne kunst. Har du haft nogen erfaring med forarbejdning eller generativ kunst? Lad os kende dine tanker i kommentarerne nedenfor.