Skip to content

WilliamKarolDiCioccio/fl_nodes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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.


Coverage

๐Ÿš€ 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

ย  FlNodes Example


๐Ÿ“š 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:


๐Ÿ•น๏ธ 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

  • ๐Ÿ‘ Sharing what you've built

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! ๐ŸŒŸ

About

A fully customizable, lightweight, and scalable node-based editor for Flutter.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published