I wonder—when you move an object with a lot of children, between frames you have to update the A(i-1) term for all children (and then iteratively through the grandchildren, so on and so forth). Does this become costly? Or maybe it isn’t so bad for reasonably-sized figures?
Yes, I still have to update the transformation matrix for every children on every movement of any of their ancestors. But it doesn't cause a significant performance drop so far. Currently it is only computing it just in case, but it is actually not affecting the SVG elements at all so they do not have to be updated. The only reason for re-computing this transformation matrix is if I would have to know the local-to-world coordinates of a particular object, when readjusting the attached connector or doing some other logic based on their positioning