D2 has some support for this. You can fix the position of certain elements and then it will redraw things around it.

I’ve been thinking about something similar to this but D2 wasn’t totally open source until now.