$ account Wouterdek
NodeNetwork is a .NET C# WPF library that provides a fully interactive node graph editor component, following the Model-View-ViewModel (MVVM) pattern with ReactiveUI and DynamicData for reactive data flows. The core library (NodeNetwork) offers view models and custom WPF controls for managing networks of nodes, connections, endpoints, port rendering, pan/zoom, and validation. The NodeNetworkToolkit extends this with higher-level abstractions including typed value nodes, node grouping into sub‑networks, a searchable context menu, breadcrumb navigation, and a force‑directed layout engine for automatic graph arrangement. Three example applications demonstrate practical usage: a simple arithmetic calculator, a Lua code generator, and a GLSL shader editor with a 3D OpenGL preview. The architecture is modular: the core library is decoupled from the toolkit and examples via view registration (NNViewRegistrar) and dependency injection via Splat. All viewmodels are ReactiveObjects, and views implement IViewFor<T>, allowing clean separation and testability. The repository is well‑tested with unit tests covering network validation, value propagation, and UI interactions. Despite its solid design, the codebase shows signs of technical drift: it targets .NET Framework 4.7.2 and .NET Core 3.1 (not the latest .NET), uses the deprecated OpenTK library for the shader editor, and has inconsistent NuGet reference formats (packages.config vs. project‑file references). Some view logic remains in code‑behind files, and nullable reference types are not enabled. The library is nonetheless actively maintained (last commit April 2026) and has a strong user base (962 stars). It is not a data research repository; it is a UI library with example applications.