倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

Groovy + オブジェクト指向物理シミュレーション

書店で Java の書籍を見ていると、『Java で物理シミュレーション』みたいなのが何冊か目に付きます。 Java も物理も大好きッ子な拙者としてはこれを見ないわけにはいかないのでパラパラと中身を見てみると、 一応 Java は使っているものの、Java の根本思想である『オブジェクト指向』なんてのは見る影もないほどコードをベタ書きしてるのばかり。 これではイカン!と思い立ち、もっと『オブジェクト指向』な物理シミュレーション・フレームワークを作成することにしました。 その名も『Groops』。 Groops は「GRoovy + Object-Oriented Physics Simulation」の頭文字です。

とはいっても『オブジェクト指向物理シミュレーション』とはどんなものか?というのも少々悩ましいところ。 で、立ち読みする前にもこういったことは考えていて、だいたい次のようなものがあるのではないかと思っていました:

  • 物理系のオブジェクト・モデルを特定し、部品を組み立てるように物理系を構築できるようにする
  • 物理シミュレーションのオブジェクト・モデルを特定し、 部品を組み立てるように物理シミュレーションを構築できるようにする
  • 物理シミュレーション開発にオブジェクト指向開発の手法を取り入れる

Groops フレームワークが目的とするのは2つ目の項目です。 可能なら3つ目の項目までカバーできればいいかなと。 1つ目の項目は別プロジェクトで開発する予定です(何(十)年後かは分かりませんが)。

オブジェクト指向な物理シミュレーション・フレームワークは、以前にも開発しようと思ったことはあったのですが、 Java (+XML) だとどうしても簡潔な記述を実現できなくて行き詰まっていました。 そこで、Java とシームレスに連携できて、かつ動的で柔軟なプログラミング言語 Groovy の力を借りて開発。 以前に比べてかなり柔軟性が実現できたのではないかと思います。

まぁ、前置きはこのくらいにしておいて、楽ちん物理シミュレーションをご体験あれ!(と言いつつ、未だ鋭意開発中 ^ ^;) 記事の目次はこちら

Groovyイン・アクション

Groovyイン・アクション