Next Features Roadmap

While I’ll definitely work on a few “build” tasks (e.g., releasing qt6 binaries for Mac and Windows), I’ve got the following upcoming list, likely in order of work:

  • Revised molecular property dialog
    • Edit charge / spin and molecule name
  • Dipole moment rendering
  • Translucent bond / VdW spheres
  • Flying edges mesh generation
  • Packaging
    • Windows / Mac Qt6 builds
    • Flatpak (nightly)
    • Windows code signing
  • Conformer / Coordinate Properties
    • table to switch coordinate sets
    • energies for each coordinate set
  • Plotting / Spectra Improvements
    • UV/Vis & CD spectra plotting
    • Fixup NMR plotting
  • Orbital Table
  • Bond / Angle / Torsion Constraints
    • Providing constraints to input generators / cjson
  • Auto-optimize Tool
  • Improved builder tools
    • peptide builder
    • polymer builder

Other ideas or suggestions? Want me to work on one of these earlier or add something to the list?

1 Like

All sounds great, though also like a lot of work!

My view would be that the 2.0 release should happen as soon as it can so that we can mark it as stable and people finally move off 1.2 for good :slight_smile: For that of course though everything needs to be in place that would otherwise be missed after migration. Almost all of your list does fit into that category I think, but the peptide and polymer builders could maybe be left till 2.1 for example, probably the spectra stuff too?

Only thing I can think of is the settings menu but given that that’s just moving around existing stuff I don’t see it as a priority.

I think a bunch of people would ask about the peptide builder, although I agree it could probably be delayed.

Some spectra work needs to happen before 2.0 – at least to roughly match parity with 1.2 (e.g., common computed spectra types). That probably won’t take too much effort.

The main trouble would be the auto-optimize tool. I’d probably release a 1.99.1 or similar before that goes in.

Nothing wrong with a 1.100 :slight_smile:

2 Likes

I am pretty happy with the list, although I do have some additions that I think are important.

Firstly, I think that there should be a push to get G orbitals working for the orbital viewer. Recently I’ve been using def2-QZVPPD for some calculations that need to be super precise, and I have been encountering the lack of G orbital support pretty often.

Secondly, and this may be a big ask, but I’d love to see a rework of the manipulation tool. The way it is currently implemented is pretty wonky at times, especially when dealing with large molecules. My idea for it is for it to work similarly to the bond-centric manipulation tool (love that thing, so useful), where you can highlight an atom on a molecule and move the rest of the molecule relative to the atom. If anyone here has played Kerbal Space Program, in the vehicle assembly building you can click on a part with the rotate tool and a set of rings appear around it, which you can then click and drag to rotate a part.

I think this is a very nice feature, and in conjunction with the game’s translate tool it makes rocket building quite nice. A similar implementation in Avogadro 2 would be awesome. I think the main issue with a feature like this is that it would probably be a huge pain in the butt to implement, so it should probably get saved for after 2.0.

I started work on that a while ago:

The main delay was that there’s no documentation on ordering for the individual g orbitals. I’m pretty sure I have the right normalization, though.

If you can find some docs on the normalization and/or ordering… and are willing to help test, it should be pretty easy.

I’m not sure I quite understand what ordering is in this context, but as soon as I learn what that is I will do some searching, and I am always happy to help test!

Compare d orbitals:
xx, yy, zz, xy, xz, yz

Then f orbitals:
xxx, xxy, xxz …yyz yzz zzz

Strangely, Molden uses the order:
10F: xxx, yyy, zzz, xyy, xxy, xxz, xzz, yzz, yyz, xyz

But I don’t know the order Gaussian (or other programs) write out the orbital coefficients for the different sub-shells. There’s an update for the Molden format recently:

   9G: G 0, G+1, G-1, G+2, G-2, G+3, G-3, G+4, G-4
  15G: xxxx yyyy zzzz xxxy xxxz yyyx yyyz zzzx zzzy,
       xxyy xxzz yyzz xxyz yyxz zzxy

So I need to know the order that Gaussian writes out the g sub-shells…

You can use the Select > Invert Selection feature to go from moving the atom to moving everything else except the atom :slight_smile:

Maybe I can add that as a tip to the manipulation tool’s docs.

That of course only works nicely for translating everything around the atom, not rotating. But I am already working on implementing transformations with a chosen atom as the centre of the transformation right now :smiley:

1 Like

To be honest, didn’t really think about the invert selection option like that, very interesting (should definitely go into docs!). I’d be very interested to hear more about your transformation tool, especially since I’ve written a python script in the past that did some manipulation like that (rotations, reflections, etc.)

1 Like