New attempt:

* store the current positions of each child
* run the layout pass
* use translateXY to keep the child in place (relative to its new location)
* tether and connect the children so that they will move toward their
  new positions
* restart the simulation.