¿Cuáles son las buenas bibliotecas para crear un progtwig de Python para simulaciones / visualizaciones de física 3D (visualmente atractivas)?

¿Cuáles son las buenas bibliotecas para crear un progtwig de Python para simulaciones / visualizaciones de física 3D (visualmente atractivas)?

He mirado a Vpython, pero las simulaciones que he visto parecen feas, quiero que sean visualmente atractivas. También parece una vieja biblioteca. Para la progtwigción en 3D, he visto sugerencias sobre el uso de Panda3D y python-ogre, pero no estoy seguro de que sea realmente adecuado para simulaciones exactas. Además, preferiría una biblioteca que se combine bien con otras bibliotecas (por ejemplo, pygame no se combina tan bien con otras bibliotecas).

El soporte 3D para python es bastante débil en comparación con otros idiomas, pero debido a la forma en que se construyen la mayoría de ellos, la apariencia del progtwig es mucho más mutable de lo que piensas. Por ejemplo, habló sobre Vpython, mientras que muchos de sus ejemplos no son visualmente atractivos, la mayoría también son de versiones anteriores, la versión más reciente incluye tanto extrusiones, materiales y pieles, que le permiten personalizar su apariencia mucho más que antes de.

Probablemente también vale la pena tener en cuenta que simplemente no es posible hacer imágenes con calidad de renderización en tiempo real (los ciclos son un gran paso en esa dirección, pero aún no están ahí). Creo que la mayor parte de tu problema aquí es que estás buscando algo de lo que la tecnología simplemente no es capaz de hacer ahora, sin embargo, si estás dispuesto a asumir la carga de hacer que tu simulación se vea visualmente atractiva, Vpython (que es una versión de Gussied). PyOpenGL) es probablemente tu mejor apuesta. Sin embargo, a continuación se muestra un resumen de diferentes tecnologías, en caso de que esté buscando algo más general:

Blender: el progtwig de gráficos Python más poderoso disponible, sin embargo, está diseñado para el diseño gráfico y los efectos especiales, aunque tiene una física muy compleja que se ejecuta por debajo, Blender no está hecho para simulaciones físicas. Autocontenido

Panda3D: un progtwig muy a menudo comparado con Blender, sin embargo, en su mayoría es útil para juegos. Es mejor trabajar con el motor del juego que con el de Blender, pero la calidad de reproducción es mucho menor, al igual que la riqueza de funciones. Autocontenido

Ogre: una biblioteca que fue muy popular para el desarrollo de juegos en el pasado, con una gran cantidad de funciones poderosas, especialmente para la creación de entornos de juegos. El manejo de eventos también está muy bien implementado. Se puede hacer para integrarse con otras bibliotecas, pero con dificultad.

VPython: una biblioteca diseñada para simulaciones físicas que elimina gran parte del mapeado de texturas y el poder de renderizado en comparación con los otros métodos. Sin embargo, esta capacidad sigue ahí, ya que VPython se ha creado principalmente a partir de OpenGL, que es una de las bibliotecas gráficas más versátiles. . Como tal, VPython también es muy fácil de integrar con otras bibliotecas.

PyOpenGL: OpenGL para Python. OpenGL es una de las bibliotecas de gráficos de mayor uso, y es sin duda capaz de producir algunas de las mejores imágenes de esta lista (Excepto para Blender, que es una clase propia), sin embargo, no será fácil hacerlo. . PyOpenGL es muy básico, y mientras la funcionalidad está ahí, será más difícil de implementar que cualquier otra cosa. Juega muy a voluntad con otras bibliotecas, pero solo si sabes lo que estás haciendo.

Pruebe PyOpenGL . Es una biblioteca que proporciona enlaces de Python a OpenGL a través de la biblioteca de ctypes de Python.

Aquí hay una demostración de esto:

Demostración de béisbol PyOpenGL

Si necesitara un paquete de visualización para python, comenzaría con Processing.py: https://github.com/jdf/processing.py

Este es un enlace de python para los códigos Processing.org basados ​​en java. Una comparación rápida se puede encontrar aquí: http://wiki.processing.org/w/Python_Comparison

Por supuesto, si no está limitado a Python, el procesamiento en sí también sería un buen punto de partida: http://processing.org

También hay enlaces de Python para el Kit de herramientas de visualización (VTK), pero la mayoría de sus ejemplos son C ++ o Tk.

Si todo lo que buscas es un gráfico de escena para mover geometrías, no nativas, entonces he visto algunos enlaces de Python para el Gráfico de Escena Abierta, por ejemplo: http://code.google.com/p/osgswig/

¡Buena suerte!

De tu pregunta, no está claro lo que quieres lograr. ¿Desea crear una aplicación independiente que se pueda usar para controlar la simulación en tiempo de ejecución, o crear una simulación usando Python que luego pueda verse sin conexión?

Para este último, puede ver Blender , una suite de creación de contenido 3D de código abierto que incluye una interfaz de scripts de Python que da acceso a la mayoría (si no a todos) de los aspectos internos de la aplicación. Blender viene con algunas bibliotecas de física y de partículas que pueden ser de utilidad y como aplicación es indicativa del tipo de software utilizado para crear efectos visuales para películas, etc.

Si desea crear una aplicación independiente para controlar la simulación en tiempo de ejecución, lo más probable es que esta no sea una opción adecuada. Sin embargo, si desea producir una serie de imágenes visibles, vale la pena echarle un vistazo.