蔵本モデル on Cinder

English version is ready: 英語

はじめまして、開発チームの佐藤です。
同期現象を記述する数理モデルとして有名な、通称「蔵本モデル」を実装してみました。

 

各オブジェクトが全体として緩やかなつながりをもって振る舞ってほしいことが多々あります。蛍の点滅同期などが有名ですが、多数のオブジェクトがあるとき一斉に連携する様はかなり心に響くものがありますよね。

 

ライブラリとしてCinderを使いました。
appはこちら、プロジェクト部分のソースは こちらに公開しています。

 

Kuramoto model on Cinder from hrki on Vimeo.

 

結合強度を操作できるようにしてみました。うまく設定することで緩やかな同期を作り出せます。やや生物的な印象になりますね。各オブジェクトは固有の振動数をもっていますが、以下のように他のオブジェクトから影響を受けます。

[latex]
\displaystyle
\dot\phi_i = \omega_i + \frac{K}{N}\sum^N_{j=1}\sin(\phi_j – \phi_i)
[/latex]

ここで[latex]N[/latex]はオブジェクトの数、[latex]K[/latex]はそれぞれの結合強度、[latex]\phi[/latex]は位相、[latex]\omega[/latex]は角速度を表します。結果ざっくりとは速いものは後ろにひっぱられ、遅いものは前からひっぱられるように相互作用が働くことになります。シンプルな振動数の同期なので、振り子以外にも応用が利きそうですね。

スタディでした。