Store the combinatorial planar embedding in the result and lay out the
source graph with nx.planar_layout so no primal edges cross and each dual
node sits inside its own triangle, replacing the concentric layout that
produced crossings. Add a committed generate_full_walk.py that reproduces
the walk .md/.pdf/.png outputs, and regenerate the walk 1 and walk 2 dual
figures and PDFs (reports unchanged).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Label each dual face by its distance, within the source-dual cut, from
the first entry's cap down tooth. Regenerate the seed 1 and seed 2 full
walk figures and metadata with the new labelling.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Source-dual cut is a spanning tree of the dual (38 faces, 37 edges,
connected and acyclic) after 20 cut edges removed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>