HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ocornut
imgui
C++2014–2026
ocornut / imgui

imgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

162Distinct people
209Mentions
4Explicit recommenders
77.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

GitHub

Where it is used

What people are saying

I have done lots of UI interfaces in different platforms. I have used Motif and X Windows, Win32, MFC, Gtk, Qt, Cocoa, simple Web interfaces, DirectX, OpenGL, Metal. I love…

cracrecry used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 9:01:12 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year209 dated mentions

Observed mentions: 2014-08-11 02:10:27 UTC to 2026-09-03 10:20:38 UTC.

01020302014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 6 mentions; 4 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 12 mentions; 2 submissions, 10 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 23 mentions; 3 submissions, 20 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 29 mentions; 7 submissions, 22 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 29 mentions; 2 submissions, 27 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 14 mentions; 0 submissions, 14 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 24 mentions; 1 submissions, 23 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 28 mentions; 4 submissions, 24 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 13 mentions; 2 submissions, 11 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 15 mentions; 1 submissions, 14 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC110
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC642
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC716
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC817
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC12210
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC23320
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC29722
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC29227
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC14014
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC24123
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC28424
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC13211
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC15114

What Hacker News says

28 sources
Dear ImGui doesn't have a "graphics engine", the actual rendering is done by user-provided code which maps vertex- and index-arrays, and draw commands to system 3D APIs like D3D, Vulkan, Metal, GL etc... Font handling is based on stb_truetype.h, but can be replaced with FreeType: https://github.com/ocornut/imgui/blob/master/misc/freetype/R... In any case, versatile text rendering is certainly not the design focus of Dear ImGui (AFAIK there's also no support for RTL layout), instead it is mainly targeted at quickly creating specialized UI tools (especially inhouse tooling for game development), less at creating end-user applications. There's plenty of UI frameworks to create "end-user applications", but hardly any that fill the specific niche served by Dear ImGui.
In Show HN: ImPlot3D – A 3D Plotting Library for Dear ImGui
Dear ImGui defaults to "ProggyClean rendered at size 13" for everything. It is somewhat crunchy indeed, but a lot of people don't mind and don't bother changing. Still, you can look through the gallery of software using ImGui [0] or in the "screenshot threads" [1] for many examples which do have nicer fonts and text rendering. [0] https://github.com/ocornut/imgui/wiki/Software-using-Dear-Im... [1] https://github.com/ocornut/imgui/issues?q=label%3Agallery
In Show HN: ImPlot3D – A 3D Plotting Library for Dear ImGui
That's what inevitably happens when you make transitive dependencies easy and you have a culture of "if there's a library for it you must use it!" C/C++ are the only widely used languages without a popular npm-style package manager, and as a result most libraries are self-contained or have minimal, and often optional dependencies. efsw [1] is a 7000 lines (wc -l on the src directory) C++ FS watcher without dependencies. The single-header libraries that are popular in the game programming space (stb_* [2], cgltf [3], etc) as well as of course Dear ImGui [4] have been some of the most pleasant ones I've ever worked with. At this point I'm convinced that new package managers forbidding transitive dependencies would be an overall net gain. The biggest issue are large libraries that other ones justifiably depend on - OpenSSL, zlib, HTTP server
Read the rest
s/clients, maybe even async runtimes. It's by no means an unsolvable problem, e.g. instead of having zlib as a transitive dependency, it could: 1. a library can still hard-depend on zlib, and just force the user to install it manually. 2. a library can provide generic compress/decompress callbacks, that the user can implement with whatever. 3. the compress/decompress functionality can be make standard [1] https://github.com/SpartanJ/efsw [2] https://github.com/nothings/stb [3] https://github.com/jkuhlmann/cgltf [4] https://github.com/ocornut/imgui
In Rewriting Rust
Cool project! Graphics programming is _hard_ and anything to make it easier is welcome. Maybe a dumb question, but why not Dear ImGui (https://github.com/ocornut/imgui). "It's way too big and complex" is a completely reasonable answer, but I found it fantastic for debug menus, and there are a few applications that have used it as their _main_ GUI (Ship of Harkinian as an example). (Edit for fixing the name of the project)
In Microui+fenster=Small GUI
Immediate mode and polling are not the same thing. With Dear ImGui you own the event loop so you can draw as frequently or infrequently as you want. It is not necessary to draw 60 times per second when nothing is happening. Dear ImGui's sample code currently does draw every frame even when nothing is happening. Omar has said that he would eventually like to change this and it's on his roadmap, but it's low priority because he is currently targeting game industry users and doesn't want to attract a lot more users in other areas that will add to his support load and dilute his focus. [1] He also has said the same thing about accessibility and fancy theming. These features are good examples of why "the stuff that dear-imgui does" is not a good definition of immediate mode. People often assume that anything Dear Imgui doesn't do is hard or im
Read the rest
possible for any immediate mode API, but that's far from the truth. Omar is only one guy. He has a target audience in mind and is not trying to satisfy all use cases at once. You have to remember that when comparing Dear ImGui to a framework like Qt or SwiftUI or whatever that has hundreds if not thousands of developers contributing to it. [1] https://github.com/ocornut/imgui/issues/7892
In About the IMGUI Paradigm
> "Minimize state synchronization." > void UpdateUI() Minimize state synchronization by effectively synchronizing state on each screen refresh? > "Minimize state storage on user side." > Immediate mode is a style of API where important state is kept in user code Then reduce state stored in user code by storing "important state" in user code? > "Minimize setup and maintenance." I don't find the example convincing. It seems like any more complexity beyond this toy example puts you right back where you started. Building components by hand is stone age ideology regardless of how you push state. https://github.com/ocornut/imgui/blob/master/examples/exampl... > "Easy to use to create dynamic UI which are the reflection of a dynamic data set." Which is great for a video game.
In About the IMGUI Paradigm
On the flip side, targeting developers tightens the scope quite a lot! If nothing else, it massively increases the chance your target audience can at least get by with left-to-right text and 7-bit ASCII... Cornut recently did a 10 year retrospective of Dear ImGui: https://github.com/ocornut/imgui/issues/7892 - an interesting read for me, as a Dear ImGui library user for many years now, but worth your time I think even if you aren't a user yourself. There is a specific section about the scope of the library: https://github.com/ocornut/imgui/issues/7892#issuecomment-22...
In About the IMGUI Paradigm
A few JavaFX issues I've encountered while writing KeenWrite[1], my FOSS text editor based heavily on JavaFX: * Building installer-free cross-platform binaries on a local Linux build machine requires an external packager[2]. * Good luck building an installer-free binary for CPU architectures that differ from the compiler's machine. * Creating a Windows version will cost $ (to sign). * Creating a macOS version will cost $ (to sign). * WebView is a bloated beast that bundles JavaScript and exposes no API to set scrollbar positions. * FlyingSaucer[3] is a lightweight alternative to WebView, but requires a SwingNode. * SwingNode text rendering is blurry on Windows. * SwingNodes issue GDK-3 warnings on Linux. * Menu latching messes up cross-platform (Alt+Tab is a wrench). * Modular applications are a pain. Migration has been poorly communicat
Read the rest
ed, poorly documented, and poorly supported. * RichTextFX has no way of changing the caret style in insert mode. * PreferencesFX, and likely other FX libraries, has security issues. * For MDI with dockable panes, take a look at tiwulfx-dock[4]. Java problems: * "Write once, run anywhere" is no longer true. * Apache Batik for rendering SVG images is buggy, EchoSVG[5] is better. * Rendering math as SVG is hard[6]. * Cross-platform user data directory that complies with XDG, Windows, and macOS will take effort. * Reliably locating executable programs across platforms is a chore. Depending on your requirements, C++ and imgui may be a better choice.[7] [1]: https://gitlab.com/DaveJarvis/KeenWrite [2]: https://github.com/Reisz/warp/ [3]: https://github.com/flyingsaucerproject/flyingsaucer [4]: https://github.com/panemu/tiwulfx-dock [5]: https://github.com/css4j/echosvg [6]: https://gitlab.com/DaveJarvis/KeenType [7]: https://github.com/ocornut/imgui/issues/4400#issuecomment-89...
In Home to Anything JavaFX Related

Showing the 15 most recent of 28 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.