about
openFrameworksは、シンプルで先端的なフレームワークによって創作活動を支援するためのオープンソースのC++ツールキットです。ツールキットは、以下のリストあげたよく利用されるライブラリー群をまとめて汎用的な「糊」のような役割を果たすようにデザインされています。
- グラフィクス:OpenGL, GLEW, GLUT, libtess2, cairo
- オーディオの入出力と分析:rtAudio, PortAudio or FMOD, Kiss FFT
- フォント:FreeType
- イメージの読込と保存:FreeImage
- 動画の再生と取込:Quicktime, videoInput
- 様々なユーティリティー:Poco
コードは様々なプラットフォームで動作するように書かれています。現在は、5つのOS(Windows, OSX, Linux, iOS, Android)と、4つの開発環境(XCode, Code::Blocks, and Visual Studio, Eclipse)をサポートしています。APIは最小限で把握し易いようデザインされています。
簡単に言うと、openFrameworksはコードにまつわる様々な事柄をずっと容易にしてくれるツールなのです。わたしたちはこのツールをとても便利と感じています、きっとあなたもそうなるでしょう。
openFrameworksはザック・リーバーマン(Zach Lieberman)、セオドア・ワトソン(Theodore Watson), アルトロ・カストロ(Arturo Castro)を中心にして、OFコミュニティーとともに開発されています。openFramewokrsは以下2つの先駆的なプロジェクトの恩恵を受けています。
- Processing:ケーシー・リーズ(Casey Reas)とベン・フライ(Ben Fry)を中心に開発された開発環境
- ACUツールキット:ベン・フライらによってMITメディアラボのAesthetics and Computation Groupで開発されたC++ライブラリ
貢献や協力をした人達
openFrameworksは、oFコミュニティーの協力のもと、Zach Lieberman, Theodore Watson, and Arturo Castroのコアメンバー ("the core")によって、活発に開発されています。 openFrameworksは、2つの重要な先駆的なプロジェクトの恩恵を受けています。Casey ReasとBen FryとProcessingのコミュニティ、そして、ACU ToolkitというBen FryとMITメディアラボの「コンピューテーション美学(Aesthetics and Computation)グループ」によって開発され個人的に配布されたたC++ライブラリーです。 何人ものコミュニティーのリーダーが、openFramworksを基本機能を構成するサブセクションのリポジトリを整備しています。
現在:
- 3Dリーダー: Elliot Woods (elliotwoods)
- Addonsリーダー: James George (obviousjim) and Greg Borenstein (atduskgreg)
- コミュニティー・マネージャー: Kyle McDonald (kylemcdonald)
- ドキュメント・リーダー: Dayan Moisa (justdayan)
- フォーラム・リーダー: Jason Van Cleave (jvcleave)
- GitHubリーダー: Christoph Buchner (bilderbuchi)
- ハードウェア・リーダー: Josh Noble (joshua noble)
- インターナルアプリケション・リーダー: Philip Whitfield (underdoeg)
- iOSリーダー: Lukasz Karluk (julapy)
- 対外的リーダー: Caitlin Morris (c_tl_n)
- サウンド・リーダー: Damian Stewart (damian)
- チュートリアル・リーダー: Diederick Huijbers (roxlu) and Jeff Crouse (jefftimesten)
- タイポグラフィー・リーダー: Christopher Baker (bakercp)
- ヴィデオ・リーダー: James George (obviousjim)
- Windowsリーダー: Matthew Gingold (gameoverhack)
過去のリーダー:
- Steve Varga (vargatron) タイポグラフィー・リーダー
多くの組織が、助成金、寄付、国際開発者会議の会場の提供などを通して多大な協力を提供してきています。
- Ars Electronica Futurelab and Festival
- Eyebeam Art & Technology Center
- Ford Foundation
- Frank-Ratchye STUDIO for Creative Inquiry at CMU
- Parsons the New School for Design
また、以下の組織は、「oF Lab」という数日にわたって開催される教育ワークショップのイベントの会場を提供していただきました。完全なリストは、wikiを参照してください。
- Art && Code Festival
- Eyeo festival
- Fabrica: The Benetton Group Communications Research Center
- Graphic Design Festival Breda
- iMAL Center for for Digital Cultures and Technology
- MediaLab Prado
- New York University Interactive Telecommunication Program (ITP)
- Pratersauna Digital LAB
- Resonate.io Festival
- Victoria and Albert Museum
- 山口芸術情報センター (YCAM)
デザイン哲学
openFrameworksの開発は、分散化されています。多くの人々の参加、活発な議論、アドオンとプロジェクトへの貢献によって繁栄しています。わたしたちは、openFrameworksをまず自分自身のために利用し、その後エコシステムに還元することを推奨しています。
openFrameworksは一貫していて感覚的:openFrameworksは、「驚き最小の原則」に基いています。つまり、openFrameworksの一部を学べば、その他のパートにも容易に応用可能です。初心者はopenFrameworksをプログラミングのパターンの基礎を学ぶために使用できます。さらに進んだユーザーは、他のツールキットや言語で実装したや自分自身の経験をopenFrameworksに応用することが可能です。
openFrameworksはユーザビリティとシンプリシティのバランスを保つようにしています。初期バージョンの頃は、openFrameworksは主にC++とOpenGLの教育のために用いられていました。しかし時が経つにつれ、豊富な実例がより進んだ応用的な内容に最適な学習方法になってきていました。
openFrameworksは、クロスプラットフォームです。openFrameworksは様々な開発環境とオペレーティングシステムを可能な限りサポートします。openFrameworksをダウンロードする際にはプラットフォームと開発環境が選択可能です。そして、様々なサンプルとプロジェクトが付属してきます。移植が困難なコードは主要パートとは別に隔離されていて、アドオンとして提供されます。
openFrameworksはパワフルです。例えばOpenCVのライブラリのようにグラフィクスカードなどのハードウェアを効果的に使用したり、カメラなどの周辺機器に接続したりするような際に効力を発揮します。
openFrameworksは拡張性があります。もしopenFrameworksに何かが欠けているのき気付いたら、拡張のためのアドオンは簡単に作成可能です。openFramewroksでは一般的に、新規に機能を開発するよりも、アドオンとしてライブラリに組み込まれて使用されます。openFrameworksにライブラリが格納されても、ライブラリは将来のハッキングのために外部に晒されています。
faq
なぜ、多くの既存のライブラリではなく、また別のライブラリを作成したのですか?
ソフトウェアを簡単に作るためのたくさんのライブラリが、存在します。例えばOpenGLには多くのライブラリ、例えばogre、irrlicht、JUCE、SDL、mxWindowsなどがあります。
openFrameworksは本来、開発の代替手段の「骨組」を提供することを意味していました。我々は、オーディオビジュアルな作品をC++で実現するための最小限の要求を満たすようなライブラリを記述したいと思っていました。
時が経つにつれ、openFrameworksはより強靭なツールキットへと進化していきました。現在、最大の変化は利用者です。我々の未来の利用者は、コンピュータを創作のためや芸術表現、メディア内部の低レベルなデータにアクセスして、操作、分析、探索をしたいと考えているような種類の人々なのです。
なぜ、これらのライブラリをまとめたのですか?
わたしたちは、これまでの経験から判断し、最もクリーンでシンプルなAPIを持つもの、最も寛大なライセンスのもの、組み込みが最も簡単なもの、という基準でライブラリ選択しました。
例えば、ウィンドウのためのライブラリにはGLUTを選択しました。なぜなら、GLUTは最も普及していて、ライセンスが緩やかで、コンパイラやプラットフォームによって非互換な部分がほとんどないからです。わたしたちは、その他のウィンドウ関連のライブラリ、例えばglfwやmxWindowsなども使ってきました。実際にそれらをopenFrameworksにくっつけてみたこともありました。しかし、最終的には、最も簡単に取り扱うことのできるGLUTを選択しました。
最新版のopenFrameworksは、どこにありますか?
最新版のリリースは、ダウンロードページにあります。同じものは、GitHub(https://github.com/openframeworks/openFrameworks/)からも入手可能です。さらに、開発中の最新のスナップショットは、develop branchにあります。GitHubからoFをビルドするための詳細な情報は、readmeを参照してください。GitHubに参加したい場合は、oFとGitHubに関する文書を参照してださい。
何か助けになることはありますか?
アドオンを作成すること、ドキュメントを改良すること、チュートリアルやインストラクションを作成などを通じて助けになることが可能です。もしoFを既に使用して興味を持ったなら、できる限りソースや情報やアイデアを投稿してください。まだ初心者なら、どういった部分が難しいのか記録をとってフォーラムに質問したり、他の人達が何をしていて何を考えているのかを知ることで、わたしたちの活動に参加することができます。
なぜopenFrameworksは、実行ファイルではなく、ソースコードで配布しているのですか?
色々な理由があります ― 第一に、実践的だからです。openFrameworksはまだ発展途上です。我々は進むべき方向にむかって変化を加えていくでしょう。 コードを閲覧可能にして変更を容易にしておくことで、わたしたち多くの問題や困難についてのフィードバックを得ることができます。第二に、教育的だからです。C++のライブラリと格闘することを学ぶための好奇心を与えることがとても良い出発点になります。第三に、openFrameworksに変化を加えたり、趣味や気のおもむくままに自分にあわせて変更することに対して開かれた環境となっているからです。
C++を学ぶには?
わたしたちは、openFrameworksをC++の教育用のツールとしてはとらえていません。しかし、openFrameworksがC++にとりかかるための「最初の一歩」となるのではと考えています。フォーラムでは活発なコミュニティーを運営していますので、そこで質問すると良いでしょう。
わたしたちは以下のサイトもお薦めします:
- 5日で学ぶCとC++ by Philip Machani:これまで見たC++習得のための文書で一番わかり易い資料です
- ProcessingユーザのためのoFチュートリアル by Zach Gage:Processingのコードから学びたい人へ
- CユーザのタメのC++チュートリアル :Cのコードから学びたい人へ
- Programming Interactivity by Joshua Noble:openFrameworksのバージョン0062だけでなく、ProcessingやArduinoに関してもカバーしています
- StackOverflow:全般的な質問や、より難解な質問をするのにも適した、素晴しいコミュニティーです
- C++ FAQ by Marshall ClineとC++ FQA Lite by Yossi Kreinin
- cppreference.com/wiki/:汎用的なテンプレートのライブラリのリファレンスとして適しています
- cplusplus.com:とても素晴しいC++言語のチュートリアルとリファレンスです
- cprogramming.com:沢山の質問が掲載されています
