๐ We're Participating in the OnlyDust Open Source Hackathon!
The fl_nodes
project is taking part in the OnlyDust Open Source Hackathon starting May 28th, 2025!
If you're interested in Flutter, visual programming, or node-based interfaces, this is a great chance to contribute, learn, and collaborate. Weโll soon tag beginner-friendly issues and update documentation. We are ready to support contributors of all experience levels.
๐ Check out the Issues to get started.
FlNodes is a lightweight, scalable, and highly customizable Flutter package for building interactive, node-based user interfaces.
Whether you're building tools for developers, designers, or end-users, FlNodes provides the building blocks for:
-
๐ฎ Visual Scripting Editors โ Game logic, automation flows, or state machines.
-
๐ Workflow & Process Designers โ Business rules, decision trees, and automation paths.
-
๐จ Shader & Material Graphs โ Build custom shaders visually.
-
๐ Dataflow Tools โ ETL pipelines, AI workflows, and processing graphs.
-
๐ค ML Architecture Visualizers โ Visualize and configure neural networks.
-
๐ Modular Audio Systems โ Synthesizers, effect chains, or sequencing tools.
-
๐ง Graph-Based UIs โ Mind maps, dependency trees, and hierarchical structures.
-
โ Customizable UI โ Fully override widgets, ports, fields, and layout logic.
-
๐พ Pluggable Storage โ Save/load via JSON with full control over serialization.
-
โก Optimized Performance โ Hardware-accelerated, efficient hit testing and rebuild minimization.
-
๐ Flexible Graph System โ Directional edges, nested data, typed ports, and more.
-
๐ Scalable Architecture โ Suitable for both lightweight diagrams and complex editors.
-
๐จ Lightweight & Elegant โ Minimal dependencies, beautiful out of the box, and easy to style.
We're iterating fast, thanks to community adoption, forks, and feedback. Here's whatโs next:
-
Addressing common issues raised in GitHub discussions and forks.
-
Fixes for node field state persistence and ID mismatches.
-
Improvements to hit testing and z-ordering in dense graphs.
-
Surgical Rebuilds โ Rebuild only the nodes affected by data or structural changes.
-
Static Branch Precomputation โ Improve runtime by detecting and collapsing static branches in execution graphs.
-
Expanded API docs and usage examples.
-
Guides for building non-scripting tools like mind maps, audio tools, or ML visualizers.
-
๐ค Node Configuration State Machine โ Dynamically add or remove ports and fields on nodes at runtime, allowing node structure to adapt automatically based on current links and input data.
-
๐งโ๐คโ๐ง Node Grouping โ Enable users to select multiple nodes and group them together for easier organization, movement, and management within complex graphs.
-
โป๏ธ Reusable Graph Macros โ Allow users to define, save, and reuse templates or functions made up of multiple nodes, streamlining the creation of common patterns and workflows.
-
๐ฉ Enhanced Editor Mode โ Introduce advanced, opt-in editing tools and keyboard shortcuts to improve productivity and provide a more powerful graph editing experience.
For a fast and easy setup, check out our Quickstart Guide. It covers the basics to get you up and running with FlNodes in no time!
To add FlNodes to your Flutter project, include it in your pubspec.yaml
:
dependencies:
fl_nodes: ^latest_version
Then, run:
flutter pub get
Import the package in your Dart file:
import 'package:fl_nodes/fl_nodes.dart';
For full implementation details, check out the examples below.
Explore fully working examples:
- ๐ Code Example
- ๐ Live Example
Legend:
- โ Supported
- โ Unsupported
โ ๏ธ Partial- ๐งช Untested
๐ฅ๏ธDesktop and ๐ป laptop: | Windows | Linux | macOS |
---|---|---|---|
native/mouse | โ | โ | โ |
native/trackpad | โ | โ | |
web/mouse | โ | โ | โ |
web/trackpad | โ | โ | โ |
๐ฑMobile | Android | iOS |
---|---|---|
native | โ | โ |
web | โ | ๐งช |
FlNodes is open-source and released under the MIT License. Contributions are welcome!
Weโd love your help in making FlNodes even better! You can contribute by:
-
๐ก Suggesting new features
-
๐ Reporting bugs
-
๐ง Submitting pull requests
Feel free to file an issue or contribute directly on GitHub.
Enjoy using FlNodes and create amazing node-based UIs for your Flutter apps! ๐