See the HelloImGui documentation website for API, usage and build instructions.
Hello ImGui is a library designed to make multiplatform app development as simple as writing a "Hello World" program, built on top of Dear ImGui.
Its flexibility makes it suited for complex applications, as well as for simple prototypes; allowing you to focus on the creative aspects of your projects.
Multiplatform utilities
- Seamlessly multiplatform: supports Linux, Windows, macOS, iOS, Android, and Emscripten with minimal setup (1 line of CMake code)
- Asset embedding across all platforms (no code required)
- Effortless app customization, including app icons and names for mobile platforms (no code required)
- Universal application icon customization, extending to mobile and macOS (no code required)
Dear ImGui Tweaks
- Power Save mode: optimize performance by reducing FPS when idle
- High DPI support: automatically scales UI to match screen DPI on any platform.
- Enhanced layout handling: dockable windows and multiple layouts for complex UIs
- Window geometry utilities: autosize application window, restore app window position
- Theme tweaking: extensive list of additional themes
- Support for movable and resizable borderless windows
- Advanced font support: icons, emojis and colored fonts
- Integration with ImGui Test Engine: automate and test your apps
- Save user settings: window position, layout, opened windows, theme, user defined custom settings
- Easily add a custom 3D background to your app
Backends
- Available platform backends: SDL2, Glfw3
- Available rendering backends: OpenGL3, Metal, Vulkan, DirectX
The minimum code to start developing a GUI app should be... minimal. Here is a multiplatform Hello World in 7 lines.
6 lines of C++
#include "hello_imgui/hello_imgui.h"
int main(int , char *[]) {
HelloImGui::Run(
[]{ ImGui::Text("Hello, world!"); }, // Gui code
"Hello!", true); // Window title + Window size auto
}
1 line of CMake
hello_imgui_add_app(hello_world hello_world.cpp)
The docking demo show how to handle complex layouts, use themes, store user settings, reduce FPS and CPU usage when idling, load fonts and icons, and much more
Online demo - Source - Video tutorial: how to handle multiple complex layouts
How to use a custom 3D background in your app
ImGui Manual is an interactive Manual for Dear ImGui, built with Hello ImGui.
RPN Calculator is a simple RPN calculator, built, built to demonstrate how easy a multiplatform app can be built with Hello ImGui.
Online demo - Source - Video tutorial
The starter template will get you started in 5 minutes, and shows how to embed assets, customize the app icon (etc.), on all platforms.
Dear ImGui Bundle, a full-fledged library, built on top of Hello ImGui, provides lots of additional widgets (imgui, implot, imgui-node-editor, ImFileDialog, ImGuiColorTextEdit, imgui_md), as well as complete python bindings.
online interactive demo - Source for C++ demos - Source for Python demos
How to use the theme tweaking utilities provided by Hello ImGui
Hello ImGui is based on Dear ImGui (MIT License), by Omar Cornut. Portions use ImGui Test Engine, which is governed by a specific license
Portions of this software use the FreeType Project, lunasvg (MIT License), GLFW (zlib/libpng license), SDL (zlib license).
Hello ImGui is licensed under the MIT License, see LICENSE
Quality contributions are welcome!
Hello ImGui is a free and open source project, and its development and maintenance require considerable efforts.
If you find it valuable for your work – especially in a commercial enterprise or a research setting – please consider supporting its development by making a donation. Thank you!
See the HelloImGui documentation website for API, usage and build instructions.