So we can do this.
We can do this for very large graphs.
For example, here's a triangle mesh representing a geometric object.
It's a triangle mesh, so the vertices are nodes and
the edges of the triangles form the edges between the nodes.
This graph, this large graph of 50,000 nodes is not a planar graph,
but if I make cuts in it, if I separate the faces and duplicate edges,
I can turn it into a planar graph just by making these cuts along the black lines.
And as a planar graph, I can then find a way of embedding it into the plane so
that the edges don't cross.
There's so many nodes and so many edges in this this graph and
it's hard to see all of the edges, so trust me that they don't cross.
Hopefully you'll be working with fewer nodes and edges so
that your layouts will be a little more clear than this.
So there's a way we can find these embeddings automatically, and
it's called Tutte's Method, and it starts by picking some of your nodes and
defining where they should be in the layout.
So in this case, I'm going to use eight nodes, 12 edges that make a cube,
and I'm going to take these first four nodes,
and I'm going to find positions for them in for example an SVG Canvass.
I'm going to position node 1 at (0,0), node 2 at (1,0),
node 3 at (0,1), and node 4 at node (1,1).
And then I'm going to try to figure out where do I want to position nodes 5, 6, 7,
and 8, in order to make a plainer embedding of this graph.
This graph is shown in a non planar embedding,
because we've got edge crossings.
We want to find out how to make a planar embedding of it.