Gallery: Post your screenshots / code here (PART 23)
This is Part 23, I am splitting issues to reduce loading times and avoid github collapsing messages.
Browse all threads and find latest one to post to using the gallery label.
You can post your screenshots/links here!
Also see: Software using dear imgui (you can help complete the list!) Also see: Useful Extension (I will add any self-reported instruction to that page. Please provide a 500x250 thumbnail!)
Not the greatest but I love imgui a lot and am always looking to improve here is Dolphin Emulator running on an Xbox One/Series X|S Console with a imgui frontend
(this one has an issue with game covers I need to fix lol)
https://github.com/user-attachments/assets/577abbe2-9cce-47df-bdfc-2118475184ea
Here is some WIP of the modelling tools I make for my engine.
IMGUI as Lua extension in BeamNG.drive using Cpp/Lua binding, for a graphics mod.
(Some stuff omitted here. Project is source available on codeberg, anyways.)
local buttons = {
function()
widgets.textCenteredLocal("Configure")
if im.IsItemHovered() then
im.SetMouseCursor(im.MouseCursor_Hand)
if im.IsMouseClicked(0) then
if not zeit_rcUI_settings.showUI then zeit_rcUI_settings.toggleUI() end
zeit_rcUI_settings.setScrollTo("Interface")
queueUIToggle = true
end
end
end,
function()
widgets.textCenteredLocal("Reload Profile")
if im.IsItemHovered() then
im.SetMouseCursor(im.MouseCursor_Hand)
if im.IsMouseClicked(0) then
zeit_rcMain.loadProfile(zeit_rcMain.currentProfile)
queueUIToggle = true
end
end
end,
function()
widgets.textCenteredLocal("Reload Lua")
if im.IsItemHovered() then
im.SetMouseCursor(im.MouseCursor_Hand)
if im.IsMouseClicked(0) then
extensions.reload("zeit_rcMain")
queueUIToggle = true
end
end
end
}
local function renderEntry(entry)
entry = windows[entries[entry]]
if entry.texObj then
local textSize = im.GetTextLineHeight()
local imageDimensions = im.ImVec2(entrySize.x/2, entrySize.y/2)
local windowSize = im.GetWindowSize()
im.SetCursorPos(im.ImVec2(windowSize.x/2-imageDimensions.x/2, windowSize.y/2-imageDimensions.y/2-textSize/2))
im.Image(entry.texObj.texId, imageDimensions)
end
widgets.textCentered(entry.name or entry.id)
end
local function render(dt)
setBgAlpha = getCurrentLevelIdentifier() ~= nil
if setBgAlpha then
im.SetNextWindowBgAlpha(toggledByButton and 1 or 0.5)
end
local mainPort = im.GetMainViewport()
local pos = im.ImVec2(
mainPort.Pos.x + (mainPort.Size.x/2),
mainPort.Pos.y + (mainPort.Size.y/2))
im.SetNextWindowPos(pos, nil, im.ImVec2(0.5, 0.5))
im.PushStyleVar1(im.StyleVar_ChildRounding, 10)
im.PushStyleVar1(im.StyleVar_ChildBorderSize, 3)
im.SetNextWindowFocus()
im.Begin("Zeit's Graphics Utils: Window Selector", nil, im.WindowFlags_NoTitleBar + im.WindowFlags_NoResize + im.WindowFlags_NoDocking + im.WindowFlags_NoScrollWithMouse + im.WindowFlags_AlwaysAutoResize)
im.PushFont3("cairo_bold")
widgets.textCentered("Zeit's Graphics Utils: Window Selector")
local index = 1
local rows = math.ceil(#entries/lineWrap)
for row = 0, rows-1 do
local _lineWrap = math.min(#entries-lineWrap*row, lineWrap)
local lineWidth = _lineWrap*entrySize.x+style.ItemSpacing.x*(_lineWrap-1)
im.SetCursorPosX(style.FramePadding.x/2 + im.GetWindowWidth()/2 - lineWidth/2)
for column=1, _lineWrap do
if setBgAlpha then
im.SetNextWindowBgAlpha(0.6)
end
if index == selectedItem then
im.PushStyleColor1(im.Col_Border, im.GetColorU321(im.Col_Button))
im.PushStyleColor1(im.Col_ChildBg, im.GetColorU321(im.Col_SliderGrab))
end
im.BeginChild1("##zeitRenderSettingsWindowSelector"..entries[index]..index, entrySize, true)
renderEntry(index)
if im.IsWindowHovered() then
im.SetMouseCursor(im.MouseCursor_Hand)
if im.IsMouseClicked(0) then
launchWindow(index)
queueUIToggle = true
end
end
im.EndChild()
if index == selectedItem then
im.PopStyleColor()
im.PopStyleColor()
end
if column ~= _lineWrap then
im.SameLine()
end
index = index + 1
end
end
if zeit_rcUI_settings then
im.PushStyleVar1(im.StyleVar_Alpha, 0.35)
local tableColumns = math.min(#buttons, lineWrap)
local tblAmount = #buttons%tableColumns
local tableWidths = im.GetContentRegionAvailWidth()*0.75+(style.ColumnsMinSpacing*5*tableColumns)
local buttonIndex = 1
for tableIndex=0, tblAmount do
local buttonCount = math.min(#buttons-lineWrap*tableIndex, lineWrap)
im.SetCursorPosX(im.GetCursorPosX()+im.GetContentRegionAvailWidth()/2-tableWidths/2)
if im.BeginTable("##zeitRenderSettingsSelectUtilButtons"..tableIndex, buttonCount, im.TableFlags_SizingStretchSame, im.ImVec2(tableWidths, im.GetTextLineHeight())) then
for _=1, buttonCount do
im.TableNextColumn()
buttons[buttonIndex]()
buttonIndex = buttonIndex + 1
end
im.EndTable()
end
end
im.PopStyleVar()
end
im.PopFont()
widgets.blurUpdate("zeitRenderSettingsWindowSelector")
im.End()
im.PopStyleVar()
im.PopStyleVar()
end
osx port of wallpaper engine, along with a drop of liquid glass
Marlin (3-D Printing Firmware) simulator https://marlinfw.org https://bsky.app/profile/marlinfw.org/post/3lzwlubcm2s2c
https://github.com/user-attachments/assets/2bd20163-f283-46c7-9816-72c30266b863
Not sure if anyone mentioned it but looks like Havok is using ImGui for their visual debugger
https://www.havok.com/blog/havok-2025-1-release-highlights/
Fiatlight automates UI generation for functions and structured data, making prototyping faster and easier, for Python.
See full demo video or intro tutorial
A Cheat Engine clone using ImGui
ImGui Arc Progress Bar: An elegant arc progress bar widget. Useful for audio plugin developers, for example, add a simple peak meter around a knob.

https://corepto.io/ "Proofread MusicXML scores using 100+ editorial rules. Identify and resolve issues directly in your browser, or bookmark them for later review. Customize each check to suit your needs. Monitor your progress with our commit system."
I have posted about my custom Odin backends here before. What's new is that the software rasterizer is now pretty much pixel perfect compared to the Direct3D backend. What you can see in the video is the software rasterizer in action (performance can still be improved).
https://github.com/user-attachments/assets/9d421e1c-0ce1-4fb6-b368-72bcd8a3341d
What's new is that the software rasterizer is now pretty much pixel perfect compared to the Direct3D backend. What you can see in the video is the software rasterizer in action (performance can still be improved).
Not sure if that's relevant to you but FYI offers a software rasterizer by using the D3D_DRIVER_TYPE_WARP hardware. On my hardware (different than yours) I get approximately ~6 ms/frame for a scene similar to yours (vs 0.1 ms/frame with HW driver).
Not sure if that's relevant to you but FYI offers a software rasterizer by using the D3D_DRIVER_TYPE_WARP hardware. On my hardware (different than yours) I get approximately ~6 ms/frame for a scene similar to yours (vs 0.1 ms/frame with HW driver).
Oh yeah sure, I know of WARP. This is really more of an experiment/challenge and MAYBE a potential option for anyone in need of a software fallback on a system without graphics card or D3D. EDIT: I guess in theroy it should also be possible to be more performant than WARP since for DearImgui it's not necessary to emulate the entire graphics pipepline. Would be an interesting challenge as well...
Today's Age of Mythology patch log shows DearImgui in its modding UI: https://www.ageofempires.com/news/age-of-mythology-retold-update-18-50572/
My Engine
Hi, I'm the maker of ImReflect, and I want to thank @ocornut for mentioning my repo on the Useful-Extensions wiki!
ImReflect is part of my university project and is my first serious attempt at an open-source repo. When I drafted my project plan for my teachers, I listed "getting mentioned on the official ImGui repo" as my ultimate goal. I'm thrilled to say we've achieved it, and I'm sure my grade and teachers will be equally excited 😁
I read that you'd like to have images of the extensions. I've downscaled the repo image. While the resolution is lower than ideal, I think it gets the point across:
Thank you again for the feature! It's incredibly motivating and also strengthens my portfolio. Having this mention provides a nice conversation piece when looking for an internship this year.
Ark VCS Version Control For Games "Ark is a new version control system built from the ground up for performance and ease of use. It comes as an alternative to Perforce and Git focusing specifically on being able to support big complex projects with binary files, such as the case in video games." https://ark-vcs.com/
My custom game engine uses Dear ImGui extensively for all editor utilities. I’ve spent a lot of time tuning the visuals and interaction model to strike a balance between clarity and flexibility, and I’m really happy with where it’s landed.
ImGui’s API has been a blast to explore; it’s remarkably powerful and expressive once you lean into its immediate-mode design.
https://github.com/MrDrElliot/LuminaEngine
Screenshots:
WARCANA "is a fantasy inspired base defence, RTS game with a deck-building mechanic. Face hundreds of thousands of unrelenting monsters in a battle royale between 30 other mighty magicians." https://store.steampowered.com/app/2022930/WARCANA/
Tooling:
Sighting in APEX Legends update video: https://x.com/PlayApex/status/1980652101635051635
I needed better rich-text support for a project of mine. More than imgui_markdown could achieve. I stumbled about a few old ImGui issues that mentioned litehtml, so I implemented the functions that litehtml need to render HTML/CSS using ImGui DrawList.
Works fairly well and covers all my use-cases. In case anyone needs something similar I quickly threw it together as a small library: ImHTML
Could be useful for more extensive in-program manual / documentation stuff.
https://github.com/user-attachments/assets/86ce30b5-3d5d-41cb-a936-f631fb20ebcd
I'm using it to create a fake in-game web browser experience in a game I'm working on:
https://github.com/user-attachments/assets/85852ea2-465a-4390-b2d1-2817c6dfff33
I have created an application for a Russian-speaking audience for a private secure connection. And I want to share screenshots of how it looks, but it's not that interesting, the most interesting thing is how it looks on a push-button Android with a screen size of 480x320 pixels!
Windows version
Android version
It's also an Android version, but it's running on a small 480x320 pixel device
I am a member of the development team for Community Shaders, a Graphics Overhaul mod for TESV Skyrim: Special Edition. We use Dear ImGui for the general user interface, and control all features and settings through it. The last few months have brought a lot of visual changes, introducing font-choosing, icon support, more granular control, etc.
Here are two examples of some of our themes.
I've created a simple Python IDE for teaching purposes.. https://github.com/CU-Production/MiniPythonIDE
Using ImGui for my multi-platform DRM-Free audio plugins for my new company TheOnlyWaveforms. So far the version of ImGui I use is un-patched, with custom components implemented separately (such as the Knobs).
MMT / Market Monkey Terminal https://marketmonkeyterminal.com/
imgui change arrow style
JSONL Viewer Pro
https://iotdatasystems.gumroad.com/l/jsonlviewerpro_win