07.12.2010

Open Frameworks - interaktivita pro umělce

Open frameworks je framework, který spojil mnoho zajímavých knihoven pro práci s kamerou zvukem, písmem, videa či vektory. Open framework je psán pod licencí open source, s nekompilovanými knihovnami, takže lze snadno upravitelný a přizpůsobitelný pro uživatele. Je psán v jazyku C++ a je pro všechny operační systémy(WIndows, Mac OS, Linux ).

Úvod

Čím dál více mám pocit, že hranice mezi vědou a uměním se stávají konkrétnější. Lze snadno rozlišit obor technický od oboru uměleckého. Technici využívají logické myšlení společně se systematickým procesem vytváření svého cíle. Kdežto umělci čerpají spíše ze svých emocí a citlivého pohledu na okolní svět. Zkrátka každý zapojuje jinou část mozku. Paradoxně je však tahle hranice čím dál častěji a úspěšně překračována, což je podle mého názoru správně. Jak řekl jeden můj spolužák nové věci dnes vznikají kombinací neslučitelného. Nemyslím si, že doba mramorových soch a plenérových maleb je pryč, avšak paralelně vzniklo kvanta nových přístupů a pohledů na tvoření. A i přes jasnou hranici se světy vědy a umění spojily. Jedním z takových spojení věd je kybernetické a interaktivní umění, kde je počítač a počítačový kód využíván k tvoření děl. K tomu abychom dokázali vytvořit aplikaci, která dokáže nějaký způsobem reagovat třeba na člověka a zároveň držela výtvarné hodnoty, je zapotřebí spojení minimálně dvou oborů. Oboru uměleckého a informatiky. Umělec se nedokáže dokonale zabývat technickou stránkou svého nápadu, stejně jako informatik bude mit problém s vytvořením stránky výtvarné. Dle mého názoru je velice obtížné, aby jeden člověk pojal oba obory. Není to však nemožné. Základním krokem k rozšíření kybernetického umění mezi širší skupinu umělců je ulehčení technické stránky tvorby. Jedním z takových projektů, který dokáže pospojovat současné počítačové technologie a zároveň je přizpůsobit pro umělce se základními znalostmi programování je open frameworks.

Co je open frameworks?

Open frameworks je framework, který spojil mnoho zajímavých knihoven pro práci s kamerou zvukem, písmem, videa či vektory. Framework bychom v češtině mohli vysvětlit jako zjednodušení kódu, které pak pomocí funkcí a parametrů usnadní dosažení výsledku. Open framework je psán pod licencí open source, s nekompilovanými knihovnami, takže lze snadno upravitelný a přizpůsobitelný pro uživatele. Je psán v jazyku C++ a je pro všechny operační systémy(WIndows, Mac OS, Linux ). Na adrese www.openframeworks.cc najdete zdrojové kódy ke stažení. Je nutné upozornit, že se nejdedná o aplikaci s vlastním GUI ale pouze o framework s knihovnami. OF používá k vykreslování objektů openGL, což jsou knihovny pro práci s grafickým procesorem, S openGL dokážeme snadno vykreslit mnoho objektů, aniž bychom zatížili hlavní procesor a tudíž FPS aplikace zůstane zachována. Framework je vyvíjen týmem vysokoškolských profesorů zabývajícím se použitím počítačových technologií ve světě umění a převážně komunitou, který se na projekt nabalila. Hlavní vývojáři jsou Zach Lieberman, Theodore Watson, a Arturo Castro,

Co všechno se v open frameworku tvoři

Open framework má v sobě implementované například knihovny openCV pro práci s počítačovým viděním. Knihovny mají skvělé využití pro práci s obrazem získaného z kamery. Na barevném rozdílu pixelů můžeme z kamery dostat potřebný pohyb. Mnoho zajímavých projektů najdeme na strankáách www.creativeapplications.net Ukážu zde několik příkladů které demonstrují práce výtvarníků a programátorů.



Body Paint a Monster maker
Hezkou ukázku interaktivity na základě openCV je projekt Body paint. Jednoduchou kamerou snímáme pohyb ruky a počítač pak následně dopočítá štětec a trajektorii. Takže pomocí projektoru a pohybu ruky můžeme obarvit celou zeď. Vtipná je taky aplikace s detekcí a přiřazování obličejů nebo různých monster.


http://www.creativeapplications.net/openframeworks/body-paint-openframeworks/


http://www.creativeapplications.net/openframeworks/monstermaker-green-power-openframeworks/


Fragile Tension - Depeche Mode
Videoklip pro kapelu Depeche Mode od producentu z memo.tv. Klip dosahuje zajimavých vizálních efektů, které pracují s technologii MSAFluid.



http://www.creativeapplications.net/openframeworks/fragile-tension-depeche-mode-openframeworks/

Audience
Open framework dokáže pracovat i s mechanickými objekty. Zde je zajímavý projekt 64 natáčejích se zrcátek na kolemjdoucí. Je to důkaz toho, že programovací jazyk c++, který se používá i pro programování robotů má velkou sílu v mechanickém ovládání strojů. Aplikace je tvořena pomocí openCV a OF.


http://www.creativeapplications.net/openframeworks/audience-openframeworks/

Sniff
Další projekt openFrameworku, 3d model psa reaguje na pohyb kolem jdoucích. Řekl bych že se jedná o takový interactive street art.

http://www.creativeapplications.net/openframeworks/sniff-openframeworks/

Moc
Interaktivita tentokrát zaměřena na zvuk. Mikrofon sníma zvuky návštěvníků a podle něj generuje faunu a floru, která se následně promítá na stěnu.

http://www.creativeapplications.net/openframeworks/moc-openframeworks/

Jak začít s OF

Základním předpokladem pro práci v open framewokrs je mít znalosti programovacího jazyka c++. Uvádím zde doporučenou literaturu, která pomůže naučit uživatele základním dovednostem programování v c++, nebo programování interaktivity

  • Jedna z nejlepších příruček, která snadno vysvětlí základní pojmy a principy jazyka. Philip Machanick – C and C++ in 5 days.
  • Dobrá příručka kterou napsal Zach Gage, OF for processing users, seznamuje uživatele s openframeworks uvádí i mnoho detailů
  • Joshua J Noble’s Oreilly book “Programming Interactivity,” .
  • C++ má na internetu skvělou dokumentaci, takže není problém najít potřebné informace například zde language tutorial a reference

OF není spustitelná aplikace a neobsahuje interface. K programování postačí obyčejný textový blok, a příkazová řádka. Je však leší používat IDE pro snadnou kompilaci kódu. Já osobně používám codeblocks na platformě Linux. Po rozbalení najdeme několik adresářů. Nás bude zajímat jen adresář Addons, apps, lib, script. Instalační skripty pro linux najdeme ve složce script. Ve složce lib se nachází potřebné knihovny pro práci s OF. Do složky addons můžeme nahrávat další knihovny vytvořené komunitou pro práci se všemožnými technologiemi. Pro uživatele bude nejdůležitější složka apps. Najdeme zde ukázkové příklady použití knihoven. Pro začátečníky je to podstatná část objevování frameworku. Nutností je pracovat s dokumentací frameworku, kterou najdeme na adrese http://www.openframeworks.cc/documentation Jsou zde popsané funkce společné s typy parametrů. Pro nejlepší pokroky je ideální jednak učit se podle příruček, ale taky nesmíme zapomínat na experimenty, které hrají důležitou roli v zapamatování si příkazů a pochopení logiky a syntaxe.

První spuštění a orientace.

V prvním kroku si zkusíme projít ukázkové aplikace, pro lepší orientaci, které se nachází ve složce apps/examples Pomocí aplikace codeblocks ( je možno využít i jiného IDE programu) otevřeme libovolný projekt. Nejlepší je začít jednoduchým příkladem například graphicExample. Můžeme spustit pomocí přípony .cbp nebo .workspace, což nám načte do IDE cely projekt. Jsou zde dvě verze jedna pro 32bitový systém a druhá pro 64 bitový. Ve složce najdeme i makefile popřípadě ve složce bin doplňující materiály, videa zvuky či knihovny. Nyní si otevřeme graphicExamples_linux64.cbp a zobrazí se projekt se dvěma adresáři. Rozklikneme adresář src kde jsou 3 soubory main.cpp, testapp.cpp a testApp.h všechny otevřeme. Soubor main.cpp slouží k úpravě okna pro vykreslování. Nastavíme zde velikost okna a taky možnost fullscreen. V testapps.h se nachází hlavička aplikace, kde jsou nadefinované knihovny, třídy, proměnné atd. Tělo aplikace je v souboru testApp.cpp. Je zde několik funkcí třídy testApp. Setup, update, draw, a několik interaktivních funkce ovládání přes myš a klávesnici. Funkce testApp::setup slouží k dosazení hodnot proměnných, které se definují při spuštění aplikace. Funkce setup se spustí pouze jednou při startu. Funkce testApp::update se spouští v závislosti na nasteveném FPS. Open framework používá defaultně 60fps , pokud uživatel v setup nepřiřadí jinou hodnotu. Ve funkci draw vykreslujeme objekty, které se mají zobrazit v okně. Zbylé funkce slouží k ovládaní pomocí klávesnice a myši. Protože příklad graphicExample ma vše potřebné již nastavené stačí jen kompilovat a spustit aplikaci. Tu v codeblock spustíme zelenou ikonou play s ozubeným kolem, Tlačítko se jmenuje build and run. Pokud neobdržíme v logu hlášení o chybách mělo by se spustit okno s příkladem. Pokud je vše v pořádku můžeme se pustit do programování.