Hello ImGui#
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.
Features#
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
Demos & real world apps#
Motto#
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)
Advanced layout#
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
Custom 3D background#
How to use a custom 3D background in your app
ImGui Manual#
ImGui Manual is an interactive Manual for Dear ImGui, built with Hello ImGui.
RPN Calculator#
RPN Calculator is a simple RPN calculator, built, built to demonstrate how easy a multiplatform app can be built with Hello ImGui.
Starter template#
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#
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
Theme tweaking#
How to use the theme tweaking utilities provided by Hello ImGui
About#
Credits#
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).
License#
Hello ImGui is licensed under the MIT License, see LICENSE
Contribute#
Quality contributions are welcome!
Support the project#
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!