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.

39m read timeFrom alexharri.com
Post cover image
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 closing

Sort: