Vyuh Node Flow
A flexible, high-performance node-based flow editor for Flutter applications,
inspired by React Flow. This monorepo contains the core library and demo
application.
📦 Packages
This repository is organized as a Dart workspace with the following packages:
The core Flutter package providing the node-based flow editor functionality.
Features:
High-performance reactive rendering with MobX
Level of Detail (LOD) for automatic visual simplification at zoom levels
Type-safe node data with generics
Fully customizable themes for nodes, connections, and ports
Flexible port system with multiple shapes and positions
Connection animation effects (flowing dashes, particles, gradients, pulse)
Multiple connection styles (bezier, smoothstep, straight, step) with
customizable endpoints
AutoPan when dragging near viewport edges
Viewport animations for smooth navigation transitions
Annotations (sticky notes, markers, groups)
Built-in minimap for navigation
Comprehensive keyboard shortcuts
Read-only viewer mode
JSON serialization for saving/loading flows
Extension architecture for modular, pluggable features
Installation:
dependencies:
vyuh_node_flow: <latest version>
A comprehensive demo application showcasing all features of the Vyuh Node Flow
editor.
Includes:
Interactive workbench with full editor controls
Multiple example workflows (manufacturing, healthcare, IoT, etc.)
Theme customization controls
Layout and alignment tools
Connection validation examples
Annotation demonstrations
Try it online: 🚀 Live Demo
🚀 Getting Started
Prerequisites
Flutter SDK 3.32.0 or higher
Dart SDK 3.9.0 or higher
Development Setup
This project uses Melos for workspace
management.
Clone the repository:
git clone https://github.com/vyuh-tech/vyuh_node_flow.git
cd vyuh_node_flow
Install dependencies:
dart pub get
Bootstrap the workspace:
dart run melos bootstrap
Run the demo:
cd packages/demo
flutter run -d chrome
Documentation
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add some amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file
for details.
Made with ❤️ by the Vyuh Team