Friday, March 20, 2015

Customized 3D Visualizations

For sometime now, I've longed for a programmable, simple to use 3D visualization software, which has all the basic primitives (spheres, cylinders, etc.) predefined. Most of the time, I have to visualize molecular configurations.

Yes, there is a slew of very good ready-made programs that allows us to do this. Here is a list of molecular visualization software from Wikipedia. I have, and continue to use AtomEye and VMD. However, a lot of my simulations are very coarse grained - so that the "atoms" in my simulations are really "superatoms" into which many small atoms have been subsumed.

The "bonds" between atoms that these programs draw (or refuse to draw, in case of bead-spring polymers) is one among many minor annoyances that I had learned to live with.

Until I found Povray. Povray is great when you want to create beautiful renderings, has basic primitives, and a sophisticated set of options including lighting, camera, etc. I used it for a while.

But Povray always felt like a professional camera placed in the hands of a person who would rather use his iPhone to take point-and-shoot images.

Finally, late last year I discovered vPython. As its tagline suggests, it is "3D programming for ordinary mortals". Here is the wikipedia entry for additional context.

The learning curve is surprisingly gradual for someone already exposed to Python. The graphics window in which objects are rendered is interactive (one can zoom in and out, scale, rotate, and do all the usual fun stuff), and one can easily do basic animations.

Here are some basic tutorials to get started:

1. A bunch of YouTube videos
2. An official tutorial

No comments: