Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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: 3 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# **FlNodes**

๐Ÿšง **Note:** This is **version 0.1.0** of **FlNodes**, a newborn product 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

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