arcane_nodes 1.0.8
arcane_nodes: ^1.0.8 copied to clipboard
A lightweight, scalable, and highly customizable package that empowers Flutter developers to create dynamic, interactive, and visually appealing node-based UIs.
FlNodes #
๐ 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.
๐ A Fully Customizable Node-Based Editor for Flutter #
FlNodes is a lightweight, scalable, and highly customizable Flutter package for building interactive, node-based user interfaces.
๐ก Use Cases #
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.
๐ Features #
-
โ 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.
๐ Roadmap #
We're iterating fast, thanks to community adoption, forks, and feedback. Here's whatโs next:
๐ Bug Fixes & Community Feedback #
-
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.
โ๏ธ Performance Enhancements #
-
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.
๐ Documentation Improvements #
-
Expanded API docs and usage examples.
-
Guides for building non-scripting tools like mind maps, audio tools, or ML visualizers.
๐ General-Purpose Flexibility #
-
๐ค 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.
๐ธ Screenshots #
๐ Quickstart Guide #
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!
๐ฆ Installation #
To add FlNodes to your Flutter project, include it in your pubspec.yaml
:
dependencies:
fl_nodes: ^latest_version
Then, run:
flutter pub get
๐ ๏ธ Usage #
Import the package in your Dart file:
import 'package:fl_nodes/fl_nodes.dart';
For full implementation details, check out the examples below.
๐งฉ Examples & Demo #
Explore fully working examples:
- ๐ Code Example
- ๐ Live Example
๐น๏ธ Current input support #
Legend:
- โ Supported
- โ Unsupported
- โ ๏ธ Partial
- ๐งช Untested
๐ฅ๏ธDesktop and ๐ป laptop: | Windows | Linux | macOS |
---|---|---|---|
native/mouse | โ | โ | โ |
native/trackpad | โ | โ ๏ธ | โ |
web/mouse | โ | โ | โ |
web/trackpad | โ | โ | โ |
๐ฑMobile | Android | iOS |
---|---|---|
native | โ | โ |
web | โ | ๐งช |
๐ License #
FlNodes is open-source and released under the MIT License. Contributions are welcome!
๐ Contributing #
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.
๐ Letโs Build Together! #
Enjoy using FlNodes and create amazing node-based UIs for your Flutter apps! ๐