Tools for building a Graph/Node based user interface in a webapp
Asked Answered
T

2

37

This a somewhat random question, but I wanted to figure out what would be the best tools to create a web app which uses node based connections similar to that of Blender's Shader nodes and Unreal Engines Blueprint system. I am new to web development and didn't know what tools to use to create such an UI system. Any help would be appreciated. Example of a node based system

Tetragram answered 8/5, 2022 at 20:33 Comment(0)
D
75

I was wondering about the same thing today and seeing the most relevant SO question being unanswered was a little discouraging. Anyways, I took a little dive into the subject myself and came up with plenty of options. Hopefully, this list provides a good starting point.

Note: While the boundaries of "web app" are pretty extensive, I mainly focused on Javascript libraries.

React Flow

https://reactflow.dev

Highly customizable library for building an interactive node-based UI, workflow editor, flow chart or static diagram

react flow

Rete.js

https://rete.js.org

Rete.js is a modular framework for visual programming. Rete allows you to create node-based editor directly in the browser. You can define nodes and workers that allow users to create instructions for processing data in your editor without a single line of code.

rete.js

Baklava.js

https://github.com/newcat/baklavajs

Graph / node editor in the browser using VueJS, less than 60kb gzipped

Baklava.js

Flume

https://flume.dev

A React-powered node editor and runtime engine

Flume

CodeWire

https://github.com/ayushk7/CodeWire

CodeWire is a node based editor inspired by UE4 Blueprints which helps in better visualization of the code, and faster scripting of complex and repetitive tasks. It doesn't bind to any particular language. Multiple target languages can be added to added in the future.

CodeWire

Wire

https://github.com/emilwidlund/wire

Wire is a monorepo containing a set of libraries (artifacts) that makes it super easy to build blazing fast & reactive visual programming tools for the web. It offers a core data processing framework and a library with React-components that will get you started. Take a look at the underlying artifacts to learn more about Wire and its offerings.

Wire

Svelvet

https://www.svelvet.io

Svelvet is a lightweight Svelte component library for building interactive node-based user interfaces and diagrams.

Svelvet

Litegraph.js

https://github.com/jagenjo/litegraph.js

A library in Javascript to create graphs in the browser similar to Unreal Blueprints. Nodes can be programmed easily and it includes an editor to construct and tests the graphs.

enter image description here

Dibucaine answered 31/10, 2022 at 14:9 Comment(7)
you are a godsend. This info is really usefulTetragram
Really helpful answer, adding one more for svelte svelvet.ioTale
Thank you very much for this answer very good to know these are available! I cannot find a good performance comparison between these for very large graphs (for instance with hundreds of nodes and more than a thousand connections between them). Has someone made such a comparison?Bridgettebridgewater
This post is priceless!! Thanks so much! Another question: Anyone knows a library in Angular of this kind?Benefield
@PatrickM. I am also interested in an angular lib. Did you find any?Condense
@Condense no, sorryBenefield
rete.js has an angular integration plugin: retejs.org/examples/basic/angularLied
K
3

You can search on GitHub using topics,

for example: search for node-editor

https://github.com/topics/node-editor

You can also use specified relevant

  • languages such as l=javascript, l=python, l=c%2B%2B (C++)
  • Order: asc, desc
  • Sort: stars, forks, updated

for example:

You can also use the UI interface to filter

github topic filter

The filters provided by the UI are not exhaustive. For example: Search: font

https://github.com/topics/font

font

You can see that the UI doesn't offer the go language option. However, when you actually use the language search with go, projects still appear in the results

https://github.com/topics/font?l=go

Therefore, when your preferred language doesn't appear in the filter list, don't give up. Try modifying the URL directly, as you might find some results.

Klinges answered 12/6 at 9:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.