A cross-platform Java game development framework built on OpenGL ES for desktop, Android, web, and iOS games.
ocornut/imgui
Dear ImGui is a bloat-free, dependency-light immediate-mode GUI library for C++ aimed at debug, tool and game-engine interfaces.
- Stars
- 76,754
- Forks
- 12,077
- Open issues
- 1,222
- Last commit
- 5 days ago
What is it?
Dear ImGui is a graphical user interface library for C++ that uses the immediate-mode paradigm. Instead of building and retaining a widget tree, the application calls functions such as Button or SliderFloat each frame, and the library returns whether the user interacted with them. The core is a few platform-agnostic source files that can be added directly to an existing project without a special build process.
Rather than drawing through the graphics API directly, Dear ImGui outputs vertex buffers and a short list of draw calls that the application renders with its own pipeline. Backends for DirectX, Metal, OpenGL, Vulkan, WebGPU and others, plus platform layers such as GLFW, SDL, and Win32, are included in the repository. The library is aimed at content-creation tools, debuggers, profilers and engine editors rather than end-user applications, and it does not support full internationalization or accessibility features.
Key features
- 01Immediate-mode API where UI is declared in code each frame, with no retained widget state to sync
- 02Outputs vertex buffers and batched draw calls, so the renderer is independent of the library
- 03Core is a few self-contained source files with no external dependencies
- 04Official backends for multiple graphics APIs and platforms, including Win32, GLFW, SDL and Android
- 05Built-in demo window showing a wide range of widgets, plots and layout options
Use cases
- Adding debug panels or profiling views to a game engine or real-time 3D application
- Building content-creation or data inspection tools that need quick iteration
- Creating an in-app tweaking UI for variables on consoles or embedded systems with non-standard OS features
Quick start
- 1
Add the core imgui*.cpp and imgui*.h files from the repository root to your project
- 2
Pick the backends from the backends/ folder that match your graphics API and platform
- 3
Call ImGui::ShowDemoWindow() to see example features, with source in imgui_demo.cpp
Things to know
- Full internationalization is not supported, including right-to-left and bidirectional text.
- Accessibility features are not supported.
- It is designed for debug, tool and game-engine interfaces rather than average end-user UI.
Topics
FAQ
- What is imgui?
- Dear ImGui is a bloat-free, dependency-light immediate-mode GUI library for C++ aimed at debug, tool and game-engine interfaces. Dear ImGui is a graphical user interface library for C++ that uses the immediate-mode paradigm. Instead of building and retaining a widget tree, the application calls functions such as Button or SliderFloat each frame, and the library returns whether the user interacted with them. The core is a few platform-agnostic source files that can be added directly to an existing project without a special build process.
- Is imgui free to use? What license does it have?
- imgui is open source under the MIT license. Check the license terms before using it in commercial products.
- Is imgui still maintained?
- Actively maintained. The last commit to imgui was on Oct 16, 2026.
- What can I use imgui for?
- Adding debug panels or profiling views to a game engine or real-time 3D application Building content-creation or data inspection tools that need quick iteration Creating an in-app tweaking UI for variables on consoles or embedded systems with non-standard OS features
- How do I install imgui?
- Add the core imgui*.cpp and imgui*.h files from the repository root to your project Pick the backends from the backends/ folder that match your graphics API and platform Call ImGui::ShowDemoWindow() to see example features, with source in imgui_demo.cpp
- Where can I get imgui?
- The source code and installation instructions are on GitHub: https://github.com/ocornut/imgui
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.
A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue.
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.
A multi-core friendly C++ rigid body physics and collision detection library for games and VR applications.
A simple 2D game engine for Go that targets desktop, mobile, WebAssembly and console platforms.