Attached are two screenshots, one from Gojs and another using an alternative (that doesnt scale too well). As you can see the other one separates nodes really well and determines a layout with fewest crossed links. How can I achieve something similar with Gojs?
I think you need to adjust the parameters of the ForceDirectedLayout that you are using. How is it currently defined? You might want to increase its defaultSpringLength or decrease its defaultSpringStiffness.