Fix external movement

* Set layout instead of .relocate()
* use .setTransform() instead of modifying the .getTransform()
  object. The simulation otherwise doesn't notice the value has
  changed.