用于在笛卡尔空间中可视化/动画化粒子的Python框架

时间:2010-11-25 13:28:44

标签: python opengl animation 3d visualization

我有表示多个时间步的粒子位置的数据,需要创建一个动画来显示这些粒子的移动。

我正在考虑使用pyglet自己滚动,但我没有使用pyglet或OpenGL的经验,我需要在接下来的几个小时内启动并运行。 是否存在任何框架或工具包(理想情况下基于Python),开箱即用,或者至少可以快速绘制精灵/ 3d对象并在多个时间步骤中为其设置动画?

对于第一阶段(紧急),简单的2D动画就足够了。但是,我希望可以选择进一步扩展它以支持3D和用户交互(更改视图,动画控制,将动画导出到文件等)。

更新

感谢目前为止的回复。我同意“在接下来的几个小时内”听起来像一个大问题(因此我寻找一个可以加快速度的框架)。

只是为了澄清,我不打算渲染一个复杂的场景。如下所示:

sample output http://oi56.tinypic.com/t645yw.jpg

此特定图像是类似数据集的单个帧的屏幕截图。

5 个答案:

答案 0 :(得分:3)

Pyprocessing是对processing Java动画库的Python处理。处理开发环境包括一些实现粒子系统的非常好的例子。

答案 1 :(得分:2)

Houdini by Side Effects Software是一个行业级的3D动画应用程序,具有出色的Python绑定,Python表达式和一般支持。导入数据很简单,Houdini甚至在应用程序中有一个Python shell用于修补。

导入后,您可以利用各种动画和可视化工具以及优秀的捆绑渲染器“Mantra”。

有一个免费的“apprentice”版本,限制很少,并且有各种级别的付费许可证。

答案 2 :(得分:2)

在2D中,为什么不用matplotlib来模拟模拟帧的散点图。

例如

import numpy as np
import matplotlib.pyplot as plt

# Just some sample data but I'm assuming that you 
# can get your data into vectors like this.
x = np.random.randn(100)
y = np.random.randn(100)

plt.figure()
plt.plot(x,y, '.')
plt.savefig('frame0000.png')

然后,您可以从相框中制作视频。

对于3D - 您可以尝试matplotlib的{​​{1}}或mlab。从我的经验mplot3D来看,有点棘手。如果您在使用mlab时需要更多帮助,请对此帖发表评论。

http://www.scipy.org/Cookbook/Matplotlib/mplot3D http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/mlab.html

答案 3 :(得分:1)

看看PyODE。这对物理学部分有帮助。你可以自己使用图形。

答案 4 :(得分:1)

我们使用了pyOGRE,这是与OGRE库的Python绑定,它将自己描述为:

  

什么是OGRE? OGRE(面向对象   图形渲染引擎)是一个   面向场景,灵活的3D引擎   用C ++编写,旨在实现它   更容易,更直观   开发人员生产应用程序   利用硬件加速3D   图形。类库提取   使用的所有细节   底层系统库如   Direct3D和OpenGL并提供了一个   基于世界对象和界面的界面   其他直观的课程。