–「OpenPool連続インタビュー企画」第2弾、お待たせいたしました。この企画は、OpenPoolに携わったメンバーを順番にフィーチャーして、OpenPoolの苦労話や感動秘話、あんな話やこんな話も、赤裸々に語ってもらう企画です。
今回はOpenPoolCoreライブラリを作った中心的エンジニア、加藤さんのインタビューです!加藤さん、よろしくお願いします。
よろしくお願いします。
– 加藤さんの研究について教えて下さい。
私は現在、東京大学大学院情報理工学系研究科コンピュータ科学専攻五十嵐研究室でHCI (Human-Computer Interaction)を専門に、「人と情報機器の関係を良くする」ことを目標に日々研究しています。特に、「だれでも簡単にプログラミングできるようになるにはどうしたらいいか」というテーマに興味があります。
ご存じの通りプログラミングは、成果物であるプログラムを通して人々の生活をより便利で豊かなものにしてくれます。でも実は、プログラミングという行為そのものも(絵を描いたり音楽を演奏するのと同じように)精神的な豊かさを与えてくれる創作行為の一種なんです。その事実に、プログラミング経験の無いほとんどの人は気が付きません。もっと多くの人にプログラミングの楽しさを知ってほしいという願いから、「だれでも気軽にプログラミングできる」世界を実現させたいと思っています。
どんな人でもエフェクトを作れる環境を用意したプロダクトであるOpenPoolも、その活動の一環と言えます。
– 研究では、どのようなものを作ってきたのですか?
まず、Picodeをご紹介します。これは写真をソースコードに貼りこめる特別な統合開発環境で、Processingをベースに改造して作りました。
Picodeは「ソースコードの大衆化」を推進しよう、というビジョンのもと作られました。これはつまり、プログラマでもプログラマでない人でも、ソースコードを一目見ただけで、その意味が分かるようにしよう、という試みです。
具体的には、「写真を撮る」「写真をドラッグ・アンド・ドロップする」という誰にでもできる2ステップだけで、簡単にプログラムの内容を変えることができます。つまり、プログラミング言語の難しい文法などを覚えなくても、プログラミングを体験できるんです。
– どれもスゴイ。この記事を読んでいるの皆さんのために、リンクを貼っておきます。動画は必見ですね。
加藤さんのWEBサイト: http://junkato.jp/ja/
Picode: http://junkato.jp/ja/picode/
日本科学未来館でのPicodeワークショップの様子: http://blog.miraikan.jst.go.jp/event/2013051726701
TouchDevelop: http://junkato.jp/ja/touchdevelop/
Visionsketch: http://junkato.jp/ja/visionsketch/
–OpenPoolではどんなシステムを作ったのですか?
takashyxさん(編注:インタビュー第1段で登場)が作っていた画像処理のコードをOpenCVを使って高速化しました。また、この機能をProcessing用のライブラリとしてパッケージにしました。OpenPoolプロジェクトに後から参加する人が、OpenPoolのソースコードを全部ダウンロードしてコンパイルして…というのでは敷居が高すぎると思ったので。
ちなみに、現在OpenPoolのソースコードは、コアライブラリとブーストライブラリという2つの種類のライブラリに収納されています。コアライブラリが無ければエフェクトが書けません。ブーストライブラリは、追加のハードウェアと対になっていて、これを導入することで、よりゲームの進行とシンクロしたエフェクトが書けるようになります。
– プログラムを作る人とそれを使う人、誰もが使いやすい環境を作りたいという気持ちが、ここでも活かされているのですね。
そうですね。
– その中で工夫した点を教えて下さい。
API(Application Programming Interface)の設計です。OpenPoolのエフェクトを書くだけなら、画像処理とか難しいことを理解する必要はないので、そこを隠蔽して単純なAPIだけを表に出すように設計しました。その際、なるべくProcessingのカルチャーに合わせて、Processing使いが利用しやすいように工夫しました。具体例をあげると、ビリヤード台の上のボールの情報を表す配列balls[]と、その内容を更新するupdateBallsという関数は、Processingの関数であるpixels[]とloadPixelsを参考にして作成しました。
他には、マルチスレッド化も工夫した点の一つです。エフェクトのコードが重くなったときでも、ボールのトラッキングにはなるべく影響が出ないようにしています。
–今後OpenPoolで取り組んでみたいテーマをあげるとしたら、何ですか?
まずは、Picodeと同じように、ProcessingをベースにOpenPool専用の統合開発環境を作って、エフェクトをもっと簡単に開発できるようにしたいですね。
あと、ブラウザで動くOpenPoolを作れたらいいなと思っています。幸い、ProcessingにはProcessing.jsというJavaScript版が存在するので、これを活用できたらと思っています。
–これからどんな人にJoinしてもらい、一緒に活動できたらいいなと思いますか?最後に、メッセージもお願いします!
Effectを描ける・描きたい人にJoinして欲しいですね。エバンジェリスト的な役割を果たせるデザイナさんがいれば、ピッタリだと思います。
OpenPoolはシステムが現実空間のビリヤード台の上で動くので、そこが自然とチームの活動拠点になる、というところが今風で気に入っています。連絡を取るだけなら、インターネットでもできる。でもあえて物理的に集まるきっかけを作り、身の回りの友人を呼んで、すぐに集まり活動できる場所がある。こういう、すぐにフィードバックが得られる環境を求めている人には、特にJoinして欲しいです。
– 加藤さん、ありがとうございました。こんなステキなOpenPoolに、あなたもJoinしませんか?
興味の有る方はこちらまで!