logo

鳥の群れをプログラミング

担当:近藤

5月31日火曜日の技術ゼミでは、3年生で協力して、プログラミングで鳥の群れを再現することに挑戦しました。

今回挑戦する鳥の群れの動きを人工的にシミュレーションするモデルを「Boidsモデル」と言います。(「Boid」とは、鳥っぽい「Bird-oid」から作られた造語)

このモデルを作成するにあたって、鳥が群れを成すために必要なアルゴリズムがあります。それは

      他のBoidに衝突しそうな時に離れるようにする「衝突回避」
      近くにいる他のBoidと移動するスピードと方向を合わせる「整列」
      Boidが多くいる方に近づいて、群れに加わるようにする「接近」
の3つです。

すなわち、今回の目標はこの3つのアルゴリズムをJavascriptで作成し、Canvas上をランダムに動き回る鳥たちが、徐々に群れを成して動くモデルを作ることです。

まず最初に、3つのアルゴリズムをそれぞれ作成する班に分かれて作業を開始しました。

各班苦労しながらも、メンバーで議論を重ね、試行錯誤を繰り返し、それぞれ無事にアルゴリズムを完成させていきました。

そして最後に、各班で作ったアルゴリズムを組み合わせていきました。

この段階が最も大変でした。なぜなら、全員がそれぞれのアルゴリズムを新しい班に説明して理解し、プログラムを全てまとめて調整し、Boidsモデルを完成させなければならなかったからです。

どの班も遅くまで議論を重ね、プログラムを書き、糖分を補充し、また議論を重ね、、、
そしてついに、Boidsモデルを完成させることができました!

写真例1

Boidsモデル完成前、鳥たちがランダムに動いていますが、、

写真例1

完成すると、鳥たちが徐々に群れを成して同じ方向に飛んでいる様子が見れました!

写真例1

完成させることができた要因は、プログラミングの力だけでなく、班で話し合い協力したことでできたことだと思います。また、この日の経験は今後のグループワークに生かせるものになったと思います。
何と言っても、完成した時の達成感が堪らなかったです。とても楽しい時間を過ごせました。