1. Project Overview
1.1 basic information
| Dimension | Information |
|---|---|
| Project Name | Dear ImGui (Immediate Mode Graphical User interface) |
| Organization/Author | ocornut / Omar Cornut (French independent developer, former Media Molecule engineer) |
| GitHub | https://github.com/ocornut/imgui |
| Open Source Protocol | MIT-Extremely loose, allowing closed source commercial use with almost no restrictions (only the copyright notice needs to be retained) |
| Main language | C (since C 11; also supported by C 20 modules) |
| Star Number | 75,000(2026-07 Query, GitHub C GUI Category No.1) |
| Cumulative Submissions | 10,000 Commits |
| Number of Release | 155 **Tags, about 40 official Release(v1.0 ~ v1.92.6) |
| Contributors | 400 |
| Created | July 2014 (the prototype started in 2012 and was originally used for games Tearaway inside Media Molecule) |
| Last Updated | 2026-07-24 (Continuous Daily Active Development) |
| official website | https://www.dearimgui.com |
| Language Ecology | Third-party bindings cover 40 languages:C, C#, Python, Rust, Go, Java, Lua, Zig, Swift, etc. |
| Framework integration | Embeddable Unity, Unreal Engine 4/5, Godot, Blender, Qt, Cocos2d-x, Defold, Photoshop, etc. |
1.2 Project Positioning
Dear ImGui is not a traditional "desktop application GUI framework" (e. g. Qt, GTK). It is positioned as a minimalist, high-performance, renderer-independent, live-mode GUI library designed for the following scenarios:
-Development Tools in Game Engine (Material Editor, Level Editor, Animation Blueprint Debugging)
-Debugging/HUD overlay for real-time 3D applications (Performance Analyzer, Status Monitoring Panel)
-UI of content authoring tool (internal panel of 3D modeler, animation editor)
-Non-standard UI for embedded/host platform(Nintendo Switch, PlayStation, Android, etc.)
-Parameter adjustment panel for scientific computing/data visualization
-Rapid Prototyping & Temporary Tools(Hot Reload period in-place plus button debug variables)
The core philosophy of the project is condensed into one sentence: "Code is UI" -there is no UI designer, no XML/JSON layout file, no style sheet, developers directly use C function calls to describe the UI structure of each frame, and UI logic and business logic are naturally integrated.
1.3 development process
| Phase | Time | Key Event |
|---|---|---|
| Prototype Period | 2012 | Omar Cornut conceived and prototyped the ImGui concept during the Media Molecule, first used in the PS Vita game Tearaway |
| Open source release | July 2014 | The first public version was released on GitHub (MIT protocol) and quickly gained attention in the game developer community |
| Community Outbreak | 2014-2017 | Rapid Spread in the Gaming Industry with Minimalist Integration Experience; Plenty of Third Party Bindings and Extensions; Omar Amateur Maintenance |
| Full-time investment | At the end of 2017 | Omar left his employer to invest full-time in the development and maintenance of Dear ImGui, relying on corporate sponsorship and commercial support contracts to maintain |
| Docking Branch | 2018 | Launched the' docking' branch, introducing two flagship functions of Docking (docking panel) and Multi-Viewport (multi-viewport) |
| Tables API | 2021 | v1.83 introduces the full 'Tables' API, which is comparable to the column sorting/filtering/freezing capabilities of professional table controls |
| Test Engine | 2021 | Release of a closed source commercial product Dear ImGui Test Engine, providing automated test suites for enterprises |
| Ten-Year Milestone | 2024 | Release v1.91, Review 10 Years: From Internal Tools to 75,000 Stars Global Infrastructure Level Projects |
| Current | 2024-2026 | Continuous high-frequency iteration (v1.92.x), focusing on Metal 4 backend, WebGPU, performance optimization and community governance |
2. Core Competence
2.1 Instant Mode GUI Paradigm (Immediate Mode GUI)
Dear ImGui's core innovation lies in the instant mode programming paradigm, which is fundamentally different from reserved mode *(Retained Mode) such as Qt/MFC/GTK:
Retention Mode (Traditional): Create a persistent UI object tree → Register event callback → Framework management lifecycle and state synchronization → Manually update UI objects when data changes.
Immediate mode (ImGui): Each frame directly calls the UI function in the main loop → the function returns the interaction result immediately → no persistent UI object, no event callback, and no state synchronization.
// 典型 ImGui 使用模式——代码即 UI,无回调地狱
ImGui::Begin("Inspector");
ImGui::SliderFloat("Speed", &speed, 0.0f, 10.0f);
if (ImGui::Button("Reset")) { speed = 1.0f; } // 按钮点击直接内联处理
ImGui::End();
- Development Efficiency Leaps *: The 4-step process of "Create UI → Connect Signal Slot → Manage Lifecycle → Handle Events" is compressed into 1 step of "Write Function Call.
2.2 Window and Layout System
-Multi-window management: support drag, zoom, collapse, scroll, child window nesting
-Docking (docking panel): IDE-like layout similar to Visual Studio, which can dock/separate/label windows (docking branches)
-Multi-Viewport (multi-viewport): Drag the ImGui window out of the main window into a separate OS window (multi-monitor support)
-Columns/Tables: Column layout and complete data table controls (sort, filter, fixed column, row selection)
-Menu Bar: Full menu bar/context menu/popup menu support
2.3 built-in control library
| Category | Control |
|---|---|
| Text | Text, TextColored, TextWrapped, LabelText, BulletText, SeparatorText |
| Button | Button, SmallButton, ArrowButton, InvisibleButton, ImageButton, RadioButton |
| Enter | InputText (single line/multi-line/password/number), InputInt, InputFloat, InputDouble |
| Slider | SliderFloat, SliderInt, SliderAngle, VSliderFloat, SliderScalar |
| Drag | DragFloat, DragInt, DragScalar (precision controllable drag adjustment) |
| Selector | Checkbox, Combo, ListBox, Selectable (supports multiple selection) |
| Color | ColorEdit3/4(RGB/HSV Color Editor Color Picker) |
| DateTime | DatePicker, TimePicker (3rd party extension, ImGui source support customization) |
| Tree Control | TreeNode, TreeNodeEx, CollapsingHeader |
| Table | BeginTable / EndTable (Sort, Column Width Adjustment, Fixed Row and Row, Filter, Cross Cell) |
| Tab Page | TabBar / TabItem |
| Pop-up Window | OpenPopup, BeginPopup, BeginPopupContextItem, BeginPopupModal |
| Hint | Tooltip, BeginTooltip, SetTooltip |
| Progress and Charts | ProgressBar, PlotLines, PlotHistograms |
| Subwindow | BeginChild (independent scroll area) |
| Draw without borders | ImDrawList API: Draw lines, rectangles, circles, polygons, Bezier curves, text, images directly |
2.4 Extension Ecosystem (Core Extension)
| Extension | Description |
|---|---|
| ImPlot | Real-time mode 2D chart library (polyline, scatter, column, pie chart, heat map, etc.),6,500 Stars |
| ImPlot3D | Instant Mode 3D Chart Library |
| ImGuizmo | 3D Space Transformation Component (Translate/Rotate/Scale, like Unity Editor) |
| ImNodes | Node Editor (Blueprint/Material Editor style) |
| Dear ImGui Test Engine | Official Closed Source Automated Test Engine (Commercial License) |
| imnodes | Interactive node map editor |
| ImGuiColorTextEdit | Syntax Highlighting Text Editor |
| imgui_markdown | Markdown Renderer |
2.5 renderer and platform backend
Dear ImGui interfaces with almost all graphics APIs and platform frameworks through a "core backend" separation architecture.
Officially maintained backend (released with the warehouse):
| Type | Support List |
|---|---|
| Graphics API | DirectX 9/10/11/12, OpenGL 2/3/ES2/ES3, Vulkan, Metal 3/4, WebGPU, SDL_GPU, SDL_Renderer2/3 |
| Platform Layer | Win32, GLFW, SDL2/SDL3, OSX (Cocoa), Android, Glut |
| Framework | Allegro5, Emscripten (WebAssembly) |
Third-party framework bindings (approx. 50 ):Unity, Unreal Engine 4/5, Godot, Qt/QtDirect3D, Cocos2d-x, Defold, Blender, Photoshop, raylib, SFML, Sokol, Ogre3D, Nintendo Switch/WiiU/3DS (homebrew), etc.
3. Technical Architecture
Overall 3.1 Architecture
Dear ImGui uses a three-tier decoupling architecture to completely separate platform-independent core logic from platform-specific backends:
┌──────────────────────────────────────────────┐
│ 用户代码 │
│ (ImGui::Text/Button/Slider/Window 等 API) │
├──────────────────────────────────────────────┤
│ 核心库(平台无关) │
│ imgui.cpp → UI 逻辑、布局引擎、ID 系统 │
│ imgui_draw.cpp → 几何生成、顶点缓冲输出 │
│ imgui_widgets.cpp → 内置控件实现 │
│ imgui_tables.cpp → 表格系统 │
│ imgui.h → 公共 API 头文件 │
│ imgui_internal.h → 内部 API(高级定制用) │
│ imgui_demo.cpp → 完整 Demo 窗口(文档+示例) │
├──────────────────────────────────────────────┤
│ 平台/渲染器后端 │
│ 平台后端: imgui_impl_win32/glfw/sdl/... │
│ → 处理键盘/鼠标/游戏手柄/剪贴板/IME 输入 │
│ 渲染后端: imgui_impl_dx11/vulkan/opengl3/... │
│ → 上传字体纹理、渲染 ImDrawData 到 GPU │
├──────────────────────────────────────────────┤
│ GPU / 操作系统 │
└──────────────────────────────────────────────┘
Core Data Stream:
- Input Phase: The platform back-end collects keyboard/mouse/touch/handle events and writes them into the 'ImGuiIO' structure
- New Frame:'ImGui::NewFrame()'resets the internal state and prepares the UI build for the new frame
- UI Construction : User code calls 'ImGui::Begin/Button/Slider/End' to build UI, and the framework calculates the layout in real time
- Render:'ImGui::Render()'Generates 'ImDrawData' (Vertex Buffer Draw Command List)
- GPU Submission: The rendering backend converts 'ImDrawData' to GPU draw calls.
3.2 Key Design Principles
Just-in-time mode ≠ Just-in-time rendering:Dear ImGui builds the UI logic tree every frame, but does not immediately send draw calls to the GPU. It batches the entire UI into a set of optimized vertex buffers and draw commands in the 'Render()'phase-this is fundamentally different from traditional instant mode rendering and avoids a large number of scattered draw calls.
ID Stack System:ImGui uses an ID stack ('PushID/PopID') to assign a unique identifier to each control to track which controls remain consistent across frames (to preserve a small amount of UI state such as focus, scroll position, etc.). This is a mandatory "controlled state retention"-the framework takes over minimal but necessary UI state management.
Zero external dependencies: The core library only references the three built-in STB single-header file libraries ('stb_rectpack.h ', 'stb_textedit.h', and 'stb_truetype.h '). All font rasterization and text editing logic are implemented in the repository itself, which is truly "clone-ready".
4. Market positioning and competition analysis
4.1 Competitive Landscape
Dear ImGui's competitors can be divided into the following three categories:
A. Legacy retention mode GUI framework (different tracks, but some scenes overlap)
| Dimension | Dear ImGui | Qt | GTK/gtkmm | wxWidgets | |
|---|---|---|---|---|---|
| Programming Pattern | Instant Mode | Reserved Mode (Signal Slot) | Reserved Mode (Signal) | Reserved Mode (Event Table) | |
| Learning Cost | Very Low (Getting Started with a Few Lines of Code) | High (MOC Precompilation, Meta-Object System) | Medium High | Medium | |
| Runtime Overhead | Very Low(~ 1MB Core) | High (~ 50MB Base) | Medium | Medium | |
| Rendering Method | Output Vertex Buffer → User Rendering | Self-Drawing/Platform Native Controls | Platform Native Controls | Platform Native Controls | |
| User | Developer/Internal Tools | End User | End User | End User | End User |
| Cross-platform | Depends on Graphics API | Perfect * (including mobile terminal) | Perfect | Perfect | |
| Themes/Styles | Programmatic Customization | QSS (CSS-like) | CSS | Platform Native | |
| Internationalization | Basic (no RTL/bidirectional text) | Perfect | Perfect | Perfect | |
| License | MIT | LGPL/Commercial | LGPL | wxWindows License | |
| Number of Stars | 75,000 | - | - | - | - |
B. Same as Track Instant Mode GUI Library
| Dimension | Dear ImGui | Nuklear | RmlUi | NanoGUI |
|---|---|---|---|---|
| Stars | 75,000 | ~9,000 | ~3,300 | ~1,100 |
| Paradigm | Instant Mode Pure Code | Instant Mode Pure Code | HTML/CSS Declarative | Preserving NanoVG |
| Language | C | C (ANSI) | C | C |
| License | MIT | MIT/Public Domain | MIT | BSD |
| Dependencies | Zero external dependencies | Zero external dependencies | A few dependencies | NanoVG GLFW |
| Maturity | Extremely High(10 years, 400 contributors) | Medium (Inactive Maintenance) | Medium | Low |
| Community Ecology | Extremely Rich(40 language bindings, hundreds of extensions) | General | General | Weak |
| built-in controls | extremely rich (table/Docking/tab/menu, etc.) | basic | based on HTML/CSS control set | basic |
| Graphics API | DX9-12/GL/Vulkan/Metal/WebGPU | GL/Vulkan/DX | Custom rendering backend | GL / Metal |
| Features | Docking/Multi-Viewport | Pure C Implementation, Minimal | Designer Friendly (CSS-like) | Retina Support |
C. Game engine built-in UI system
| Engine | Scenario | Relationship with Dear ImGui |
|---|---|---|
| Unreal Engine | UMG (Unreal Motion Graphics) / Slate | ImGui is commonly used in editor-in-editor debug panels, and a large number of plug-ins embed it into the UE |
| Unity | UGUI / UI Toolkit / IMGUI (Legacy) | The IMGUI system in the Unity Editor is inspired by Dear ImGui |
| Godot | Built-in Control node system | 3rd party integration ImGui for editor extensions |
4.2 Differentiation Advantage
- No one can match the integration speed : integrate into any C 3D application within 10 minutes (copy 3. cpp 3. h to the project, compile, add 5 lines of code to the main loop)
- renderer agnosticism : does not bind any graphics API,"ImGui can be rendered as long as texture triangles can be drawn", which is suitable for all mainstream APIs and can be customized.
- Community Scale Fault Leading :75,000 Stars, far exceeding the sum of all competing products; 40 Language Binding Ecology, Forming Positive Feedback Loop
- performance extreme optimization : core ~ 1MB, extremely low frame cost (usually <0.5ms), suitable for embedding into 3A games and host platforms sensitive to frame budget
- Industrial level verification : used by internal engines and tool chains of first-line game companies such as Blizzard, Ubisoft, Epic, Sony, EA, Nintendo, etc.
- MIT Agreement Zero Friction: No Commercial Concerns, No Contagious Terms, No Open Source Derivative Code Required
4.3 target user group
| User groups | Typical scenarios | Motivation |
|---|---|---|
| Game Developer | In-game debugging panel, level editor, material/animation editor, performance Profiler, AI behavior tree debugging | Very low integration cost, does not affect the game rendering pipeline |
| Engine/Middleware Developer | Engine built-in tool GUI, rendering parameter adjustment panel, scene checker | Provides lightweight tool interface for engine users |
| Real-time 3D/VR/AR developer | Rendering parameter adjustment, scene editing, space annotation | Support custom rendering backend, can be embedded in any 3D environment |
| Scientific computing/simulation engineer | Parameter scanning panel, simulation status monitoring, real-time data visualization | Quickly build parameter adjustment interface and coordinate with ImPlot drawing |
| Embedded/Host Developer | Device configuration interface, diagnostic tools, field debugging panel | Zero dependency, can run on resource-constrained platforms |
| Independent Developer/Hobbyist | Rapid UI Prototyping, Game Modification Tool, Mod Editor | No need to learn complex frameworks, a few lines of code out of the interface |
| Enterprise tool developer | Internal development tools, data pipeline monitoring, and automated script panel | Compared with Qt, the deployment is lighter and the learning curve is smoother. |
5. Business Model
Dear ImGui is not a traditional commercial company, its operating model is " open source core enterprise sponsored closed source value-added products ":
| Mode | Description |
|---|---|
| MIT open source core library | Dear ImGui core is completely free, MIT agreement, any individual/enterprise can use unlimited |
| Corporate Sponsorship Contract | The enterprise supports the continuous development of the project through invoice-based sponsorship (contact contact@dearimgui.com), and Omar maintains it full-time |
| Dear ImGui Test Engine | Closed source commercial product, provides automated test engine and test suite for enterprise customers who need quality assurance (independent license, need to contact) |
| Individual Donations | Accepting Individual Developer Donations via PayPal |
| Consulting/Support Services | Private support and custom development consulting for enterprises (paid) |
Key Data:
-Invest ~ 2500 hours of R & D in 2020
-Invest ~ 1600 hours of R & D in 2021
-Commercial Sponsors (Public):Blizzard, Ubisoft, Epic Games, Sony, Activision, NVIDIA, Google, Adobe, Autodesk, Microsoft, etc. (see Funding Wiki)
-Core maintainer Omar Cornut has been committed full-time since the end of 2017, contributing to the full-time development of the project for more than 7 years.
Business implications:Dear ImGui is a success story of open source sustainability-by providing irreplaceable infrastructure-level value to leading companies in the games/tools industry in exchange for voluntary financial support from these companies. This is different from the Red Hat model (which does not sell subscriptions), but rather an elite single-point maintenance model that relies on the full-time input of core maintainers and the head companies consciously sponsor.
6. Pre-sales entry point
6.1 Why do customers need it?
Problem scenario 1: The game/engine team needs to build UI for internal tools, but does not want to introduce Qt's heavyweight dependency
A game engine team needs to build a fully functional UI for internal tools such as level editor, material editor, animation state machine, etc. The traditional solution is to use Qt, HTML/CEF, or a self-developed UI system-the former introduces hundreds of MB of dependencies and additional build configuration (requiring Qt maintenance team), while the latter requires huge engineering resources and is difficult to maintain. Dear ImGui offers a third option: copy a few files to the project and write C functions to build a full-featured tool interface in a few days, with only ~ 1MB of memory overhead at runtime and no interference with the engine rendering pipeline.
Problem scenario 2: Need to overlay debug panel or parameter adjustment UI in real-time 3D/VR application
Real-time 3D applications (simulation training, digital twins, autonomous driving visualization) running on the underlying graphics API such as Vulkan/DirectX/Metal, native GUI solutions are extremely scarce. Dear ImGui, as a renderer-independent instant mode UI, can be perfectly embedded in any graphics pipeline. Developers can insert UI calls anywhere in the rendering loop without adapting to the native window system of the operating system.
Problem scenario 3: Embedded/host platform needs to develop diagnostic/configuration interface
Nintendo on Switch, PlayStation, Xbox, or embedded Linux devices, traditional GUI frameworks either don't exist or are too resource intensive. Dear ImGui's zero-dependency feature allows it to run on any platform that can render texture triangles, from Android to bare-metal embedded.
Problem Scenario 4: The fast iteration period requires a "throw-away" parameter adjustment interface.
when developers adjust parameters (Shader parameters, physical engine parameters, AI behavior weights), the recompilation cycle is too long for each code change. With Dear ImGui, you can directly add a few lines of Slider/Input code to the main loop, use C's Edit & Continue (Hot Reload) to adjust parameters in real time, and delete the UI code after adjustment-this "temporary UI" requirement cannot be met by any other framework.
6.2 Pre-sales Speech
| Customer Roles | Speech Suggestions |
|---|---|
| Technical Director/Architect | "Dear ImGui is not another big and complete GUI framework-it is the ultimate point solution: for development tools and debugging panels. The integration cost is O (copying files) instead of O (introducing frameworks), zero runtime burden, and no legal risk for the MIT protocol. Blizzard, Ubisoft, Epic-it's the game industry's 'infrastructure consensus '. " |
| Graphics/Engine Engineer | "You can think of ImGui as a" vertex buffer factory "-your rendering back end only needs to receive its output ImDrawData to draw texture triangles, and the rest of the UI interaction logic framework is fully covered. It doesn't touch your graphics state and won't mess up your rendering pipeline. " |
| Tool chain developer | "No need to write XML layout files, no need to connect signal slots, and no need to manage the window life cycle. Every button, slider, and table you need is a line of C function calls, built in real time at runtime. Docking branches make it easy for you to spell out Visual Studio-level complex tool interfaces. " |
| Project Manager/Purchasing Decision Makers | "Community 75,000 Stars proves that this is not a toy project, but a production-grade infrastructure polished over 10 years. The MIT agreement means zero license fees and zero legal concerns. If you need enterprise-level support and automated testing, there are official commercial Test Engines and service contracts available. " |
| Embedded/Host Developer | "It is almost impossible to run Qt on Switch, PS5 and embedded Linux, but Dear ImGui can-it has only a few. cpp files at its core, zero external dependency, and extremely low memory footprint, as long as your platform can draw texture triangles. " |
7. Risks and Challenges
| Risk | Severity | Description | Mitigation |
|---|---|---|---|
| Single point maintainer risk (Bus Factor = 1) | 🔴Gao | Omar Cornut is the only core maintainer. If he cannot continue to maintain, the project may face stagnation. | The project has established a complete CI/CD and testing system. The base of community contributors is broad (400 ); Enterprises can consider establishing commercial relations with Omar to obtain SLA guarantee |
| Not suitable for end-user applications | 🟡Medium (correct selection required) | No native operating system controls (file dialog box, system tray, etc.), no auxiliary functions, no real RTL/internationalization support, no consumer-oriented UI/UX | has little impact on internal tool/debugging panel scenes; Can be mixed with Qt and other traditional frameworks (Qt is the main UI,ImGui is the embedded tool panel) |
| The Docking branch is separated from the master branch | 🟡Medium | Docking/Multi-Viewport function has been developed in the' docking' branch for a long time, and master has not been merged (although it is highly available). | The branch is regularly synchronized with master. A large number of users have directly used docking branch in production projects. |
| Theme/Style Customized Programmatically | 🟢Low (for target users) | No visual theme editor, no CSS style table, custom appearance requires writing C code to operate ImGuiStyle structure | Acceptable for developer tool scenarios; Third-party theme library (ImThemes) provides rich presets |
| High DPI/multi-resolution adaptation requires manual handling | 🟢Low | No automatic layout manager (such as Qt Layout), complex layout requires manual calculation of coordinates and dimensions | For tool UI scenarios, relative coordinate calculation is acceptable; Auxiliary functions such as 'GetContentRegionAvail()'simplify adaptation |
| Enterprise support for non-standardization | 🟡Medium | Unlike Red Hat or Qt Company enterprise support plans that provide SLA guarantees | Commercial support contracts can be obtained by contacting Omar directly; community GitHub Issues/Discussions response times are usually fast |
| Learning paradigm shift cost | 🟢Developers of low | habit retention mode (Qt/MFC) need to adapt to the thinking mode of "rebuild UI per frame" | get started very fast (functional UI can be produced in a few hours); Rich Demo windows and documents reduce conversion costs |
8. One sentence conclusion
Dear ImGui is the "Swiss Army Knife" for C developer tools and debugging UI-it is not a substitute for Qt, but fills an ecological niche that Qt can never fill: building a fully functional internal tool interface with minimum friction, lowest cost and fastest speed in 3D pipeline applications. For game studios, engine teams, embedded developers and real-time 3D application developers, the introduction of Dear ImGui is a low-risk and high-return infrastructure-level decision -10-minute integration has brought several years of efficiency improvement, MIT license has zero cost and zero risk, 75,000 Stars community recognition and endorsements from head users such as Ubisoft/Blizzard/Epic/Sony have fully verified its production-level reliability.