ADVANCED NODE EDITOR

A C++20 and ImGui framework for type-checked connections, nested graphs and dependency-ordered evaluation.

WHY I BUILT IT

I kept running into the same interaction problems while prototyping graph-based tools. Node identity had to survive edits, invalid links had to fail clearly, and nested graphs needed to remain navigable. I built one reusable framework so I could solve those problems once instead of rebuilding the editor around every new experiment.

Advanced Node Editor showing a connected graph and its properties panel

20-SECOND DEMO

This excerpt from my technical reel shows the editor in use, creating and rearranging nodes, drawing connections, navigating a larger graph and inspecting the result. The final frame is held briefly so the completed graph can be read.

CRITICAL INTERACTIONS

  • Reject an incompatible link. A connection is created only when its output and input pin types match; otherwise the operation returns without modifying the graph.
  • Enter a subgraph. Nested graphs keep their own contents and view state, while a breadcrumb exposes the current location and the path back to the parent graph.
  • Evaluate after an edit. Registered node evaluators run in dependency order, allowing the demo to update its final value when a constant or connection changes.
  • Keep references stable. UUIDs identify nodes, pins and connections across editing, evaluation and graph-state serialization.

HARDEST DESIGN PROBLEM

The hardest part was not drawing nodes. It was keeping identity and context coherent when a node moved into a subgraph, a connection changed, or an evaluation traversed several dependencies. Separating stable UUIDs from runtime indices prevented editor operations from silently pointing at the wrong object.

CURRENT LIMIT

The public framework does not yet expose a production-ready undo and redo history. Until editing operations can be reversed reliably, I would treat it as a framework and interaction testbed, not as a finished artist tool.

What I learned

I learned that connection validation and graph navigation shape how trustworthy a node tool feels. The reusable part is not the canvas itself; it is the separation between editing, evaluation and extension points, with enough stable state for each layer to agree.

Credits and confidentiality

Production
Personal project
Role
Project creator — framework, interaction design and C++ implementation
Work by others
ImGui, CMake and the C++ toolchain are third-party technologies. No third-party production artwork is shown.
Confidentiality
No NDA. The source code is public on GitHub.