Ok, it’s maybe the time to start a #data2viz channel. I’ll do it just after posting this message.
I think we can do what you want quite easily. The only point using forces is that they apply for animations, calculating the position of nodes for the next frame. We could trick the mechanism by choosing the right configuration parameters for quick convergence and run enough loops to have the expected result.
We also have to render the result as a static image. This can be done using javaFx. I will start a small prototype to show how it can be done.