You will build: a small network graph and run graph analysis on it. Time: about 15 minutes. Prerequisites: Beep.Skia and Beep.Skia.Network.

1. Nodes and links

using Beep.Skia;
using Beep.Skia.Network;

var manager = new DrawingManager();

var a = new NetworkNode { X = 80, Y = 80, Width = 60, Height = 60, Label = "A" };
var b = new NetworkNode { X = 260, Y = 60, Width = 60, Height = 60, Label = "B" };
var c = new NetworkNode { X = 260, Y = 220, Width = 60, Height = 60, Label = "C" };
var d = new NetworkNode { X = 440, Y = 140, Width = 60, Height = 60, Label = "D" };

foreach (var node in new SkiaComponent[] { a, b, c, d })
    manager.AddComponent(node);

manager.ConnectComponents(a, b);
manager.ConnectComponents(a, c);
manager.ConnectComponents(b, d);
manager.ConnectComponents(c, d);

2. Auto-layout

var layout = new ForceDirectedLayout();
layout.Arrange(manager.GetComponents(), manager.GetLines());
manager.RequestRedraw();

3. Analyse the graph

var graph = new NetworkGraph();
// Add nodes/links to the graph (or import from the canvas), then:
//   new PathFinder().ShortestPath(graph, "A", "D")
//   new CentralityMeasure().Degree(graph) / Betweenness(graph) / PageRank(graph)
//   new CommunityDetector().Louvain(graph)
//   new NetworkAnalyzer().Analyze(graph)  -> density, diameter, clustering
var analysis = new NetworkAnalyzer().Analyze(graph);
Console.WriteLine(analysis);

Next steps