KULTURA 2.0  Tworzyć w processie
źródło: Reas

KULTURA 2.0
Tworzyć w processie

Krzysztof Trzewiczek

Processing to nieduży program, który ułatwia naukę programowania. Tak naprawdę niewiele różni się od zwykłego notatnika – tylko tym, że wygląda trochę lepiej i posiada guzik Run uruchamiający program, który w nim piszemy

Jeszcze 2 minuty czytania

Projekt Krzysztofa Trzewiczka, Darka Małojło i Marcina Korzekwy był prezentowany na wystawie „Wejdź na poziom 2.0” podczas konferencji „Kultura 2.0 Kultura Odnawialna” w Narodowym Instytucie Audiowizualnym.

Wyobraźmy sobie tancerza. Niech będzie wolnym strzelcem utrzymującym się z normalnej etatowej pracy niezwiązanej ze sztuką – niech będzie inżynierem. Jak każdy z nas spędza godziny przez monitorem serfując po internecie, oglądając wszystko, co oferuje Youtube, słuchając coraz to nowszej muzyki – dobrze znamy ten scenariusz.

W telewizji wciąż natyka się na różne wizualne wodotryski, w co drugiej galerii handlowej widzi interaktywne stanowiska prezentacyjne, które, gdyby tylko miał taką możliwość, wykorzystałby po swojemu we własnej pracy artystycznej. Gdyby tylko miał taką możliwość...

size( 200, 200 );
background( 255 );
smooth();
stroke( 200, 100, 100 );
strokeWeight( 10 );
fill( 200, 100, 100, 150 );
ellipse( 100, 100, 50, 50 );

Kółko powstało po chwili. Następne tygodnie przyniosły już całe zatrzęsienie kółek, kresek i innych kształtów. W ruch poszła myszka i klawiatura, wszystko zaczęło się ruszać. Nasz tancerz wiedział, że w krótkim czasie osiągnął wiele, ale wciąż jest dopiero w pół drogi. Gdyby bowiem dało się podpiąć do tego kamerę albo mikrofon...

Wyobraźmy sobie fizyka – takiego od nanorurek. Tuż przed dyplomem łapie się różnych fuch, żeby załatać miesięczny budżet.

Co ma zrobić, skoro nawet gdyby mógł znaleźć pracę w swoim zawodzie, jego wyobraźnia raz za razem budowałaby w  myślach gotowe światy, wielkie interaktywne przestrzenie, niesamowite konstrukcje zachęcające do eksperymentu. Od czego jednak zacząć, jak to ugryźć...

size( 200, 200 );
background( 255 );
stroke( random( 255 ) );
strokeWeight( random( 10 ) );

float x = random( width );
line( x, 0, x, height );
stroke( random( 255 ) );
strokeWeight( random( 10 ) );

x = random( width );
line( x, 0, x, height );
stroke( random( 255 ) );
strokeWeight( random( 10 ) );
x = random( width );
line( x, 0, x, height );

Niby prosty ten świat, ale za każdym razem jednak trochę inny. Gdyby dodać do niego jakiś nieskomplikowany algorytm powtarzania niektórych operacji i gdyby jeszcze mógł reagować na myszkę. Albo lepiej gdyby dało się to podpiąć do jakiegoś guzika, pokrętła. I gdyby projekcja była odpowiednio duża. Od czego zacząć taką pracę...

źródło: ReasDzwoni Agnieszka: Wiesz, znajdź kogoś, z kim mógłbyś zrealizować większy projekt. Najlepiej jeśli moglibyśmy potraktować to jako projekt edukacyjny, czyli znalazłbyś kogoś, kto ma mniejsze doświadczenie, może nigdy jeszcze nie pokazywał publicznie swoich prac. Myślę, że ta konferencja to dobra okazja. Mamy niespełna dwa miesiące – tydzień na opracowanie koncepcji, dwa na pierwsze szkice, trzy na główne prace programistyczne, tydzień na testy i jeszcze jeden zapasu na jakieś święto narodowe lub imieniny kolegi z pracy. Powinniśmy zdążyć.

Processing to nieduży program, który ułatwia naukę programowania. Tak naprawdę niewiele różni się od zwykłego notatnika – tylko tym, że wygląda trochę lepiej i posiada guzik Run uruchamiający program, który w nim piszemy. To bardzo wygodne, bo nie trzeba wiedzieć nic o kompilatorach, plikach źródłowych, wersjach JDK i JVM – wystarczy, że wie o tym guzik Run, a my mamy pomysł, co stworzyć. Dzięki temu możemy skupić się na tym, co najciekawsze, czyli na tworzeniu przez programowanie.

źródło: Maeda StudioW Processingu jednak owo programowanie jest dość specyficzne. Ciężko byłoby napisać w nim arkusz kalkulacyjny czy oprogramowanie do obsługi konta bankowego. Processing bowiem stworzony został w MediaLab MIT w ramach prac prowadzonych przez genialnego Johna Maedę Aestetics and Computation Group – szalonej grupy składającej się z artystów, programistów, techników i projektantów z całego świata. Pod koniec zeszłego stulecia to tam budowały się fundamenty tego, co dziś wykorzystują tysiące artystów na całym świecie – pomysł na to, jak umożliwić programowanie na potrzeby działalności artystycznej bez konieczności odwracania uwagi artysty od merytorycznej strony tworzonego dzieła. Dlaczego bowiem artysta miałby się skupiać na bitach i bajtach, skoro nie tematyzuje tego w swojej pracy?

size( 300, 300 );
background( 255 );
smooth();
noStroke();
fill( 0, 20 );

for( int x = 0; x < 3; ++x ) for( int i = 0; i < 75; ++i )
{
int modifier = x * 25;

triangle( random( 100 - modifier, 200 + modifier ), random( 100 - modifier, 200 + modifier ),
random( 100 - modifier, 200 + modifier ), random( 100 - modifier, 200 + modifier ),
random( 100 - modifier, 200 + modifier ), random( 100 - modifier, 200 + modifier ) );
}

Nasz tancerz i fizyk wystawią publicznie swoje programistyczne prace po raz pierwszy. Kiedy zaczynaliśmy przygotowywania, pojawiły się nawet wątpliwości, czy na pewno damy radę w tak krótkim czasie zrealizować założenia projektu – żaden z nich nie jest programistą, a ich doświadczenie w pracy z Processingiem było na tamten moment niewielkie. Stara prawda mówi jednak, że żeby nauczyć się programować należy przede wszystkim programować – do dzieła zatem!

żródło: Maeda StudioNie mieszkamy w tym samym mieście, więc w ruch poszły standardowe narzędzia do pracy przez internet. Nic wyszukanego – Skype do wielogodzinnych konferencji, Dropbox do wymiany plików, wika na teksty, które trzeba było napisać, no i Sketchpad do wspólnego pisania kodu w czasie rzeczywistym. Z czasem nasze małe repozytorium kodu zaczęło zapełniać się kolejnymi wersjami prac – od ledwie działających prototypów, przez wersje 0.1, 0.2, 0.76 i 0.77, aż po gotowe, działające programy. Były przy tym momenty, kiedy mogliśmy zgłębić bardziej zaawansowane techniki programowania, spróbować różnych nieoczywistych rozwiązań i bawić się tym, co tworzymy. Nie programowaliśmy przecież arkusza kalkulacyjnego, a zwariowane, interaktywne efekty wideo czasu rzeczywistego. Nasze żony i dziewczyny były naszymi betatesterkami – bezwzględnie, bo nie technicznie, oceniającymi postępy pracy.

Processing stworzyli Casey Reas i Ben Fry. Pierwszy z nich jest artystą specjalizującym się w grafice algorytmicznej, drugi zajmuje się wizualizacją hurtowych ilości danych (w ramach doktoratu stworzył w Processingu wizualizator danych genetycznych). Obaj są wybitnymi programistami, lecz ich podstawowe zainteresowania skierowane są poza programowanie jako takie. Reas regularnie wystawia swoje grafiki, eksperymentuje z trójwymiarowymi wydrukami i tkaninami, Fry bezustannie zaskakuje nowymi pomysłami na wizualizacje najbardziej nieoczywistych danych (ostatnio wizualizacja rozwoju powstawania „O pochodzeniu gatunków Darwina”). Dla obu Processing jest jedynie narzędziem pracy, a nie jej tematem. Pomaga im realizować swoje artystyczne i projektowe pomysły. Im i tysiącom osób podzielających ich pozaprogramistyczne zainteresowania.

Processing

język programowania oraz zintegrowane środowisko programistyczne (IDE) stworzone na potrzeby sztuki elektronicznej (wizualnej, interaktywnej, dźwiękowej) oraz projektowania graficznego.

W chwili obecnej Processing wykorzystywany jest w edukacji, wizualizacji danych, w grafice i poligrafii, służy do tworzenia instalacji interaktywnych i efektów wideo, korzystają z niego specjaliści od projekcji oraz reżyserzy teatralni. Jego graficzne możliwości są na tyle szerokie, a prostota programowania tak wielka, że nie sposób policzyć ilości projektów, które z jego pomocą zostały stworzone. Najlepszym tego dowodem jest portal Open Processing zbierający w jednym miejscu projekty stworzone w Processingu, których autorzy postanowili udostępnić innym kod źródłowy swoich prac. Również i sam Processing opublikowany jest na otwartej licencji GNU GPL – narzędzie pracy artysty powinno mieć możliwość swobodnej zmiany w miarę definiowania się jego języka. W tym przypadku jest to język tysięcy artystów.

Próba generalna to ważny moment. Od tej pory wiemy, że nasze prace są gotowe do wystawienia i skupić się możemy na sprzątaniu. Pokazanie pracy na konferencji to przecież nie koniec życia naszego kodu. Zgodnie z założeniami projektu nasze programy udostępnione zostaną na otwartych licencjach. Wydaje się, że to margines – drobny, miły gest na koniec pracy. Ot, wrzucić kilka plików w jednego zipa i opublikować gdzieś w Internecie. Tak jednak nie jest.

By uznać kod za otwarty zgodnie z regułami sztuki należy zrobić dwie rzeczy: napisać dokumentację i wyczyścić kod z głupot i pozostałości poprzednich wersji. Jeśli ktoś ma z naszego kodu skorzystać, to musimy włożyć trochę pracy w to, by czuł się komfortowo kiedy będzie z nim pracował. Wyobraźmy sobie bowiem taką sytuację. Na konferencję przychodzi ktoś, kto ma niewielkie doświadczenie w pracy z Processingiem. Powiedzmy takie, jak nasz tancerz lub fizyk, kiedy zaczynaliśmy wspólny projekt. Widząc nasze prace dowiaduje się, że może zajrzeć do kodu i dowiedzieć się jak przygotowuje się takie gotowe instalacje. Jeśli przygotowaliśmy dokumentację i posprzątaliśmy w kodzie, osoba ta będzie mogła nauczyć się, jak przebyć drogę od „niewielkiego doświadczenia” do „publicznego wystawiania”. Tę samą, którą przeszli autorzy kodu przy okazji tych właśnie projektów.

Przyglądając się pracom nad projektem cieszę się bardzo z jednej rzeczy – nie biorąc pod uwagę tego, jak wiele godzin spędziliśmy na rozmawianiu o programowaniu oraz ile czasu zajęło samo „kodowanie”, zarówno Darkowi, jak i Marcinowi udało się skupić uwagę na wymiarze artystycznym na tyle, że prace, które zaprezentują w ramach swojego multimedialnego debiutu nie są tworami programistów skupionych na kodzie lub małymi prackami zaliczeniowymi na drugim roku ASP. Debiut Darka Małojło i Marcina Korzekwy to dwie prace oddające ich charakter i pokazujące obszar artystycznych zainteresowań obu autorów.