Other molecules with double bonds show the same problem, for instance C3H6. But just because the problem is systematic doesn't mean it's easy to fix... Especially because the plot itself is a Graph3D
object where the atoms are the vertices and the bonds are the edges or connections in the graph. The actual position of the atoms in space is dictated by some underlying graph display algorithm that makes its decisions based on criteria such as maximizing visual clarity. Such an algorithm simply has no idea that connections in a graph aren't allowed to rotate. (Actually, I'm quite impressed that the bond lengths and angles are so reasonable overall, which means that GraphLayout->"SpringEmbedding"
is pretty awesome at its job.)
I know that using graph theory for molecular modelling and structure prediction is "a thing", which means there should be plenty of publications in the field by now. Maybe someone has already developed an algorithm that can handle pi and delta bonds.
One thing you can always do to get correct molecules is just to look them up in ChemicalData[]
(or any other database, for that matter) and get the plots from there. For plotting molecules with multiple bonds from such a source, please feel free to make use of my code. Maybe you can write a little program where you can enter the graph connections returned by William Zhang's Demonstrations, then look up the configuration in ChemicalData[]
and get the correct plot from there.
That said, I understand your frustration. If you do improve the Demonstration, I'm sure there's a way to submit a new version even if you're not the original author... I suppose someone at Wolfram can contact the author for you and set something up, but I've never tried that.
~ Bianca