Nice post!
The animation is very "life-like", as the structure didn't jump from frame to frame. And since you didn't do any reorientation with MoleculeAlign
wondered how real my impression was.
First, I modified the animation by using MoleculePlot3D[#, {1},...]
to label (highlight) atom 1. In many of the frames the "bouncing ball" stayed in the same region of space, but every now and then it jumped to an antipodal location. So I wondered if the atom coordinates are retained by MoleculeModify
with "ReplaceSubstructure"
, and they are not:
bullvalene["AtomCoordinates"] // First // Normal // QuantityMagnitude
{-0.216514, -1.36302, 1.1512}
SeedRandom[7654321];
subl = Values[RandomChoice[FindMoleculeSubstructure[bullvalene, patt, All]]];
bullvalene2 = MoleculeModify[bullvalene, {"ReplaceSubstructure", subl -> repl}];
bullvalene2["AtomCoordinates"] // First // Normal // QuantityMagnitude
{1.54944, -8.35728*10^-6, -0.0000199128}
When I tried labeling two atoms with {{1}, {2}}
(yellow and blue, resp.), they were initially adjacent to each other and eventually separated, as expected. However, hydrogen atoms started appearing and one of them was labelled blue! It appears the MoleculeModify
reorders the atoms while still maintaining the correct bonding:
bullvalene["AtomList"]
{Atom["C"], Atom["C"], Atom["C"], Atom["C"], Atom["C"], Atom["C"],
Atom["C"], Atom["C"], Atom["C"], Atom["C"], Atom["H"], Atom["H"],
Atom["H"], Atom["H"], Atom["H"], Atom["H"], Atom["H"], Atom["H"],
Atom["H"], Atom["H"]}
bullvalene2["AtomList"]
{Atom["C"], Atom["C"], Atom["C"], Atom["C"], Atom["H"], Atom["H"],
Atom["H"], Atom["H"], Atom["C"], Atom["C"], Atom["C"], Atom["C"],
Atom["C"], Atom["C"], Atom["H"], Atom["H"], Atom["H"], Atom["H"],
Atom["H"], Atom["H"]}
Using PatternReaction
and ApplyReaction
, as in my WTC 2022 talk, probably suffers the same problem wrt the atom coordinates.
Different tools need to be developed for producing realistic animations.