An open API service indexing awesome lists of open source software.

https://github.com/williamkaroldicioccio/fl_nodes

A fully customizable, lightweight, and scalable node-based editor for Flutter.
https://github.com/williamkaroldicioccio/fl_nodes

dart flutter node-editor visual-scripting

Last synced: over 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

# **FlNodes**

![Coverage](https://github.com/WilliamKarolDiCioccio/fl_nodes/blob/main/coverage_badge.svg?sanitize=true)

๐Ÿšง **Note:** **FlNodes** is in its early stages. While the core functionality is
in place, we're actively improving performance, adding features, and refining
the experience. Your feedback and contributions are invaluable in shaping its
future! ๐Ÿš€

---

## ๐Ÿš€ **A Fully Customizable Node-Based Editor for Flutter**

**FlNodes** is a lightweight, scalable, and highly customizable package that
empowers Flutter developers to create dynamic, interactive, and visually
appealing node-based UIs.

With **FlNodes**, you can build:

- ๐ŸŽฎ **Visual Scripting Tools** โ€“ Drag-and-drop logic editors for game
development and automation.
- ๐Ÿ›  **Workflow & Process Editors** โ€“ Task automation, decision trees, and
business process modeling (BPMN).
- ๐ŸŽจ **Shader & Material Editors** โ€“ Custom shader graphs like Unity Shader
Graph or Unreal Engineโ€™s Material Editor.
- ๐Ÿ“Š **Data Flow & Pipeline Managers** โ€“ Complex data transformations, ETL
workflows, or AI model pipelines.
- ๐Ÿค– **AI & Machine Learning Visualizers** โ€“ Node-based interfaces for neural
network architectures or training workflows.
- ๐Ÿ”Š **Audio & Music Generators** โ€“ Modular synthesizers, audio effect chains,
and interactive music tools.
- ๐Ÿ— **Graph-Based UIs** โ€“ Mind maps, dependency graphs, knowledge graphs, and
hierarchical structures.

Whether you're building tools for developers, designers, or end-users,
**FlNodes** gives you the building blocks to make it happen! ๐Ÿš€

---

## ๐ŸŒŸ **Features**

Inspired by Flutterโ€™s **no-compromises** philosophy, **FlNodes** offers:

- โœ… **Fully Customizable UI** โ€“ Tailor the editor to match your app's design.
- ๐Ÿ’พ **Fully Customizable storage** - The editor converts the project to JSON
and provides callbacks for actual storage.
- โšก **High Performance** โ€“ Optimized rendering for smooth interactions.
- ๐Ÿ”— **Flexible Node & Connection System** โ€“ Create complex graph structures
with ease.
- ๐Ÿ“ **Scalable Architecture** โ€“ Handles everything from simple node diagrams to
massive, interconnected graphs.
- ๐ŸŽจ **Beautiful & Lightweight** โ€“ Minimal overhead, ensuring a seamless user
experience.

---

## ๐Ÿ”ง **Roadmap / TODO**

We're actively working on improving **FlNodes**! Here are some planned features:

- **๐Ÿ”„ Dynamic Node Parameters** โ€“ Add/remove parameters dynamically for better
flexibility.
- **โšก Static Branch Precomputation** โ€“ Detect static branches and precompute
them for faster execution.
- **๐Ÿฉบ Surgical Rebuilds** โ€“ Rebuild only affected nodes when dependencies
change.
- **๐Ÿ“ฆ Node Grouping** โ€“ Organize nodes into groups that can be moved and
managed together.
- **โ™ป๏ธ Macros/Functions** โ€“ Define reusable node collections that expand at
graph build time.

Click [here](https://hackmd.io/@l7G0TmToRX-GFgwRUOHloA/Byi53IwFyx) for a quick
detailed and updated TODO list for the project.

---

## ๐Ÿ“ธ **Screenshots**


ย  FlNodes Example

---

## ๐Ÿ“š **Quickstart Guide**

For a fast and easy setup, check out our
[Quickstart Guide](https://github.com/WilliamKarolDiCioccio/fl_nodes/blob/main/QUICKSTART.md).
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`:

```yaml
dependencies:
fl_nodes: ^latest_version
```

Then, run:

```bash
flutter pub get
```

---

## ๐Ÿ› ๏ธ **Usage**

Import the package in your Dart file:

```dart
import 'package:fl_nodes/fl_nodes.dart';
```

For full implementation details, check out the examples below.

---

## ๐Ÿงฉ **Examples & Demo**

Explore fully working examples:

- ๐Ÿ“„
**[Code Example](https://github.com/WilliamKarolDiCioccio/fl_nodes/blob/main/example/lib/main.dart)**
- ๐ŸŒ **[Live Example](https://williamkaroldicioccio.github.io/fl_nodes/)**

---

## ๐Ÿ“œ **License**

**FlNodes** is open-source and released under the [MIT License](LICENSE.md).
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](https://github.com/WilliamKarolDiCioccio/fl_nodes/discussions/49)

Feel free to file an issue or contribute directly on
[GitHub](https://github.com/WilliamKarolDiCioccio/fl_nodes).

---

## ๐Ÿš€ **Letโ€™s Build Together!**

Enjoy using **FlNodes** and create amazing node-based UIs for your Flutter apps!
๐ŸŒŸ