如何在Python中为刚体进行3D稳定堆叠

时间:2014-02-08 18:17:22

标签: python simulation physics-engine

我可以使用任何库在python中进行简单的3D堆叠模拟吗? 为了简化问题,所有对象都是具有整数宽度/高度/深度/顶部/左/ z-index的框。 唯一需要模拟的是确定堆叠是否稳定。

我目前正在搜索一些物理引擎来完成这项工作。

vpython http://vpython.org/contents/doc.html

Box2D的 http://box2d.org/about/ 除了2d外,它可以很好地稳定堆叠。

来自box2d的稳定堆叠样本 enter image description here

EDIT1

我终于使用了Chrono:PyEngine。它非常易于使用,python绑定是最新的。我发现唯一困难的是最新版本只支持python 3.X http://www.projectchrono.org/mediawiki/index.php/ChronoPyEngine:Introduction

EDIT2

使用Chrono运行堆栈检查的示例代码:PyEngine。 https://github.com/lucemia/box/blob/master/physical.py

1 个答案:

答案 0 :(得分:2)

这是其中一个没有真正令人满意的答案的问题。但看看这些:

  • https://www.ibm.com/developerworks/library/os-physicsengines/
  • pyODE(ODE导出到python),但最新版本是2010年,支持python 2.6; C ++方面似乎得到积极维护
  • newton,其中包含python绑定但最新版本(甚至是C ++后端)自2011年4月起再次未更新;
  • bullet主动维护在C ++级别,但python绑定在大约一年内没有更新,并且不知道如何全面和稳定
  • reactphysics3d是C ++但积极维护:需要创建python绑定
  • havoc:不是免费的,没有python绑定,但看起来最强大

如果您愿意学习SWIG(www.swig.org),您可以为您想要的Bullet或PyODE或reactphysics3d部分创建自己的Python绑定。不知道Havoc。