I’ve been using Avogadro 2 for some time now, and while the performance improvements are great, I really miss the Auto-Rotate Tool from the original Avogadro.
Are there any plans to implement a dedicated Auto-Rotate panel (with X, Y, Z speed controls) as a built-in tool or an official Python extension? It’s a basic feature that many of us rely on for visual demonstrations.
Yes, at some point. Since you can also script this from an external Python script, I’ll probably set that up too (e.g., rotate X, Y, Z and save screenshots).
I’ve been thinking about making a “programmatic manipulator” plugin for a while that could in theory do this. The general idea is to just give the user a bunch of methods for manipulating molecules in very discrete ways, e.g. rotations around axes, rotations around bonds (it’d be different from the bond-centric manipulation tool because it would only offer discrete angles for rotation), reflections across planes, translation by vectors, etc.
I’m not sure how one would automate taking screenshots, or if that is even possible, but if it is I’d be happy to include it.
There’s a JSON protocol for telling the Avogadro app to open files, take screenshots, etc. I’ll need to add an option for “tell this plugin to do X” although some of the things you might want already exist through the “runCommand” syntax
rotate camera in X, Y, Z
zoom (unzoom)
I don’t remember if I included commands for changing bond length, angles, torsions / dihedrals or not.
I had a previous thread asking for Tasks for Automation - I’ll probably post another one after 2.0 is released.
Ah I see. Perhaps then it would be more appropriate to have a separate plugin for Camera Tools, since my plugin is focused on actually changing the geometry, not just the view of the geometry.
This sort of thing seems like it’ll be an absolute goldmine for plugin idea generation. I have a running list of plugins I would like to use/write, and automation scripts just made its way onto the list.
I would hesitate before writing calculation automation plugins however, since that sort of thing becomes very tricky if someone wants to do remote access and proper long-running workflows. I know of very few workflow tools for calculation automation, and I only know of one that interfaces between several programs, that being the Nexus package inside of QMCPACK, though I am sure there are more. It would be great if Avogadro could have something like this, although I don’t think it’d be feasible to do everything in Python (at least, not efficiently), so perhaps things like calculation automation will necessitate the return of MoleQueue.
Avogadro allows to export the scene to povray. Similar to CCDC’s Mercury (there: file → PovRay image), one could imagine a small dialogue in Avogadro for an elementary fly around the x, y, or z axis with an adjustable increment.
which yields a .pov and an .ini which PovRay then can process (example files attached). Stitched together as .gif and downscaled for portability (e.g., easygif):
Else, there equally is Avogadro’s export to pdb and vrml suitable for raytracers like Blender (e.g., Atomic Blender) mentioned earlier in an earlier post here; likely with much more flexibility to script the animation.