Kode som byggemateriale
(Marius Watz + Brandt Graves (thefuturefuture / DIVISION))


Introduktion

Mine tanker med nærværende projekt har primært været personlig forståelse for de algoritmer der ligger til grund for rigtigt meget af det daglige arbejde jeg og vi som arkitekter udfører. Hernæst, er det øvelser er det udførte øvelser, for at forstå hvordan det er at arbejde i og med en digital proces inden for et kreativ felt (som kunst og arkitektur nu engang er). Til sidst handler det også om tillærelsen eller forståelsen af både potentialet i disse nye metoder og værktøjer, og om at se den skrevne kode eller formulerede algoritme som et slags fleksibelt byggemateriale der kan formes og tilpasses, justeres, tilføjes og trækkes fra - som en klump ler på en formgivers drejebænk; hvis det kan lykkedes at blive klogere på de indlejrede begrænsninger og ikke mindst fordele, kan den vi begynde at diskutere om den tekniske snilde er tilstrækkelig og / eller værktøjet kan rumme de indledende ambitioner.

Nedenstående arbejde er altså en del af resultatet fra et stræk i New York, hvor jeg, gennem cirka halvdelen af forløbet har haft work-sessions og faglige diskussioner med hhv. Marius Watz og Brandt Graves - både individuelle og sammen alle tre - drejende sig omkring emner som det digitale medie, generativ kunst, formidling af digitale øvelser og den digitale kunstform som begreb og som platform og diskussioner om de delprocesser meget kunst og formgivning af denne slags beskæftiger sig med, algoritmen som et slags byggemateriale og, ikke sidst men ikke mindst, digital fabrikation eller omsætningen til en virkelig og fysisk ramme.



Tanker bag projektet

Forestil dig et rum, ikke nødvendigvis helt defineret i sin afgrænsning, men et stort rum med plads til at manøvrere i. Vi indsætter, i dette rum, hundredvis eller tusindvis af entiteter, som hver især er bygget op omkring et, to, tre, fire eller mange flere regelsæt. Hertil kommer flere variabler til at værdisætte de enkelte regelsæt, for, så at sige, at kunne kontrollere de forskellige påvirkningers prioritet / vægtning. Yderligere, kommer hertil en definition af de enkelte entiteters sanse-radius, som vi således også kan styre på individuelt plan.

Vi trykker på ‘play’-knappen, og ser scenariet udfolde sig. Alle entiteterne bevæger sig i rummet. Alle entiteterne er på ethvert givent tidspunkt opmærksom på alle andre entiteter i rummet – dog bliver dem, der befinder sig uden for sanseradius af hinanden, dømt irrelevante, og så længe andre entitere befinder sig inden for sanse-radius, gælder et, to, tre, fire eller flere af de definerede regelsæt.

Jeg har i dette eksempel arbejdet med tre forskellige regelsæt, både fordi jeg ønskede at se hvor lidt kode der skal til for at kunne skabe uforudsete resultater, men også for at holde mængden af arbejdet nede, og på den måde søge at fokuserer mere på resultaterne, end den egentlige opbygning af koden.

(1) Det første regelsæt fortæller entiteten, at den skal dreje væk fra alle andre entiteter der befinder sig inden for dens sanse-radius (findes flere entiteter inden for sanse-radius, vælges den gennemsnitlige retning væk fra alle andre).

(2) Det andet regelsæt fortæller entiteten, at den skal styre mod alle andre entiteter der befinder sig inden for dens sanse-radius (finde flere entiteter inden for sanse-radius, vælges retning mod den gennemsnitlige position af alle andre entiteter).

(3) Det tredje regelsæt fortæller entiteten, at den skal finde samme retning som alle andre entiteter der befinder sig inden for dens sanse-radius (findes flere entiteter inden for sanse-radius, vælges den gennemsnitlige retning).

Nu ser vi, i dette fiktive, digitale rum, at alle entiteter manøvrerer denne lille verden, under konstant bevægelse, samtidig med altid at være opmærksom på alle andre entiteter, inden for den definerede radius. Hver eneste gang en entitet trænger ind i en anden entitets sanse-radius, aktiveres disse ovenstående, oplistede regler, og der etableres et forhold mellem disse forbundne, aktive entiteter. Dette forhindrer overfyldt områder, samtidig med at fordre klyngedannelser og fælles retningsmønstre.

Sakker en entitet bagud i en klynge, forsvinder den ud af sanse-radius, og vil påtage sig at vandre vileløst rundt, ind til den træder ind i en ny sanse-radius, fra en anden nabo.

På denne måde er det muligt at simulere uforudsigelige mønstre og adfærd via forholdsvist simple algoritmer. Der vil, ud fra stramt definerede og logiske strukturer, bygget på relativt begrænset mængde kode, vokse selvorganiserende adfærdsmønstre, som vi ikke selv er i stand til hverken at forudsige eller beregne, hverken over tid eller over sædvanlige forudsigelse principper.



Det følgende er resultater fra den samme algoritme, som skrevet i Processing, omend med små ændringer ved skift fra to dimensioner til tre dimensioner.

Teksten er formuleret på engelsk da samarbejdet foregik i New York.

Scenario #1

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et punkt (Form 2), i rummet. Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 2

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et punkt (Form 2), i rummet. Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1) og sammenhængskraft (Rule 2).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 3

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et punkt (Form 2), i rummet. Følgende adfærds- / bevægelses-mønstre baseres på sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 4

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et punkt (Form 2), i rummet. Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1), sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 5

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et variabel-størrelse cirkle (Form 2), i rummet. Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1), sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 6

Et defineret antal agenter eller entieter i et to-dimensionelt rum (Space 1), vilkårligt indsættelsespunkt. Hver agent visualiseres som et variabel-størrelse cirkle (Form 2), i rummet. Alle agenter der således på et givent tidspunkt befinder sig inden for en defineret radius af andre agenter, bliver forbundet med en linje / streg (Form 3). Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1), sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 7

Et defineret antal agenter eller entieter i et tre-dimensionelt rum (Space 2), vilkårligt indsættelsespunkt. De enkelte agenter visualiseres ikke. Alle agenter der således på et givent tidspunkt befinder sig inden for en defineret radius af andre agenter, bliver forbundet med en linje / streg (Form 3). Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1), sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.


Scenario 8

Et defineret antal agenter eller entieter i et tre-dimensionelt rum (Space 2), vilkårligt indsættelsespunkt. Hver agent visualiseres som et variabel-størrelse kugle / ‘sphere’ (Form 4), i rummet. Alle agenter der således på et givent tidspunkt befinder sig inden for en defineret radius af andre agenter, bliver forbundet med en linje / streg (Form 3). Følgende adfærds- / bevægelses-mønstre baseres på separation (Rule 1), sammenhængskraft (Rule 2) og tilpasning (Rule 3).

Der er ingen eksterne relationer, kun internt definerede relationer, agenterne imellem.