imgui icon indicating copy to clipboard operation
imgui copied to clipboard

Gallery: Post your screenshots / code here (PART 23)

Open ocornut opened this issue 3 months ago • 37 comments

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!)

ocornut avatar Sep 17 '25 16:09 ocornut

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

Image Image

(this one has an issue with game covers I need to fix lol) Image

SternXD avatar Sep 17 '25 18:09 SternXD

https://github.com/user-attachments/assets/577abbe2-9cce-47df-bdfc-2118475184ea

Here is some WIP of the modelling tools I make for my engine.

ongamex avatar Sep 17 '25 22:09 ongamex

IMGUI as Lua extension in BeamNG.drive using Cpp/Lua binding, for a graphics mod.

Image

(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

DaddelZeit avatar Sep 23 '25 19:09 DaddelZeit

Image

osx port of wallpaper engine, along with a drop of liquid glass

rep-stosd avatar Sep 28 '25 16:09 rep-stosd

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

ocornut avatar Sep 29 '25 14:09 ocornut

Not sure if anyone mentioned it but looks like Havok is using ImGui for their visual debugger

Image

https://www.havok.com/blog/havok-2025-1-release-highlights/

cairnc avatar Sep 29 '25 15:09 cairnc

Fiatlight automates UI generation for functions and structured data, making prototyping faster and easier, for Python.

Image

See full demo video or intro tutorial

pthom avatar Oct 03 '25 08:10 pthom

A Cheat Engine clone using ImGui

Image

sten-code avatar Oct 04 '25 20:10 sten-code

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.

Screenshot

AnClark avatar Oct 07 '25 09:10 AnClark

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."

Image

ocornut avatar Oct 07 '25 15:10 ocornut

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

alektron avatar Oct 10 '25 16:10 alektron

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).

ocornut avatar Oct 10 '25 16:10 ocornut

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...

alektron avatar Oct 10 '25 17:10 alektron

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/

sschoener avatar Oct 10 '25 17:10 sschoener

My Engine Image

Daethalus avatar Oct 15 '25 16:10 Daethalus

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:

Image

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.

Sven-vh avatar Oct 16 '25 17:10 Sven-vh

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/

Image

ocornut avatar Oct 20 '25 22:10 ocornut

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:

MrDrElliot avatar Oct 21 '25 13:10 MrDrElliot

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:

Image

Image

Image

ocornut avatar Oct 21 '25 14:10 ocornut

Sighting in APEX Legends update video: https://x.com/PlayApex/status/1980652101635051635

Image

ocornut avatar Oct 23 '25 12:10 ocornut

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

BigJk avatar Nov 03 '25 18:11 BigJk

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

Image Image

Image

Android version

Image Image Image

It's also an Android version, but it's running on a small 480x320 pixel device

Image Image Image

VadimBoev avatar Nov 05 '25 08:11 VadimBoev

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.

Image Image

davo0411 avatar Nov 06 '25 05:11 davo0411

Image

I've created a simple Python IDE for teaching purposes.. https://github.com/CU-Production/MiniPythonIDE

THISISAGOODNAME avatar Nov 09 '25 06:11 THISISAGOODNAME

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).

Image

TheOnlyJoey avatar Nov 09 '25 16:11 TheOnlyJoey

MMT / Market Monkey Terminal https://marketmonkeyterminal.com/

Image

Image

Image

ocornut avatar Nov 11 '25 17:11 ocornut

Debug tools on Ymir, my Sega Saturn emulator.

Image Image Image Image Image Image Image Image Image Image

StrikerX3 avatar Nov 13 '25 12:11 StrikerX3

Debug widgets on my PlayStation 2 emulator, Iris

Image Image

allkern avatar Nov 13 '25 16:11 allkern

imgui change arrow style

Image Image

straywriter avatar Nov 16 '25 02:11 straywriter

JSONL Viewer Pro https://iotdatasystems.gumroad.com/l/jsonlviewerpro_win Image

ocornut avatar Nov 17 '25 15:11 ocornut