imgui-node-editor implements a node editor system leveraging the ImGui library. The project aims to serve as a foundational component for more sophisticated systems like blueprint editors. It handles core interactions such as node placement, dragging, zooming, and selection, while leaving content rendering to the user. The editor exposes an API for querying and modifying node properties and connections.
Key features include automatic highlighting of nodes, pins, and links, enabling clearer visual representation. The editor allows for fully customizable node and pin contents, adapting to various needs. It also supports smooth navigation, selection rectangles, group dragging, context menus, and basic shortcuts, resulting in a user-friendly experience.
- Core Functionality: Node placement, dragging, zooming, selection, and connection management.
- Customization: Fully customizable node and pin contents, allowing for diverse node types.
- API: ImGui-style API for interaction and querying of the node graph.
- Layout Persistence: Node state can be saved in user context, preserving layout across sessions.
- Node Connections: Flexible connections based on Bézier curves for smooth visual linking.
- UI Highlights: Automatic highlighting of nodes, pins, and connections for visual clarity.
- Extensibility: Designed to be easily integrated into existing projects.
The project has transitioned from a prototype to a more stable state, initially used in the Spark CE engine for blueprint editor development. Recent restructuring aligns with ImGui's layout conventions. Active development is ongoing, with a focus on stability and usability. The project has a growing community and actively addresses reported issues.
This repository benefits developers aiming to integrate visual programming capabilities into their applications. It addresses use cases such as creating custom editors, visual scripting interfaces, and node-based systems. The core value lies in providing a robust and customizable node editor framework built upon the well-established ImGui library, simplifying complex visual workflows.
