awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
thedmd avatar

thedmd/imgui-node-editor

0
View on GitHub↗
4,320 stars·654 forks·C++·mit·27 views

Imgui Node Editor

imgui-node-editor is a C++ extension for Dear ImGui that adds a fully interactive node graph editor, enabling visual programming and blueprint-style graph editing within immediate-mode GUI applications. At its core, it provides a customizable node graph UI component where users can place, drag, and connect nodes with pins, supporting Bézier curve connections, automatic highlights, and a default theme modeled after blueprint editors. The editor handles graph navigation with smooth zooming, scrolling, selection rectangles, group dragging, and keyboard shortcuts for cut, copy, paste, and delete operations.

The project distinguishes itself through its immediate-mode architecture, rendering the entire node graph each frame using Dear ImGui's API with no retained scene graph or incremental update logic. It features Bézier curve connection routing with automatic path calculation based on pin positions and canvas zoom, pin-based connection validation that checks type compatibility and prevents circular or duplicate links at runtime, and selection-rectangle hit testing using axis-aligned bounding box intersection tests. The editor also includes a context-menu action dispatch system that maps user-selected actions to immediate-mode button callbacks without an event queue, and a serialization-through-callback system that persists node layout and state by invoking user-provided callbacks, leaving the serialization format and storage entirely to the host application.

The editor supports fully custom content rendering inside nodes and pins, allowing developers to define the visual appearance of each element, along with a customizable theme system that includes Bézier curve links and automatic highlights. Graph layout persistence saves and restores node positions, connections, and state across sessions using a custom serialization system. The project provides a complete visual programming editor with canvas coordinate transforms for smooth zooming and panning through a single matrix multiplication per frame.

Features

  • Blueprint-Style Editors - Provides a customizable blueprint-style node graph editor with Bézier connections and highlights.
  • Node Graph Connection Routings - Provides automatic Bézier curve routing for node connections in the graph editor.
  • 2D Affine Transformation Engines - Applies 2D affine transforms for smooth zooming and panning of the node graph canvas.
  • Graph Node Visualizations - Renders fully custom content inside nodes and pins, letting users define visual appearance.
  • Node Graph Engines - Provides a visual programming interface with draggable nodes, connectable pins, and interactive editing.
  • ImGui Extensions - Extends Dear ImGui with node-based workspace and graph manipulation capabilities.
  • Node UI Customization - Renders fully custom content inside nodes and pins, letting developers define visual appearance.
  • Immediate-Mode Rendering - Renders the entire node graph each frame using Dear ImGui's immediate-mode API.
  • Graph Navigation and Selection - Provides smooth zooming, scrolling, selection rectangles, and keyboard shortcuts for graph navigation.
  • Visual Node Editors - Provides an interactive workspace for designing logic maps and node-based layouts with zoom and selection.
  • Layout Persisters - Saves and restores node positions, connections, and state across sessions using custom serialization.
  • Callback-Based Serialization - Persists node layouts and state through user-provided callbacks for flexible serialization.
  • Immediate-Mode Context Menu Dispatchers - Ships an immediate-mode context menu dispatch system for node graph actions.
  • Editor Themes - Applies a fully customizable theme with blueprint-style Bézier curve links and automatic highlights.
  • Blueprint-Style Themes - Applies a customizable blueprint-style theme with Bézier links and automatic highlights.
  • Layout Persistence - Persists node positions and state in user-defined context across sessions.
  • Node Layout Serialization - Persists node layouts, positions, and properties across sessions with user-defined context handling.
  • Connection Validation Rules - Validates node connections by checking pin types and preventing circular or duplicate links.
  • Selection Area Hit Testing - Performs axis-aligned bounding box intersection tests for selection rectangle hit detection.
  • Development Tools - Node-based editing framework.
  • Diagramming And UI Libraries - Node editor component built using Dear ImGui.

Star history

Star history chart for thedmd/imgui-node-editorStar history chart for thedmd/imgui-node-editor

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does thedmd/imgui-node-editor do?

imgui-node-editor is a C++ extension for Dear ImGui that adds a fully interactive node graph editor, enabling visual programming and blueprint-style graph editing within immediate-mode GUI applications. At its core, it provides a customizable node graph UI component where users can place, drag, and connect nodes with pins, supporting Bézier curve connections, automatic highlights, and a default theme modeled after blueprint editors. The editor handles graph navigation with…

What are the main features of thedmd/imgui-node-editor?

The main features of thedmd/imgui-node-editor are: Blueprint-Style Editors, Node Graph Connection Routings, 2D Affine Transformation Engines, Graph Node Visualizations, Node Graph Engines, ImGui Extensions, Node UI Customization, Immediate-Mode Rendering.

Which projects share features with thedmd/imgui-node-editor?

Projects with overlapping indexed features include: alibaba/butterfly — Butterfly is an interactive graph visualization library and SVG-based diagramming engine used to build node-based… cedricguillemet/imguizmo — ImGuizmo is a widget library for Dear ImGui that provides interactive graphical components for 3D transformations,… jagenjo/litegraph.js — litegraph.js is a JavaScript dataflow framework and visual node graph engine used to define programmable logic and… retejs/rete — Rete is a framework for building interactive, node-based visual interfaces and dataflow programming environments. It… jerosoler/drawflow — Simple flow library 🖥️🖱️. faiface/pixel — Pixel is a 2D game library and graphics engine for the Go programming language. It provides a hardware-accelerated…

Projects sharing features with Imgui Node Editor

These projects share indexed features with Imgui Node Editor. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • alibaba/butterflyalibaba avatar

    alibaba/butterfly

    4,649View on GitHub↗

    Butterfly is an interactive graph visualization library and SVG-based diagramming engine used to build node-based workflow designers and visual flow editors. It provides a framework for rendering interconnected nodes, edges, and groups to model technical architectures, business processes, and data-driven workflows. The project is distinguished by its ability to integrate custom UI components as graph nodes and its specialized support for data lineage visualization. It enables the mapping of relationships between data fields, tables, and business entities to track provenance and monitor workfl

    JavaScript
    View on GitHub↗4,649
  • cedricguillemet/imguizmoCedricGuillemet avatar

    CedricGuillemet/ImGuizmo

    3,943View on GitHub↗

    ImGuizmo is a widget library for Dear ImGui that provides interactive graphical components for 3D transformations, chronological timelines, vector geometry editing, and node-based data flow. It primarily provides a 3D transformation gizmo for manipulating the rotation, translation, and scale of objects within a 3D scene. The library includes a visual node graph editor for managing networks of connected nodes to represent data flow and a linear sequence timeline for editing frame ranges for events. It also features a vector path editor, which uses a pen tool and anchor handles to create and ma

    C++
    View on GitHub↗3,943
  • jagenjo/litegraph.jsjagenjo avatar

    jagenjo/litegraph.js

    7,871View on GitHub↗

    litegraph.js is a JavaScript dataflow framework and visual node graph engine used to define programmable logic and data flow. It provides a node-based visual programming tool for designing complex logic through connected functional blocks. The library allows for the creation of hierarchical logic by nesting multiple nodes into recursive subgraphs. It also supports the development of custom node types with unique inputs and outputs, as well as custom widgets and live views that can hide the underlying graph structure to present a visual interface. The engine enables the execution of logic gra

    JavaScriptblueprintscanvas2deditor
    View on GitHub↗7,871
  • retejs/reteretejs avatar

    retejs/rete

    12,077View on GitHub↗

    Rete is a framework for building interactive, node-based visual interfaces and dataflow programming environments. It provides a core engine that processes directed graphs, allowing developers to define modular logic where nodes represent operations and connections represent the flow of data or control. By decoupling the graph logic from the user interface, the framework enables the creation of custom visual editors that can be integrated into various frontend component libraries. The project distinguishes itself through a highly extensible, signal-driven architecture that supports complex req

    TypeScriptdataflow-programmingflow-based-programminggraph-editor
    View on GitHub↗12,077
Compare all 30 related projects→