A deep dive into Figma's Vector Networks, explaining how they improve on traditional pen tool paths by allowing any two nodes to connect without forming a single continuous chain. Covers the underlying data structures (graphs with nodes and edges), Bézier curve fundamentals including De Casteljau's algorithm, and the engineering challenges of implementing Vector Networks: finding minimal cycle bases using clockwise/counter-clockwise graph traversal, handling edge intersections by expanding the graph, dealing with self-intersecting Bézier curves, parallel edge disambiguation using a 'laser' tessellation technique, nested cycle rendering with the even-odd rule, and partial graph expansion to preserve user-defined structure when toggling fills.
Table of contents
PathsEdgesThe creative constraints of pathsVector NetworksCreating Vector NetworksFilling the holesMinimal cycle basisThe mathThe green zoneIntersections in the graphExpanding the graphSelf-intersectionCurvy edgesParallel edgesParallel, but in reverse!Cycles inside of cyclesSubcyclesContiguous cyclesPartial expansionOmitted topicsFuture topicsIn closingSort: