Behandling er et dataspråk som brukes av visuelle artister for å lage generativ og interaktiv kunst. I tillegg til å skape grafikk på skjermen, er språket også brukt til å lage alle slags interaktiv skulptur og fysisk kunst. I begynnelsen er det vanskelig å forstå hva det er for, men det er nok å si, kunstverdenen har omfavnet Behandling som sitt valgfrie programmeringsspråk.

I denne artikkelen ser vi hvordan bandet Sinatra-testen skapte et deksel for sitt kommende album som skaper en unik versjon for hver bruker via en Mac-app som er distribuert med musikken.

Album Cover Generator

For deres kommende album "ambientertainment", ville Sinatra-testen ha et cover-design som gjenspeiler den genererte naturen til musikken på albumet. Behandling tilbys en enkel og lett å lære metode for å gjøre nettopp det.

Koden for albumdekselet er ikke helt ferdig på skrivingstidspunktet, men de var fornøyd med resultatet for å la oss se på resultatene så langt og publisere koden for denne tidlige versjonen slik at folk kan prøve seg selv.

Koden er veldig kort og enkel, men det gjør jobben. I denne nåværende versjonen på Mac, kjører byggingen av appen en variasjon på designet og lagrer det til samme sted som appen.

For å installere Behandling, gå til nedlastingssiden på nettstedet, og klikk på lenken for plattformen. Når den er lastet ned, pakker du ut ZIP-filen og drar programmet til mappen Programmer.

Gjør det til en PDF

Det første trinnet er å laste PDF-opprettingsbiblioteket:

 importer prosess.pdf. *; 

Da setter vi størrelsen på utgangen på skjermen, i dette tilfellet 500 piksler firkant:

 størrelse (500, 500); 

Åpenbart er utgangen en PDF-vektorgrafikk, slik at den kan skaleres til enhver størrelse uten nedbrytning eller ujevne linjer.

Deretter må vi definere et filnavn for den resulterende PDF-filen og begynne å ta opp grafikken som de er opprettet for lagring i det endelige bildet:

 startRecord (PDF, "cover.pdf"); 

Fargene på bildet defineres deretter. Bakgrunnen er svart:

 bakgrunn (0); 

Når du er i tvil, Randomize

For å lage fargene på strengene ble det bestemt at de skulle være mest grønne, men med variasjoner. Strategien var at RGB av fargene er randomisert, men med det grønne elementet kan man alltid gå høyere enn det røde eller det blå. Grønn kan gå helt opp til 256, men de to andre kanalene er avkortet til 100.

Så definerer vi de flytende variablene rød, grønn og blå med følgende verdier:

 flyte rødt = tilfeldig (100); float green = tilfeldig (255); flyte blå = tilfeldig (100); 

Dette skaper en ny fargelegg hver gang, grønn hver gang, men med varierende grad av rød, grønn og blå for å justere skyggen. Det er alltid mer grønt enn rødt eller blått.

Hår, blad eller bøf? Hvem vet!

Nå koden for å tegne strengene. Linjeviktet på hver streng er randomisert, og den horisontale posisjonen til toppen og bunnen av strengene varieres også tilfeldig innen visse parametere. Strengene er 60% gjennomskinnelige, noe som resulterer i en behagelig hårlignende strengseffekt:

 for (inti = 0; i <500; i ++) {float r = tilfeldig (10); strokeWeight (r); slag (rød, grønn, blå, 60); float offset = r * 5.0; linje (i-20, 500, i + forskyvning, 0); } 

Nå noen tekst

Deretter skal skrifttypen opprettes. For bruk i Behandling må fonter konverteres til et .vlw-format. Dette gjøres fra et ansikt i fonts katalogen på vertssystemet.

Merk: Dette er ett område som bandet fortsatt jobber med. For webapps kan den konverterte skriften lagres på serveren, og blir aldri installert på brukerens system.

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

Når skrifttypen er opprettet, skrives teksten til bildet, navnet på bandet øverst til venstre og navnet på albumet nederst til høyre:

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

Tilsynelatende tok det mye forsøk på å plassere teksten riktig, og de tilsynelatende vilkårlig koordinatene er de som så best ut på skjermen.

Bli ferdig

Så slutter opptaket av PDF-filen, stopper programmet effektivt og skriver det ferdige bildet til disken med filnavnet som er definert ovenfor:

 endRecord (); 

Endelig skriver programmet ut en melding til konsollen for å indikere at den er ferdig:

 skriv ut ("Ferdig det! Nytt album laget"); 

avgrensninger

Den endelige versjonen av appen vil ha noen forbedringer, for eksempel en innebygd skrifttype og et litt mer interaktiv brukergrensesnitt, som muliggjør at brukeren kan forhåndsinnstille noen parametere.

Prosesseringsprogrammet på Mac skriver også Java som standard for å lage programmer, slik det ble brukt til i dette tilfellet, men du kan inkludere andre modi som Coffeescript, Javascript og Python hvis du ønsker det. Også under utredning er en versjon av programvaren kodet for Javascript som lager albumdekselet via en nettside og laster den ned til brukerens datamaskin.

Generering av kunst ved hjelp av programvare er en økende trend i moderne kunst. Har du hatt noen erfaring med behandling eller generativ kunst? Gi oss beskjed om dine tanker i kommentarene nedenfor.