Dear ImGui is a production-grade, immediate-mode graphical user interface library for C++. It provides a self-contained core engine (rendering, widgets, tables, fonts, input handling) and a large ecosystem of platform and renderer backends (GLFW, SDL2/3, Win32, Vulkan, DirectX, Metal, OpenGL, WebGPU, etc.) that enable integration into any application with minimal overhead. The architecture is a library with pluggable backends: user code calls ImGui::NewFrame() to build UI, then ImGui::Render() produces draw data consumed by the chosen renderer backend. The repository includes dozens of example applications demonstrating integration with various windowing systems and graphics APIs, as well as utilities like font embedding tools, FreeType rasterizer integration, and a headless backend for testing. It is not a data research project; it is a software library for building tools, debug UIs, and in-game overlays.
Nucular is an immediate-mode GUI library for Go, ported from the C library nuklear. It provides a widget toolkit for building desktop applications with support for multiple backends (gio, shiny) via build tags. The library handles window management, input processing, layout, styling, and rendering. Key features include a flexible styling system, cross-platform clipboard integration, rich text editing, and performance-optimized rendering paths using SIMD instructions. Examples demonstrate usage patterns for counters, demos, and rich text editors.
FreeOrion is a turn-based space empire building game (4X: eXplore, eXpand, eXploit, eXterminate) inspired by the Master of Orion series. The architecture follows a client-server model where the server manages game state and rules, while clients (human or AI) interact via GUI or scripting. Game content is defined via FreeOrion Content Scripts (FOCS), Python-like scripts parsed by a C++ engine using Boost.Spirit. The human client uses the GiGi (GG) library for OpenGL-based rendering and UI. Key systems include empire management (resources, production, research), ship design and combat, planet colonization, diplomacy, and AI-driven opponents. The project supports modding through FOCS and has active cross-platform development with CI workflows for Linux, macOS, and Windows.
This repository contains raygui, an immediate-mode GUI library for the raylib game programming library. It is written entirely in C as a single header file (src/raygui.h). The library provides over 25 controls (buttons, sliders, text boxes, list views, color pickers, etc.) designed specifically for building development tools, debug overlays, and editors. The architecture follows an immediate-mode pattern where controls are drawn and return their state every frame, with no retained state managed by the library, making it highly predictable and easy to integrate into existing game loops. A powerful styling system allows complete customization of colors, fonts, and metrics, with over 20 pre-built themes provided in the styles/ directory. The library also includes a built-in icon system with 256+ 16x16 icons. While tightly coupled to raylib by default, a standalone mode (RAYGUI_STANDALONE) allows it to be adapted to any graphics library by implementing a small set of backend functions. The examples directory contains several high-quality, reusable custom widgets (curve editor, property list, file dialog) that demonstrate how to extend the library. The codebase is mature, well-documented, and actively maintained, representing a high standard of C library craftsmanship within its domain.
This repository provides a reusable, interactive node editor library built on top of Dear ImGui. It is a pure C++ library with a public API that enables embedding a visual node/graph editor into any ImGui-based application. The core implementation handles node and link creation, dragging, selection, zoom/pan, context menus, cut/copy/paste, flow animations, and state serialization via a bundled JSON library. It is not a standalone application but ships with several examples and an application framework (Win32/DirectX11, GLFW/OpenGL) to demonstrate usage. The architecture is modular, with separate components for canvas rendering, bezier math, and JSON serialization, making individual parts reusable in other projects. The repository is well-maintained with active issue triage and recent commits, though it has medium technical drift due to heavy version-conditional code for Dear ImGui compatibility and reliance on some outdated dependencies (DirectX SDK, older stb versions).
ImNodeFlow is a C++ library that provides node-based editor functionality for Dear ImGui applications. It enables developers to create visual programming interfaces with customizable nodes, input/output pins, and bezier curve connections. The library handles all aspects of the node editor including grid management, node rendering, link rendering, user interactions (dragging, clicking, popup menus), and connection logic. The architecture centers around the ImNodeFlow class which manages the infinite grid, nodes, and links. Custom nodes are created by deriving from BaseNode and implementing the draw() method for node content. The system uses a retained-mode approach for nodes and links while leveraging ImGui's immediate-mode rendering for the UI. Key features include zoom/pan support, connection filtering, customizable styling, and popup events for right-click and dropped links. While primarily a UI component library, the repository includes specialized mathematical utilities that could be reused independently. The bezier math implementation for connection rendering and the context wrapper for zoom/pan functionality demonstrate particularly strong encapsulation and could be extracted for use in other projects.