whatisgithub

What is nodeeditor?

paceholder/nodeeditor — explained in plain English

Analysis updated 2026-05-18

3,640C++Audience · developerComplexity · 4/5Setup · moderate

In one sentence

A C++ Qt library for building node-based graph editors, usable for graph visualization or full dataflow programming.

Mindmap

mindmap
  root((QtNodes))
    What it does
      Node graph editor
      Dataflow programming
      Model-View design
    Tech stack
      C++
      Qt
      CMake
    Use cases
      Visual pipelines
      Headless graphs
      Custom editors
    Audience
      C++ developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a visual node editor where users connect boxes to define a data processing pipeline.

USE CASE 2

Create a headless graph model in code without displaying it on screen.

USE CASE 3

Add undo, redo, and duplication to a custom node-based editing tool.

USE CASE 4

Save and load a node graph scene as a JSON file.

What is it built with?

C++QtCMakeCatch2

How does it compare?

paceholder/nodeeditorfrictionalgames/amnesiathedarkdescentmistertea/eternalterminal
Stars3,6403,6353,632
LanguageC++C++C++
Setup difficultymoderatehardmoderate
Complexity4/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires Qt 5.15+, CMake 3.11, and Catch2 to build from source.

So what is it?

QtNodes, also known as nodeeditor, is a C++ library built on the Qt framework for creating node based graph editors, the kind of visual interface where boxes represent operations and lines connect them to show how data flows between them. It can be used for something as simple as visualizing a graph, or extended into a full dataflow programming tool where each node runs a processing step and passes its result along the connections to the next node. The library follows a Model View design. You define your graph's structure by creating a class derived from AbstractGraphModel, which can hold nodes and connections built from whatever data types your application needs. That model does not have to be attached to any visible scene at all, which the project calls a headless mode, useful if you want to manipulate a graph purely in code without showing it on screen. An extended class called DataFlowGraphModel adds the dataflow behavior specifically: when new data arrives at a node, its algorithm runs automatically, and the result is pushed out to every connected node in turn, so the whole graph updates as data changes. Version 3 changed many of the library's classes compared to version 2, so the project keeps separate v2 and v3 branches for people maintaining older projects, alongside a master branch with the newest development work. Current features include dynamic ports, connections that are aware of data types, embedding regular Qt widgets inside nodes, saving and loading a scene as JSON, customizable node shapes, both vertical and horizontal graph layouts, and undo, redo, and duplication support. Building it requires Qt above version 5.15, CMake 3.11, and the Catch2 testing framework, with either Qt5 or Qt6 selectable as a build option. The project has been used inside other tools, including a CAN bus simulator called CANdevStudio and a beginner-friendly visual programming language called Chigraph. This library suits C++ developers building visual editors, simulators, or dataflow based tools rather than typical application programmers.

Copy-paste prompts

Prompt 1
Show me how to build QtNodes with CMake using Qt6 on Linux.
Prompt 2
Write a minimal AbstractGraphModel subclass in C++ using QtNodes to create two connected nodes.
Prompt 3
Explain how DataFlowGraphModel propagates data automatically between connected nodes in QtNodes.
Prompt 4
Using QtNodes, show how to save a node graph scene to a JSON file and reload it.

Frequently asked questions

What is nodeeditor?

A C++ Qt library for building node-based graph editors, usable for graph visualization or full dataflow programming.

What language is nodeeditor written in?

Mainly C++. The stack also includes C++, Qt, CMake.

How hard is nodeeditor to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is nodeeditor for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.