読者です 読者をやめる 読者になる 読者になる

31歳からの数学修士

なぜ再び数学するのか

Open Hack Day 3 で「リーマン球面」を作りました。

Open Hack Day 3 に参加して、実物の「リーマン球面」を作りました。

f:id:taketo1024:20150308214006j:plain

昨年、iPhone 上で複素平面上の数を動かせる「さわれる複素数」というデモアプリを作って好評だったので、いずれは 3D を勉強して「さわれるリーマン球面」を作ろうと思っていたのですが、湯村さんの「Personal Geo Cosmos」にヒントを得て「そうか、実物を作っちゃえば良いのか」と思い立ち、そういうのは束田さんしかいないと思い「ヤフーのハッカソンで一緒にリーマン球面を作りましょう!」と突然の無茶振りをして、「リーマンズ」というふざけたチーム名で昨日今日と臨むことになりました。

Hack Day はとてもユニークはハッカソンで、24時間で作ったものをたった90秒でプレゼンするルールになっており、これが90チーム近く出るのでかなりの怒涛感です。この制約の中でどれだけ面白く見せられるかというチャレンジでした。今回は僕が 3D プログラミングを担当し、束田さんが「実物の球体」を作る作業を担当しました。

f:id:taketo1024:20150308201816j:plain

こちらが東急ハンズから買ってきた発泡スチロールの半球と外枠の段ボールです。ここにプロジェクタで球面の表面を投影することで、球体が回ったりその上で点が動いてるように見せることができるだろうと。

まず僕は 3D 未経験だったので、この一週間だいぶ必死に勉強しました(笑) 数学的な観点から今回やったことは「1. 複素平面上の点を球面に対応させる」ことと「2. リーマン球面に複素平面のテクスチャを貼る」ということの2つで、難しかったのは後者です。一般に 3D で球面にテクスチャを貼るときはメルカトール図法が使われますが、複素平面とリーマン球面は立体射影で対応しているので、そのようなカスタムシェーダを作る必要がありました。

f:id:taketo1024:20150308203346p:plain

初日は別々に作業を進め、2日目、開発時間終了の30分前にそれぞれ出来上がってプロジェクターで投影してみたところ、ビックリするほどバシッとハマったのでテンションが上がりました。「これは本当に球体そのものが動いているように見えるじゃないか!」と。

f:id:taketo1024:20150308203658j:plain

こちらが本番を控えた、完成版の筐体です。

さて、90秒のプレゼンで何が伝えられるか。今回は資料も用意せず、箱の横に立って手元で iPad を操作しながら発表しようと決めていました(μ崎さんスタイルにインスピレーションを受けて)。真面目に「リーマン球面とは何か」を説明する時間はないので、「リーマン球面とは複素平面無限遠点で結んで球面にしたものです」と宣言し、iPad で球面を回転させながら「赤道が単位円で、南極が原点、北極が無限遠点です」とサーッと説明していきました。

これで分かった気になってもらった上で(実際になったかどうかは分かりませんが 笑)、「1. リーマン球面上では直線が円となって無限遠点で繋がる」「2.  f(z) = z^2,  f(z) = 1/z はリーマン球面上でどう動くか」「3. リーマン球面上では  \frac{1}{0} = \infty になる(これまで禁じられていたもの!)」が伝えられれば面白いかなと。

発表はジャスト90秒で終わりました。終了後には「とても面白かった」「全然わからないけど面白かった」「当然わかるでしょみたいなスタンスが最高に良かった」などとお声がけ頂き、とても嬉しかったです。

こちらは発表会後の展示会で束田さんが撮影したものです。作ったものの雰囲気は伝わるかなと思います!

(しかしこの BGM は…笑 リーマン球面をどう感じるかは人によって異なるようです。ちなみに束田さんはこのあとライブ(演奏する側)だそうです。なんというバイタリティ…)

(3/9 追記:束田さん曰く「実験的な試みかつ攻撃的な姿勢は、今回の我々のスタンスに近いものがあり、すぐに「これだ!」と思いつきました(笑)」だそうです!)


ハッカソンが良いのは、普段興味があってもなかなか手をつけられていないようなことをショック療法的に習得できるということと、面白い人とチームを組むと自分一人では絶対に作られないようなものが生まれることかなと思います。

僕は当初「デカイ球体を買って映像を映せばOKだろう」ぐらいに考えていたのですが、束田さんは筐体の外見や強度、会場のライトの遮光などにかなり拘っており、(別にそこまで拘らなくても…)とも思ったのですが、結果的にはその全てがあってグッと発表の魅力が上がったと思います。

というわけで、めちゃくちゃ楽しいモノ作りでした。今回作ったものは前の「触れる複素数」と合わせていずれちゃんとした形でリリースしたいなと思っています。あとせっかく 3D も付け焼き刃ながら勉強したので、もっと身にしていきたいなと。このブログでもいつかちゃんとリーマン球面の話は書きます。

それでは、ありがとうございました!