openFrameworksとは - 歴史と特徴
openFrameworks (オープンフレームワークス) は、C++で記述された「クリエイティブなコーディング」のためのオープンソースのツールキットです。Mac OSX、Windows、Linuxで動かすことが可能で、iPhoneやiPadなどのiOSのデバイス上で実行することも可能です。openFrameworksは、2Dや3Dのグラフィック、動画やアニメーション、音声など、様々なメディアを簡単に扱うことが可能なため主にメディアアートやインタラクティブなメディアで活発に活用されています。
開発の歴史
openFrameworksは、2004年にアーティストでありプログラマーでもあるZach Lieberman が、ニューヨークにあるパーソンズ大学の大学院で教鞭をとっていた際に、アートを学ぶ学生のための作品制作ツールとして開発されました。彼は、自分が作品を制作する際に使用しているものと同じ環境を、プログラム初心者のアートスクールの学生にも提供したいと考え、openFrameworksの開発を始めました。
Zach Lieberman
その後、openFrameworksの開発チームは成長し、Zach Liebermanに加えて、Theodore Watson、Aturo Castroの3人を中心として、世界中のプログラマーと連携しながら現在も活発に開発が続けられています。2011年1月現在のバージョンは、v0.062で、目下、v0.07に向けて開発が活発に進められています。
openFrameworksは、先行する様々なプロジェクトから影響を受けています。中でも、MITメディアラボのCasey ReasとBen Fryによって開発されたProcessing という開発環境から、さらにはProcessingの祖先であるジョン前田による、Design by Numbers の系譜を継ぐものといえます。それらのフレームワークの思想に共通する点は、プログラムの初心者にとって煩雑ですぐに理解が困難な部分は敢えて隠してしまうことで、プログラミングで何かを生みだす楽しさに集中できるような環境を提供しているところでしょう。かといって決して学習のためだけのおもちゃのようものではなく、プログラミングに習熟した開発者にとっても、本格的なコーディングをするためのクリエイティブなツールボックスとして十分使用に耐え得る環境となっています。
既存のインタラクションを越えて
openFrameworksの特徴は、その実行スピードが挙げられます。openFrameworksはC++をベースにしており、最終的にはネイティブなアプリケーションとして出力されるため、コンピュータのパワーを限界まで引き出すことが可能です。そのため、JavaをベースにしたProcessingや、FlashPlayerで実行する必要のあるAdobe Flashなどに比べて格段にパワフルな表現が可能です。数万個のパーティクルを60fpsでフルスクリーンで再生したりといった、膨大な計算量を必要とするような表現が可能となります。
こうした、openFrameworksに秘められたパワーは、既存のメディアアートやインタラクティブデザインの枠組みを越える可能性をもっています。10個の物体をインタラクティブに操作する場合と、1,000個、10,000個といった単位で物体を操作する場合では、その意味合いが違ってきます。ユーザーの操作に1対1で反応するという単純なインタラクションではなく、ユーザの操作をきっかけにして、大量のオブジェクトが自律的に変化していくというような、これまでの直接操作によるインタラクションの概念を越えた表現が可能になるという点が、openFrameworksの最大の特徴であり、魅力であると言えるのではないでしょうか。
様々な技術を繋ぎあわせる「糊」
また、メディアアートの作品に代表されるような、様々なメディアを駆使したアプリケーションを開発しようとする場合、通常であれば様々な技術に精通する必要に迫られます。サウンドやビデオ、フォント、ベクトル情報、画像解析、物理演算、ネットワークプログラミングなど、技術は多岐にわたり、それぞれを理解して自由に活用するまでには多大な労力と時間を必要とします。既存のライブラリを活用する場合でも、必要なライブラリを見付けだしてプログラミングできるように環境を構築するまでには、相応の経験とスキルが必要となります。
openFrameworksは、こうした問題に対する一つの回答となっています。アプリケーションの開発の際に多用される技術を、シンプルな方法ですぐに利用可能で提供するという目的がopenFrameworksの根幹となっています。openFrameworksの開発陣は、このことを指して、openFrameworksを汎用的な目的に使用できる「糊 (glue)」としてデザインされていると表現しています。つまり、openFrameworks自体に独自の新規の技術があるのではなく、その存在意義は、既に存在する様々なライブラリに蓄積された技術や知識を自由に活用し相互に連携し統合するための媒介物として意義があります。
openFrameworksでは以下のようなライブラリを利用しています。
openFrameowksの構成
アドオン - 様々な機能を貪欲に吸収して機能拡張
openFramewroksのもう一つの特徴として、様々な機能を「アドオン (Addons)」という形式で追加して、どんどん機能を拡張していくことが可能な点があげられます。アドオンは、openFrameworksの開発チームだけでなく、多くのプログラマーやアーティストが独自に開発・実装を進めています。アドオンによる拡張はとても活発で、話題の技術や開発に役立つユーティリティーが次々と開発され公開されています。
コンピュータ・ビジョン / AR
ofxOpenCv:OpenCV によるコンピュータビジョン、画像解析、輪郭処理など
ofxARToolkitPlus:ARToolKit を利用して、AR(拡張現実)技術を実現
音響、音楽
シミュレーション / 物理演算 / 流体力学
ofxBox2d:物理エンジンBox2D を利用した物理演算
ofxMSAFluid:流体シミュレーション
ofxMSAPhisics:3D物理演算
アニメーション
デバイス / ハードウェア
ofxiPhone:iPhone、iPad、iPod TouchなどiOSデバイスでopenFrameworksを実行する
ofxKinect:Microsoftのジェスチャー認識ゲームコントローラKinect をopenFrameworksで使用する
この他にも大量のアドオンがネット上で入手可能です。
openFrameworksを利用した作品例
それでは、openFrameworksでいったいどんな事ができるのか、実際にopenFrameworksを使用して生みだされた作品を見てみましょう。
監視する大勢の鏡:Audience, Chris O'Shea
Audience - rAndom International from Chris O'Shea on Vimeo .
Audience, Chris O'Shea では、ギャラリーに設置には大量の鏡が設置されています。その中に人が入りこむと、一斉に全ての鏡が入りこんで来た人間を注視します。鏡の中では、自分自身がこちらを見つめ返しています。その様子は、鑑賞者が鏡を観ているのではなく、まるで大勢の観客に監視されているような気分に陥ります。
観客が参加するインタラクティブなプロジェクションマッピング:Night Lights, YesYesNo
night lights from thesystemis on Vimeo .
YesYesNo は、openFrameworksの開発者である、Zachary LiebermanとTheo Watson、さらにはGolan Levinや真鍋大渡など錚々たるアーティストが名を連ねるクリエイティブグループで、openFrameworksを活用した様々なプロジェクトを行っています。Night Lightsは、ニュージーランドの古い建築物にプロジェクションマッピングをした作品で、単純に映像を投影するだけでなく、観客が映像の前で動きまわると、投影されたキャラクターが同じように動きまわるといった高度なインタラクションを実現した作品となっています。
モバイル:Horizons, Lukasz Karluk
Horizons - a sound toy for iPad and iPhone from Mike Hill on Vimeo .
openFrameworksを使用してiPhoneやiPadのアプリケーションを作成することも可能です。AppleのiTunes Storeで、openFrameworksを使用したアプリケーションが数多く公開されています。Lukasz KarlukによるHorizons は、インタラクティブに音楽を生成するiPhoneアプリです。iPhoneの傾きやユーザのタッチに抽象的な幾何学形態が反応して、それと呼応するように音響が変化しながら再生されます。
レーザ光線で巨大なビルにグラフィティを描く: L.A.S.E.R. Tag, Graffiti Reserch Lab
LASER Tag は、レーザポインタでビルの壁面や街角の看板をなぞると、まるでスプレーでグラフィティを描くように巨大な光の落書きをすることのできるシステム。彼らの活動の根本にはグラフィティ文化への深い造詣があり、その行為はグラフィティで街に足跡(タギング)を残すように、テクノロジーやメディアアートをハッキングしていくことに主眼が置かれています。LASER Tagを始めとする多くのプロジェクトのプログラムはオープンソースとして公式サイト からダウンロードすることができます。
視線でグラフィティを描く:EyeWriter, Free Art and Technology (FAT), OpenFrameworks, Graffiti Resarch Lab
The Eyewriter from Evan Roth on Vimeo .
EyeWriter, Free Art and Technology は、2003年にALS(筋萎縮性側索硬化症)に罹患した伝説的なグラフィティライターで活動化のTony Quan(aka TEMPTONE)との共同プロジェクト。Tony Quanは、ALSの症状により眼球の運動以外は自力で動かすことができなくなりました。世界中から集まった開発チームは、彼が以前のようにまたグラフィティを描くことができるように、眼球運動をトラッキングして、その軌跡によって絵を描くことのできるオープンソースのシステムが構築しました。この作品は、国際的な権威あるメディアアートのアワード、Prix Ars Electronica 2010のインタラクティブ部門の最高賞Golden Nicaを受賞しました。
2011年の展望
Natural Interaction (Kinect Hack)
Kinect とは、Microsoft社が開発したコントローラを用いずにジェスチャーや音声認識によって直感的な操作ができるXbox 360向けの体感型のゲームシステムです。昨年11月に発売されて以来大きな反響を呼びましたが、その注目のされ方は一般的なゲームコントローラの枠を越えるものになりました。本来はXbox 360専用だったKinectセンサーなのですが、一般的なUSB接続を使用しているため、PCやMacなどに普通に接続することが可能です。発売から数日で世界中のハッカー達が集中的に解析して、KinectセンサーとXbox本体との通信の仕組みを、PCやMacで使用できるように移植したオープンソースのドライバを開発してしまったのです。このことが「Kinect Hack」という新たなムーブメントを生みだし、発売から数日で様々な環境で簡単に使用できるようになってしまいました。
openFrameworksのコミュニティーも、オープンソースのドライバが開発された初期の段階から、ofxKinectというアドオンとしてopenFrameworksに移植され、Kinect Hackに大きく貢献してきています。ジェスチャー認識をコントローラとして使用した作品、Kinectの深度情報をもったカメラの機能に注目して、様々な不思議な視覚効果を追求した作品など、Kinectを応用した様々な成果がopenFrameworksとKinectの組み合せから生みだされています。
ここで、Kinect Hackの代表的な作品をいくつか紹介します。
Interactive Puppet Prototype with Xbox Kinect from Theo Watson on Vimeo .
openFrameworks開発者の一人、Theo Watsonによる、Kinectのジェスチャー認識を応用した、パペットを操作する作品。
Air Guitar prototype with Kinect from Chris O'Shea on Vimeo .
Chris O'Sheaによる、Kinectを活用したエアギター。
深津貴之による、動いている人物を透明にする光学迷彩の実験。
これらの作品はすべて、openFrameworksとKinectの組み合せで開発されています。
2011年もこの潮流は引き続き発展していくと思われます。昨年末には、Kinectの技術を開発したPrimeSense社自身が、ジェスチャー認識を使用した「Natural Interaction (自然なインタラクション) 」を活用するためのライブラリを、オープンソースなドライバとして公開しました。こうしたサポートもあり、より緻密なジェスチャー認識が可能となり、今後ますます面白い応用例が草の根の開発者たちから生まれてくるでしょう。
デジタル・ファブリケーション、インタラクティブ・ファブリケーション
ここ数年、カッティングマシンや3次元プリンタなどのデジタル工作機械が、価格が安価になってきた影響もあり、急速に普及してきています。以前であれば数千万円もしていたような工作機械が、個人で購入して使用できるような製品が入手できるようになっています。こうしたパーソナルな工作機械とコンピュータを活用した新たなファブリケーション(工作、製造)環境は、2011年の新たな創作のムーブメントとして注目を浴びそうです。
例えば、Karl D.D. Willis、Cheng Xu、Kuan-Ju Wuによる、Interactiove Fabricationプロジェクトは、様々なインタラクティブな入力手段によって、リアルタイムに物体の形態を生成する手法について様々な実験を行っています。Beautiful Modeler では、iPadを入力デバイスとして、マルチタッチの入力によって、複雑な形態を生成し、それを3次元プリンタで実際に物体として生成します。
同じような手法で、入力デバイスとしてKinectを活用しても面白いものになるでしょう。ジェスチャーの軌跡がそのまま物体の形態として生成されるといった応用がすぐに実現可能となりそうです。入力の手法の発展だけでなく、様々な実世界のデータのビジュアライズしてそれを形態として生成したり、アルゴリズムによるジェネラティブ(生成的)な形態の発生をデジタル・ファブリケーションに応用可能です。こうしたジェネラティブ・ファブリケーションによって、これまでにない複雑な形態による物質表現が2011年は盛んになっていくのではないかと予想されます。
プロジェクションマッピング
プロジェクションの技術やデバイスも、最近になって大きく進化しています。レーザープロジェクタを使用することで、投影面の距離に関係なくフォーカスの合った映像をプロジェクションすることが可能です。そのため、今までのプロジェクターでは難しかった立体の面にくっきりとプロジェクションすることができるようになり、建築物の凹凸に関係なく高品位のプロジェクションが可能となりました。
こうした技術的な進歩を受けて、今後ますますプロジェクションマッピングを利用した表現が発達していくのではないかと考えられます。作品例のところでとりあげた、YesYesNoのNightLightのような、高度なインタラクションを活用したパブリックアートが今後様々なイベントで見られるようになるのではないかと思います。
また、そうした巨大な物体へのプロジェクションだけでなく、よりパーソナルな表現としてのプロジェクションマッピングの可能性も拡がっています。小型のレーザプロジェクターとデジタル・ファブリケーションの技術を応用して、3Dプリンタで成形された複雑な形態の表面にアルゴリズミックな映像を投影して、実世界と仮想世界が複雑に混ざりあったような表現が、個人レベルで可能となるでしょう。
DIWO、みんなで一緒に !
openFrameworksのカルチャーをうまく表現した言葉として、DIY(Do It Yourself) から、DIWO (Do It With Others) というのがあります。これまで何かを生みだすためには、自分自身でやる必要がありました。しかし、インターネットが発達したネットワーク社会では、一人ではなく、みんなで協力してものを生みだすというカルチャーがとても大きな意味を持っています。
Kinect Hackに代表されるように、openFrameworksのネットワークで緩く繋がりあった開発者達によるDIWOコミュニティーはとても活発で、フォーラムを通じて日々情報が交換されています。また、日本でも徐々にopenFrameworksのコミュニティーが生まれつつあります。openFrameworksの日本語フォーラム も、本家ほどではないものの様々な情報を入手することが可能です。
openFrameworksのコミュニティーには、素晴しいアーティストや技術者達が参加しており、openFrameworksを活用して新たな技術や表現手法が日々生みだされています。そして、その技術や表現手法が再びアドオンとしてコミュニティーに還元されるというポジティブなフィードバックループが生まれています。
この記事を読んでopenFrameworksに興味を持った方は、ぜひこの機会にこの世界的なネットワークの輪に加わって、みんなで一緒にこのムーブメントを盛りあげていきましょう。
参考サイト、書籍
最後にopenFrameworkに関するWebサイト、書籍を紹介します。
書籍
Web