Hello,
your task is very challenging, but interesting to implement. I'd like to work on such design tool.
I have a great experience with different graphing libraries, and think, I understand all possible needs for this project (undo/redo, intersections, templates, save/load features and etc).
If I interested you, let's discuss a details.
BR,
Andrew