ハッカソンでGrand Prize受賞しましたー。

プログラマーがよ~いどんで短期間で一定の成果物を生み出して、その機能やアイデアの良し悪しを競い合うハッカソンという催しがあるのですが、防災をテーマにした世界銀行主催の国際ハッカソンで僕が参加したチームの「逃げ地図」とそのプログラムがGrand Prize(※1)を獲得しました。そのために6/28から約一週間ロンドンへ授賞式とスタディツアーに来ています。

いよいよあなた何者説浮上ですが、建築設計の方も色々ありながら進んでますよ。※2

逃げ地図は、僕が働いている建築設計事務所の震災ボランティアチームが発明したもので、すっごく大雑把にいうと、津波の危険がある地域で、安全な所までどの経路をたどればいいかを住民の人たちと一緒になって鉛筆と紐と地図を使って可視化するワークショップで、漏れはあるけど大体そのようなものです。みんなで一緒にリスクを把握するためのツールですが、興味があれば、

逃げ地図プロジェクト

をご覧いただければと思います。

僕もその震災ボランティアのチームに所属していて、その中でも中心的に担っていたのが、その逃げ地図をそっくりそのままウェブアプリケーションにしてみようというもので、同じ大学のひとつ下の阿部君※3の力を借りて一緒に開発しました。2.0の開発自体は少し前にすんでいて当時としてはブラウザ上で動く3Dアプリケーションそのものが新しくていっちょ開発してみたいという軽い気持ちで始めました。

nigechizu_ss.png

逃げ地図2.0 PCでみないと動きません!あとブラウザはChromeがいいです。

今回のハッカソンでは、この2.0とその普通の逃げ地図(1.0)をハッカソン仕様にまとめなおして、この先の可能性を提示しました。下はその時の動画、音出ます!

前置きが長くなりましたが、ロンドンで受賞のプレゼンのチャンスがあって、いい機会なので僕(と恐らく阿部君)からみた今回のハッカソンで提出した事をまたここでまとめてみたいと思います。かといってそこまで逃げ地図の思想と外れる事は無いと思いますが、防災やボランティアという文脈からはちょっと脱線するかもしれません。

ここから専門的に聞こえるかもしれません

最初のエンコード:逃げ地図2.0

さっきそっくりそのままと書きましたが、話し言葉中心でコミュニケーションがおこなれている逃げ地図1.0のワークショップ(WS)をウェブアプリ化するということは1.0をエンコード(符号化)したということになります。そうすることによって、

  • WSでは捉えきれない人数に体験してもらえる
  • いろんな浸水ラインに対応した近道の案の比較検討が出来る。
  • 何度も繰り返して、試すことが出来る

といったいい点もあるのですが、生活している中で分かる濃い情報(ぬかるみや避難時は危険な橋) やパターン認識の結果による想定外の情報を収集するのは自然言語で繰り広げられるWSに比べて2.0は得意ではありません。※4 WSと2.0が両輪となってうまく機能すればいいなと思っていました。

さて、プログラムを開発するだけなら今に始まったことじゃなしに2.0の何がいいのでしょうか?僕(と阿部君)が2.0で試したことは、プログラムの中の演算役※5 を地域の人やユーザーに投げたということかと思います。WSでも地域の人たちが自分達の手で地図を塗り分けていきます。2.0では塗り分けまではコンピュータがやってくれますが、それを元に試行錯誤するのはユーザーになっています。でも求めようと思えば、与えられた地域の中でどの地点とどの地点を結べば最小のコストで地域の避難時間を短縮する効果が最大の場所をコンピュータに計算させることも出来たはずです。また精度高くそれを求めるために世の中にはあまたのシミュレーション技術がプロ向けにあります。コンピュテーショナル・デザインといえば、コンピュータが自動生成してくれるようなイメージを持ってる人も多いのではないでしょうか?※6 そうでなくても、バリエーションを出すのが得意なのは機械だと思われていたかもしれません。今回はそれはせずに、ただ訪れたユーザーにどのノードとノードを結ぶか聞いて、その結果をログとして残すことに専念しています。

これは、ソーシャル・ネットワークの普及で、人々から得られる情報が爆発的に増えたことでそれをためて後から分析するデータマイニングが取り沙汰されている背景もあると思います。建築の世界でそこまで情報環境を活用した例はまだ少ないですが、誤解を恐れずに言えば藤村さんの鶴ヶ島プロジェクトもそういった演算役を学生と市民に担わせてやっているように個人的には見えてなりません。※7 今までやられてきた市民参加系のワークショップに対して背後に手順を伴った綿密な処理と手続きがあるように思います。

コンピュータオタクから突如機械扱いされてなんだか凄くやな感じかも知れません。しかし逃げ地図2.0では演算する機会(安全な場所への最短経路を求め理解する)は専門家やパソコンじゃなくて、逃げる或いは守る地域の方々が一番必要かと思います。ちょっと上からで恐縮ですが、逃げ地図は手を動かして演算役になることで自分達の問題にできる力があるかと思います。演算させるためのアーキテクチャとしての性格が強いと思います。僕が日々試行しているコンピュテーショナルデザインの分野でもどんどん人をそのものを演算するリソースとしてとらえた上でどう問題を解くかという方向が最近如実に感じ取られます。※8

二回目のエンコード:逃げ地図1.0のGit化

逃げ地図2.0では今までのWSを文字通り符号化しプログラムにしました。でも、それを通して作ったのは実際には演算する本体ではなくそれを可視化させてログを蓄積する「箱」でした。演算役はWS同様参加者です。ではその演算を制御しているのはなんでしょうか?現状WSでは参加者が演算役としてうまく機能するように制御しているのは逃げ地図のチームメンバーの説明です。アーキテクチャが人々の中にある“ミーム”※10 の状態です。ハッカソンでは更にこの部分をエンコード出来ないかと考えました。平たく言えばマニュアルの整備です。

でもそれに加えてそのマニュアルも時代や地域や何をリスクとするかによって分化(進化)する可能性を持っているべきです。逃げ地図そのものは日本のみならず、世界中の津波の危険にさらされている地域で使えます。それぞれの翻訳版がボトムアップで作られたり、或いは地形によってガイドとなるヒモの長さにバリエーションが出たり、使われる色鉛筆の色も増えたり減ったり、googleが無い中国で逃げ地図をやるバージョンが出てくるかもしれません。

そこで使おうと決めたのがgitというソフトウェアを複数でスムーズに開発するために使われるバージョン管理システムです。2.0も同じシステム上で開発し、2人で作業する際も重宝しました。或いは更にバージョンアップをするときに他のプログラマが自由に参加出来ます。※9 gitについては深くは負いませんが、これによって、オープンでありながら色々なバージョンを作ってそれを自動的に管理する事が出来るようになります。

マニュアルをエンコードと言いましたが、git上に構築して、色んな場合に最適にフィットするマニュアルが生成出来るような準備といえると思います。ミーム※10 の部分をエンコードしてシステムを補強したいということなんだろうと思います。

 

まぁ、実際にはそうは簡単に行かないだろうとは思いますが、このマニュアルをだれでも二次加工出来る状態にしておこうというのはハッカソンの後半の話です。 正直、2.0で開発したものが、日本全土に渡り展開し、次の大きな津波までシステムとして稼働している自信はありません。他の震災や過去に起きた悲惨な出来事を風化させたくないというインセンティブがあるならば、それを伝達するためのアーキテクチャをどう設計するか考える必要がありそうです。

ということで、個人的な視点では逃げ地図を二度にわたってエンコードする事を考えれたのがここまでの収穫でした。このエンコード、符号化というからには一見機械化させるというイメージが強い中でどちらをやっても人間に演算させる構図になったのが個人的に興味深い話かと思います。

 
※1: ふたを開けてみたら、Grand Prizeを受賞したチームはもう2チームあるとのことで、単独受賞とはなりませんでしたが、一番ということは変わりないようです。
※2: こないだ実施設計アップでした。 
※3: だけど同い年。 
※4: 実装しろしということですか。 
※5: コンピューター 
※6: (現代ではまだ)そんなことないんですけどね、その生成の仕組を構築してる人がいるわけですから。未来はどうかわかりませんが。
※7: 特に学生を軸に分けてお話されるところが、藤村さんが予め宣言してあったクラス定義に学生さんをあてがってインスタンスとして扱っているっぽい所がいいのです。学生さんは自分を相対化するチャンスにもなるでしょうし。さしずめ超線形プロセスが構造化プログラミングだったら、鶴ヶ島はオブジェクト指向でしょうか。
※8: ここでのコンピュータの定義は数学的なそれよりは少し軟派な感じです。最近色んなものがコンピュータになっていきます。コンピュータの概念が広くなっているのか、田中さんの本『SFを実現する』では(コンピュータとは言えなそうな)モノもコンピュータです。宇宙そのものがコンピュータと言ってるかっこいい人もいます。
※9: 恥ずかしすぎる、けど歓迎します。
※10: 『利己的な遺伝子』に出てくるタームです。わからなければ、ここでは簡単にノウハウと解釈してください。