# FlowGraph **Repository Path**: zl_1009/FlowGraph ## Basic Information - **Project Name**: FlowGraph - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-18 - **Last Updated**: 2026-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlowGraph A node-based graph editor for .NET and Avalonia, inspired by [React Flow](https://reactflow.dev/). [![NuGet](https://img.shields.io/nuget/v/FlowGraph.Avalonia.svg)](https://www.nuget.org/packages/FlowGraph.Avalonia/) [![.NET 9](https://img.shields.io/badge/.NET-9.0-purple)](https://dotnet.microsoft.com/) [![Avalonia](https://img.shields.io/badge/Avalonia-11.3-blue)](https://avaloniaui.net/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ![FlowGraph Demo](demo.png) ## Features ### Core - **Pan & Zoom** - Mouse wheel zoom, middle-click pan, configurable drag behavior - **Node System** - Draggable, selectable nodes with custom renderers - **Port System** - Input/output ports with position, type, and connection limits - **Port Tooltips** - Hover over ports to see descriptive tooltips - **Edge Types** - Bezier, Straight, Step, SmoothStep curves with arrow markers - **Edge Labels** - Positioned labels with anchor points (Start, Center, End) and offsets - **Edge Locking** - Lock edges to prevent modification - **Connection Validation** - Extensible validation with built-in validators (type matching, no cycles, no duplicates) - **Undo/Redo** - Full command history with keyboard shortcuts - **Clipboard** - Copy, cut, paste, duplicate operations - **Serialization** - JSON save/load with full round-trip support - **Definition + State Pattern** - Immutable definitions with mutable runtime state ### Components - **FlowMinimap** - Overview with viewport navigation - **FlowControls** - Zoom in/out/fit buttons panel - **FlowBackground** - Dots, lines, cross, or hierarchical grid patterns - **NodeToolbar** - Floating toolbar on node selection - **FlowDiagnostics** - Debug panel for development - **FlowPanel** - Positioned overlay panels (9 positions) ### Advanced - **Grouping** - Collapsible node groups with proxy ports - **Edge Routing** - Orthogonal, bezier, and smart routing algorithms with A\* pathfinding - **Animations** - Smooth viewport, node, edge, and group animations - **State Machine** - Clean input handling architecture - **Edge Reconnection** - Drag edge endpoints to reconnect or disconnect - **Label Editing** - Double-click to edit node and edge labels - **Virtualization** - Render only visible nodes for large graphs (500+ nodes) - **Direct Rendering** - GPU-accelerated rendering bypassing visual tree - **Custom Renderers** - Extensible node, port, edge, and background renderers - **Data Flow** - Built-in reactive data propagation system - **Shape System** - Support for shapes with selection and serialization ## Installation ```bash dotnet add package FlowGraph.Avalonia ``` Or via NuGet Package Manager: ``` Install-Package FlowGraph.Avalonia ``` ## Quick Start ### 1. Add namespaces to your AXAML ```xml ``` ### 2. Add FlowCanvas and components ```xml