A .NET library and toolset for automatic graph layout, visualization, and interactive viewing of graphs.
Microsoft Automatic Graph Layout (MSAGL) is a .NET library and toolset for automatically calculating the layout of graphs and providing interactive visualization components. It solves the problem of programmatically arranging and displaying complex graph structures, such as networks or hierarchies, in desktop and web applications.
.NET developers building applications that require graph visualization, such as network analysis tools, dependency mappers, or diagramming software. It also serves web developers needing client-side graph layout via its JavaScript/TypeScript port.
Developers choose MSAGL for its robust, production-ready layout algorithms from Microsoft Research, its modular design allowing separate use of layout and rendering, and its support for multiple UI frameworks (WPF, Windows Forms, web) with interactive features like pan, zoom, and search.
A set of tools for graph layout and viewing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Separates layout computation from rendering via core and drawing modules, allowing developers to use only the layout engine or integrated viewers, as shown by the standalone AutomaticGraphLayout.dll NuGet package.
Provides ready-to-use WPF and Windows Forms controls with pan, zoom, tooltips, and search functionality, making it easy to embed interactive graphs in .NET desktop apps, per the viewer sample code.
GraphMaps feature enables map-like exploration of very large graphs with progressive detail on zoom, demonstrated in linked videos and papers for handling complex datasets.
WebMSAGL offers a JavaScript/TypeScript version with web worker support for responsive layout computation in web apps, allowing client-side graph visualization without server dependency.
Building the project requires Visual Studio with UWP workload and Windows 10 SDK, as noted in the README, limiting development to Windows and adding setup overhead for non-Windows environments.
WebMSAGL is a transcompiled port and lacks native integration with modern web frameworks like React or Vue, requiring additional work to wrap it as a component compared to purpose-built libraries.
The code sample shows a lengthy process for creating and displaying a simple graph, which can be over-engineered for basic use cases and steepens the learning curve for quick prototyping.