Skip to content
0:00 / 0:00

#imgui#immediate-modegui#caseymuratori

Immediate-Mode Graphical User Interfaces - 2005

Casey Muratori

12K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 5 people: 5 on Hacker News.
  • A classic. People kept recommending it from 2017 to 2024.
  • Presented by Casey Muratori
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

149K views10 years ago5 recommendations

Graphics and audioSoftware designSoftware architectureRenderingGame programming

Casey Muratori introduces the concept of immediate-mode graphical user interfaces as an alternative to traditional retained-mode widget toolkits.

For more details, see caseymuratori.com/blog_0001

Why it's here

5 people recommend this

What people say. Engineers frequently recommend this video as the seminal explanation of immediate-mode GUI architecture and its benefits.

jblowon Hacker News • Recommends

On “VS Code uses 13% CPU when idle due to blinking cursor rendering”

I will also say that this is not an academic argument for me; I am in the middle of writing yet another immediate-mode GUI right now, for the game editor I am working on. Every day I am freshly glad that I am doing things as IMGUI instead of RMGUI. Here is a (somewhat old) video explaining some of the motivations behind structuring things as IMGUI: link to this video

billsixon Hacker News • Recommends

On “Qt Design Studio 1.0”

It’s a library for making windows, buttons, etc (called widgets), for windows Linux and macOS. If you’d like to make graphical applications though, I recommend immediate mode frameworks link to this video link link

danhiteon Hacker News • Recommends

On “Buttons as Finite Automata”

in 2016 Casey Muratori wrote a few words about his old video "IMMEDIATE-MODE GRAPHICAL USER INTERFACES (2005)" -- apparently he'd been using the technique for years by then and had coined the, now commonly used, imgui acronym -- see: link and if you dive into that video at 16:50 you'll see a very elegant description of minimal state immediate mode button logic; direct time link: link to this video

WhereIsTheTruthon Hacker News • Recommends

On “Dear ImGui: Bloat-free Graphical User interface with minimal dependencies”

ImGui is engine/GPU agnostic Themeing isn't a just a retained mode thing, you can do wonders with immediate UIs, even though (dear)ImGui doesn't provide much, you can still do wonders: link The gaming cheating community is quite creative as well: link More on that topic: link to this video

tuckerpoon Hacker News • Recommends

On “Immediate Mode GUI Programming”

Casey Muratori of handmade hero fame is one of the original pioneers (potentially the first?) of immediate mode user-interfaces. Check out this lecture/demo from nearly 20 years ago: link to this video

u/elsuizo37in r/C_Programming • Mentions

On “Programming GUIs in C.”

If you no want all the OOP crap i recomend Nuklear: https://github.com/vurtun/nuklear It's based in the Immediate Mode, explained here(from the great Casey Muratori): link to this video

jstimpfleon Hacker News • Mentions

On “McCLIM: A GUI Toolkit for Common Lisp”

…came across the "Immediate Mode GUI" approach. It has some following for example in the games or realtime graphics sector. I think it's nice and very flexible, but could imagine it falls flat for complex interaction models where you just need considerable state, and it's better to use conventional widgets which have much of the logic encapsulated: link to this video link…

gameswithgoon Hacker News • Mentions

On “ImPlot: Advanced 2D Plotting for Dear ImGui”

ImGui is a fantastic, and much beloved C++ library whose primary use is to create debug/level editor UIs in games, but people use it for many other purposes as well, some of them quite complex. It can plug into various renderers prety easily, and bindings exist for many popular languages, like Rust, and Rust. It was inspired by this talk given in 2005 by casey muratori on immediate mode guis: link to this video Neat to see additions like this that can plug into it. The rust joke was on purpose.

smaddoxon Hacker News • Mentions

On “DearPyGui”

As far as I can piece together, Casey Muratori first described the approach in an early YouTube video in 2005: link to this video The basic approach certainly existed far earlier, though. Early "graphical" command line applications, for example, most likely all took an immediate mode approach. It's just that no one thought it was worth making the distinction until after living through the hell that is retained mode GUI programming. In a way, React (along with other vdom-based GUI frameworks) is another rediscovery of immediate mode GUI techniques, but with more of a functional (reactive) programming influence.

AussieWog93on Hacker News • Mentions

On “The complexity that lives in the GUI”

Funny you mention this. I used to think the same way, and would constantly trip up managing state, until a co-worker who had worked in video games for two decades introduced me to the concept of the Immediate Mode GUI (IMGUI). Casey Muratori first spoke about IMGUI back in 2005, but didn't actually implement it practically: link to this video In around 2013, Omar Cornut wrote an incredibly high quality practical implementation of Muratori's concept called _Dear ImGui_: link Using both Cornut's library and Muratori's mindset is incredibly powerful and liberating. Things that would require days of work and multiple files in Qt or Cocoa can be finished in four hours and a couple of hundred lines of IMGU…

kragenon Hacker News • Mentions

On “Immediate Mode GUI Programming”

…ckbox: the checkbox is displayed in the same way it was displayed before, and it may be outdated with respect to the program data it's nominally supposed to represent omar's explainer at link pretty much agrees with the above, though he goes into a lot more detail. similarly casey's talking-at-the-camera video in which he popularized the concept link to this video so it should be apparent that react falls solidly on the imgui side of the line, which is why people use it…

kragenon Hacker News • Mentions

On “ImRAD is a GUI builder for the ImGui library”

imgui is a general approach to designing gui libraries proposed by casey muratori in 02005 link to this video the particular library in question is omar cornut's 'dear imgui' a gui that would use 100% of cpu on an 0.52-mips mac 512 link would probably use about 0.02% of cpu on one 2201-mips core of a raspberry pi 3 link if you pessimistically multiply that by 32 to account for having 32 bits per pixel instead of 1, and by 12 to account for 1920×1080 instead of 512×342, it comes to 9%. of one of the cores! also it would run in 0.5% of the pi's ram so, to a significant extent, the struggle is no longer to get something approximating your desired user interface running, but to imagine a user interface…

u/Sing-Authorin r/ProgrammingLanguages • Mentions

On “November 2021 monthly "What are you working on?" thread”

Thank you, I will check if I can find a library I can reasonably control through a pipe. As for web technologies, even if they are well suited for making user interfaces, html and css don't fit perfectly my idea of 'nice and simple'. I was thinking to something in the line of immediate mode guis ([video Something you can use to quickly set-up a graphic interface if you are aiming more at functionality than aesthetics.

u/pkopin r/C_Programming • Mentions

On “I'm Creating An IDE w/ Pure Win32”

How's it been going, still doing win32? I just got into it myself a few months ago and I'm working on making an editor using immediate mode gui style inspired by Casey Muratori [video And Ryan Fleury https://www.dgtlgrove.com/p/ui-part-1-the-interaction-medium Ryan made rad debugger and has great ideas on immediate mode gui in C. I'm using Odin myself but it's similar to C and uses same win32 api's through FFI. I'm also doing using direct3d11 to render all my ui widgets instead of the GDI