Analysis updated 2026-05-18
Build a visual node editor where users connect boxes to define a data processing pipeline.
Create a headless graph model in code without displaying it on screen.
Add undo, redo, and duplication to a custom node-based editing tool.
Save and load a node graph scene as a JSON file.
| paceholder/nodeeditor | frictionalgames/amnesiathedarkdescent | mistertea/eternalterminal | |
|---|---|---|---|
| Stars | 3,640 | 3,635 | 3,632 |
| Language | C++ | C++ | C++ |
| Setup difficulty | moderate | hard | moderate |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Qt 5.15+, CMake 3.11, and Catch2 to build from source.
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.
A C++ Qt library for building node-based graph editors, usable for graph visualization or full dataflow programming.
Mainly C++. The stack also includes C++, Qt, CMake.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.