江ノ島初日の出

ここ数年、元旦は初日の出を見に行っております。

個人的には江ノ島がオススメでして、
アクセスの良さ(電車で行ける)、ついでに初詣に行ける、お食事どころなどの施設が充実している、
自然に囲まれている(ビルの屋上などではなく、山か海の近く)、
という条件をすべてみたしております。

なお、元旦はロマンスカーが夜間〜早朝含め運行しておりますので、
新宿方面から向かわれる方はロマンスカーもオススメです。
http://www.odakyu.jp/program/info/data.info/8190_5424325_.pdf



さて、そんな江ノ島ですが、残念ながら今度の初日の出は諸事情で行けそうにありません。
そこで、processing + box2dで人の動きをシミュレーションし、
一足早く気分だけでも盛り上がろうと思います。

※厳密に現実世界を表現しているものでは無く、あくまで以下の制約によるものとなります。

【実装】
・processing
・box2d
・google map(地図として使用)

【設定】
・時間ごとの人の動きを表現
・人と人の衝突判定を加味し、混雑を表現
・1つのオレンジの円が10〜15人くらいの集団を表す
・元旦は深夜から特急ロマンスカーが運行しているため、
 15〜30分置きに350人ほどの人が逐一来訪することを想定
・江ノ島は6:50が初日の出の平均時刻のため、それまでは
 海岸付近に佇み、以降は神社を目指すよう設定。


もともとbox2dは物理シミュレーション用のライブラリで、
重力や摩擦などの条件のもとでの衝突判定などに使われるのですが、
今回は衝突、というより混雑を表現するために使用しました。
box2dで実装しているのは、”Human”classのほか、人の動きを制限するための、
“Border”classとなります。(要は道、ですね、。)

シミュレーションでは道は表示していませんが設定上、下記のようにしております。(白い線がborder)
※地図を参照しながら点をひたすらつないで複数のシェイプを作成していくという、タフネスが要求されます、。
※今回のシミュレーションの本筋ではないですが、一応、岩屋までの道筋を作成しております。

スクリーンショット 2014-12-28 11.19.10


また、ポイントごとに複数のattractor(Human classを引きつけるためのもの。要は目的地)を設定しており、
現在地および現在時刻によって切り替えております。
※attractorは、ある距離内のHuman classを自分の近くに引き寄せるように力を加えるように設定


それでは、以下からどうぞ。
※YouTubeの画面あるいは全画面表示のほうが見やすいかもしれません。
※5時くらいまでは画面を演出上暗くしております。




なお、片瀬江ノ島駅から神社に行く初詣までの時間を上記シミュレーションで計測したところ、
深夜時間帯は神社にまっすぐ行く人と、橋をわたったところで初日の出を待機する人に分かれるようですが、
初日の出後はまっすぐ初詣に向かう人が多くなっております。
また、まっすぐ初詣に向かう場合の所用時間は混雑により徐々に長くなっているようです。
※ただし、待ち時間はあくまでシミュレーション上のため、実数は参考にならないかと思います、。


【元旦における江ノ島の初詣までの所要時間シミュレーション】
※横軸がシミュレーション開始時刻(3:00)からの経過時間(分)、
 縦軸が初詣までの所要時間(分)
混雑シミュレーション


目的地は時刻ごとに変更するよう設定しておりますが、
神社に行くか橋をわたったところで待機するか、神社までの待ち時間については、
人と人の動きによる物理シミュレーション上によるものです。面白いですね。

今回のシミュレーションは、おそろしく、えいやであることは否めませんが(汗)
世の中に無いデータは、自分でシミュレーションして作ってしまえ、というスタンスは、
引き続きチャレンジしてみたいと思います。