バネダンパ系の計算をする必要があり PyODE を試します。
似たようなものとしてPybulletというのもあるそうですね。
(他にかわりになる選択肢があれば教えてほしい)
筆者は5年ほど前(2015年頃)にC/C++版のODEを動かしたことがあります。が
......ほとんどなにも思い出せない。
今は Python 普段使いしてるので PyODE を使ってみます。
大元の公式サイト
ODE http://www.ode.org/
マニュアル http://ode.org/wiki/index.php/Manual
参考になるdemura.net様Webページ https://demura.net/ode_faq#b8
PyODE https://pyode.sourceforge.net/
PyODE API https://pyode.sourceforge.net/api-1.2.0/index.html
1 PyODE インストール
1.1 環境など
作業時期:2020年4月
・Windows10
・Python3.8.0 64bit版
↓ ここを参考に進めた。
https://algorithm.joho.info/programming/python/pyode-install/
######備考
sourceforge にWindowsインストーラがあるんだけど、Python2(2.5か2.6)でなきゃならんのと2010年版ということで 選択肢から除外。(一応リンク→ http://pyode.sourceforge.net/#download )
「インストーラ使う必要なし」が結論です。
1.2 ダウンロード
前述の参考サイトに従って whl ファイルを入手
ファイル名:ode-0.15.2-cp38-cp38-win_amd64.whl
1.3 インストール
whlの保存先にてPowerShellを開く。(「『Shift』+右クリック」とかで)
pip コマンドでインストール:
C:\Python380\python.exe -m pip install .\ode-0.15.2-cp38-cp38-win_amd64.whl
(「-m」オプションでpipを呼ぶことにしている)
結果: 「Successfully installed ode-0.15.2」
特に苦労しませんでした。
2 可視化ツールについて
PyODEには可視化機能はついてない。
(C++のODEはどうだったっけ? たしか、OpenGLっぽい描画が標準で使えたような気がする)
PyODEと組み合わされる可視化パッケージには
・VPython
・Pygame
・PyOpenGL
・PyOgre
の4つの候補がある。(有名どころではね)
過去の定番だったのは「VPython」のようです。
筆者は当初この「VPython」を試しましたが問題があって
結局「Pygame」に移行しました
2.1 About VPython
最新の「バージョン7」をインストールして動かしてみたところ
・バージョン「5」から「6」に変わるときに大きな変更があったうえ、さらに「6」→「7」でも結構変わったらしく、
現行バージョンで使えるサンプルや記事が少ない。
・現行バージョンは「WebGL」らしくWebブラウザ上に出力される
ということが判明。
どうにも扱いづらかったので
筆者は「VPython」を使うのはいったん諦めて「Pygame」に移りました。
2.2 pygame
当面これを使うつもりです。
PyOpenGLやPyOgreにくらべて、記述量は少なく済むと見ています。
pipで最新版がインストールできました。
2.3 PyOpenGL
インストールはひと手間かかりました。(pipから取得は駄目でした→チュートリアル3参照)
VPythonやPygameより記述量は多い。
2.4 PyOgre
まだ試してない。
PyOgreの中にODEが組み込まれているような話もちらほら。
##3 チュートリアル
本家PyODEサイトに3つのチュートリアルがあります。
手前で実施しました記事もご覧ください。
・PyODE チュートリアル 1
概要:「物体の落下」(地面なし)
※本家チュートにグラフ描画を追加しました。
・PyODE チュートリアル 2
概要:「ジョイント と pygame による2D描画」
※本家チュートにGIF出力など追加
・PyODEチュートリアル3
概要:「落下して積み重なる多数のオブジェクトとPyOpenGLによる3D描画」地面あり、接触あり
※画像/GIF動画出力を追加しました。