ocornut/imgui

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

ocornut opened this issue · 59 comments

This is Part 9, 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.

Also see: Software using dear imgui (you can help complete the list!)

You can post your screenshots here!

The "Atlas" 64k intro by monad & Macau Exports used dear imgui for its tooling, and they just aired a lengthy video going through some of their process to make the demo happen. If you are interested:

Atlas 64k Graphics Breakdown - Demoscene Stream (2019/05/01)
https://www.youtube.com/watch?v=Y3d8jR_IwYw

Intro infos/downloads on Pouet.net
http://www.pouet.net/prod.php?which=80996

Atlas64k

cpdt commented

Here's a screenshot of the aforementioned tool with a bit more of the Imgui parts visible (and without my ugly face in the way :) )

Thanks for the wonderful library @ocornut! It was invaluable :)

image

I have been working on this for a little while, and I'm now happy enough with the current results to start sharing my work.

I've been working on pcsx-redux, yet another pcsx fork. I'm mainly aiming at doing a debugging tool, of course using ImGui, and here's my current results so far:

image

All this code is currently available in my debugger branch.

We are working on OpenSage, which is an opensource reimplementation of the original SAGE Engine (EA C&C series, BFME series) in C#. For this we use all the original datasets.
We use ImGui for our developer mode, which gives us insight about what's going on inside the engine:
imgui
The asset browser can display literarlly anything from 3D models, textures and sounds :)
Thanks for the wonderful library @ocornut and the excellent .NET wrapper @mellinoe

I've been doing a game in my spare time and ImGui has been very helpful.

acImage_2019-05-07_15-01-32

acImage_2019-05-07_15-05-08

The game uses SVG for the maps and most of the graphics. I have written a tool to help me debug de svg system.

acImage_2019-05-07_15-27-36

A dialog/node editor (video):

image

Locale and WIP level editor (video):

Screenshot from 2019-05-15 10-49-56
Screenshot from 2019-05-15 10-50-16

Really enjoying ImGui, it's really fast to work with, both of those tools took just a few hours to make :)

graphite_imgui_docking

Graphite 3 - 1.6.12: using Imgui 1.7 with docking branch (video recorded with 5 fps to keep file size small, interaction is much smoother than that !)

Download: https://gforge.inria.fr/frs/?group_id=1465

BigJk commented

Just spotted ImGUI in a showcase of a new Path Of Exile expansion. It's a ARPG Game developed by Grinding Gear Games.

PoE

https://www.youtube.com/watch?v=7F2ofmsTgqQ

From "NVIDIAOmniverse viewer"

We're having fun combining #PixarUSD with real-time physics and real-time ray tracing in our #NVIDIAOmniverse viewer. Here we have some soft body objects, balloons, and we are simulating what happens when you change pressure and gravity.

NVIDIAOmniverse viewer

Video
https://twitter.com/NVBackchannel/status/1131712329446506497

Mp4
NVIDIAOmniverse viewer.zip

Now that the software rasteriser is running nice and fast on the ESP32 (down to 4ms raster time!) I decided to actually use it for something!

Here it is with a "VR" IMU (compass+gyro+accelerometer):

https://i.imgur.com/4N7zfhs.gifv

https://www.youtube.com/watch?v=ZWPzD22GPSs

F.E.I.S. is an unofficial custom chart editor for jubeat, a rhythm game by Konami.
It would probably never have existed if it wasn't for dear imgui.

68747470733a2f2f692e696d6775722e636f6d2f5a3461726171492e706e67

in action :
https://twitter.com/Stepland/status/1119735054467502080
https://twitter.com/Stepland/status/1094253515072000000
https://twitter.com/Stepland/status/1085716346615287810

on github :
https://github.com/Stepland/F.E.I.S.

@Stepland Is there a way to play custom Jubeat charts? I didn't know the game existed outside of game centres.

3 OS windows with ImGui 171 and GLUT
c++14 + STL. For each window one ImGui context, one GLUT context and one trackball context
for roll, move, zoom and pan.
kerr

Just for fun I port box2d-lite samples to Emscripten platform and now your can try it from your browser :-)

box2d-lite-samples

I have been recently working on automating the process of schematic part generation for kicad. I have created KiSymGen as a means of creating uniform symbols for kicad schematics.

Capture

Kindly find my fork of imgui https://github.com/pixellon/imgui

Physically-correct renderer for the web:
From https://twitter.com/hb3p8/status/1140573137815384065

"We have released http://lighttracer.org ! It is GPU physically-correct renderer for web. Import your OBJ model, configure the scene, and save the rendering result. Model from https://grabcad.com/library/10-cylinder-double-row-sleeve-valve-radial-engine-1 … RTs appreciated!"

D9QhNnQWwAY5wq5 jpg orig
D9Uy5xnWkAAOVsY jpg orig

ifstile_wasm

IFStile is a cross-platform (Windows, Mac, Linux, WebAssembly) freeware program that can:

  • build any affine directed graph iterated function system (IFS) in the Euclidean space of arbitrary dimension (as 2D or 3D section)
  • fully automatically find interesting fractal shapes, rep-tiles, multi-tiles, irreptiles, carpets, dragons, etc
  • extract boundary of self-affine tiles as directed graph IFS
  • compute dimension of the boundary of self-affine tiles (numerically and analytically)
  • export and import Fractint IFS format, export Apophysis .flame format
  • effectively zoom IFS fractals
  • render high resolution images (with batch rendering)
  • render keyframe animation
  • create and save 3D mesh

JSON_1

I was just being tired of not having a proper offline JSON editor. :)

EDIT:
JSON_2

Oh, and customizable colors! :D

Karnaugh Studio is a free graphical editor for truth function design and minimization using the Karnaugh mapping method.

screenshot-1

ImGui running in the web browser with Web Assembly. It looks like ImGui has its own GLFW helper now so probably don't need the impl files that I made for this.

Courtesy of https://twitter.com/mmalex/status/1130486392352645122
Video showcasing fancy audio synth prototype for Dreams
Blurry screenshot:
dreams synth

Here is one of my projects for the old game KnightOnline using ImGui and Qt DirectX Widget:
YouTube Link

KnightOnline_Studio

SHADERed uses Dear ImGUI's docking branch:

IMG2

@dfranx Very nice! Are you using the same style as "CorporateGrey" posted in #707 ?
I should probably add this style among default ones. Still need to sort out how to deal with style with sRGB vs Linear blending.

@ocornut Thank you! Yes, I am using that exact theme. It looks so cool and professional. I think it would be a great addition to the already built-in themes.

IFStile compiled to multithreaded WebAssembly and running in Chrome for Android!
Toolbar can be scrolled independently :)
https://ifstile.com/wasm
ifstile_android

I wanted to explore Nim, so I created a quick chip-8 emulator and used imgui for the UI.

@pplux told me to post here, so here it is:

mu

@ocornut, that is really awesome!!! :) Congrats!

https://www.youtube.com/watch?v=rBuzfMTuWQc

Full Samsung Experience UI made with ImGUI
Screenshot_2

Did you craft it?

dear ImGui seems to be heavily tweaked and I don't speak about the visual aspect only.
I'm impressed with animations (panel sliding, touch animation, etc...) not part of dear ImGui

Are some parts of it open source?

I posted the code for the animated toggle in a thread here (#1537 (comment)) and animating the position of child window is easy to do.

It is very nice and aligns with my general vision to promote the creation and sharing of custom widgets. The current widgets that imgui provides, in the future should merely be considered as samples, what’s important are the reusable low-levels parts of dear imgui. When internals are stable and mature enough we will be able to push this direction. Right now they aren’t and there’s too many remaining low level work to do.

If I had the resources I would start experimenting with vastly different sets of widgets, very flavored and shipped in their own separate cpp file as an extension. Maybe next year. That would be useful, even as an experiment, to improve internals toward easier sharing of code.

I just added my own components by creating a copy of original ones and editing it. I love how dear ImGui works, popups, models, drawing textures, I've learnt too much things by looking into the rendering stuff. Hardest thing for me to do was the hue circle.

For animations, I made some functions with chrono because I didn't want to add lot of timing codes to every widget and it would look ugly code wise.

This can give some idea
Screenshot_1

Thanks for the snippet, I get the idea for the ripple effect.

An industrial application used dear-ImGUI,a scheduling system to control several robot and other devices,
so fast & cool, and from now on, say goodbye to MFC, thanks Dear-ImGUI.
github01

Here's my first C++ app in the making, a very basic music tracker:
tracker
I couldn't even imagine writing a single line in C/C++, until I tried the GML bindings for Dear ImGui and writing a test project in GameMaker. I was immediately hooked, and after my son set me up with the SFML backend, I finally made the move to learn a bit of C++. It may sound like I'm exaggerating but for older people like me who only made some very minor programming over the years with the "easy" languages, that was a milestone!
So Omar, I can't thank you enough :)

I've been testing ImGui as an in-game element (besides debugging help). I have this proof of concept that I think can be interesting. Here is a ImGui metrics window inside a game computer screen that is integrated in the game.

ImGui_ingame

Thanks for ImGui, is really easy to use and very powerful.

Thank you all for posting those!
Your story @immortalx74 made my day, happy to hear!!

After half a year of struggling with JavaFX i checked out Dear ImGui to see whether it suits my suitcase better, and was able to implement almost all feature the program had until then in ImGui within a week. ImGui is genuinely amazing and I've just launched my dream-project on steam for free in open-beta.

It's a somewhat unusual use-case for ImGui I presume but it works flawlessly

The project is a tool to keep track and manage data, the usecase is for people who build/create their own world or play pen&paper (dungeons&dragons or similar) and struggle to keep track of their campaigns or things in their worlds (like myself)
image

image
ImGui interface for my global illumination playground profiler. I made a custom widget to render task performance breakdown and legend for it, it was pretty enjoyable.

Recently spotted:

Polyscope
http://polyscope.run/
"Polyscope is a C++ viewer and user interface for the rapid prototyping and debugging of geometric algorithms in 3D geometry processing, scientific computing, and computer graphics/vision. The lofty objective of Polyscope is to offer a useful visual interface to your data via a single line of code."

polyscope

nnview, neural network viewer
https://github.com/lighttransport/nnview
See gif https://twitter.com/syoyo/status/1152559402827649025
nnview

Robotic Systems Lab (Legged Robotics) tools
Raisim: A physics engine for robotics and AI research
RaisimOgre: Visualizer for Raisim
RaisimGym: RL examples using Raisim
https://github.com/leggedrobotics/raisimLib
https://github.com/leggedrobotics/raisimOgre
https://github.com/leggedrobotics/raisimGym

Capture1
Capture

Обновление программы "Драйв Мегаполис" для автотренажеров ОТКВ, Автотренер, Автотренер+, Камаз
http://www.npp-trener.ru/
http://auto-trener.ru/
Something related to NppTrener, a driving simulator used in Russia and Ukraine?
https://www.youtube.com/watch?v=loqRsUlOH4g

npp-trener

a remote desktop viewer using imgui, not completed yet.
https://github.com/atmgnd/debut
d3

BigJk commented

Currently working on using ImGui as react (yes the web thing) renderer to write native applications with javascript. I use a small and fast embedded javascript engine (written in c) to run react (and any other javascript) and let ImGui draw the elements and handling input. The small test app is only a few megabyte, runs at 60 fps without much cpu usage and needs about ~50mb RAM. My goal is to make all the default components and settings available on the react side and also make all the internal draw functions of ImGui available so that you can write fully custom components in javascript instead of just changing sizes and style vars.

react-imgui

Video: https://streamable.com/9xe7h (all logic & data comes from react)

@Iniquitatis do you have a source for the nice skin or even the JSON editor?

An industrial application for inspecting water pipes using an ultrasonic scanner.
minipars

It is a rewrite-in-progress of an old system that was written in Java and was really slow and clunky to use. I've had nothing but fun making the UI in ImGui, and the prototyping speed it allows is astonishing!

Beautiful shot!
Btw everyone: @soulthreads release their Plot widget here:
https://github.com/soulthreads/imgui-plot
also linking to #2747

image

Writing a Minecraft seed preview / NBT editor / possibly world editor. I hope to release it more publicly in a few months but for now the source is located here: https://github.com/mnurzia/mc-tool

I made a custom theme based off of Visual Studio's Dark color scheme. Font used is Segoe UI 16pt. The FreeType rasterizer helps it look a lot like the real theme. Here's the theme:

ImGuiStyle& style = ImGui::GetStyle();
style.TabRounding = 0.0f;
style.FrameBorderSize = 1.0f;
style.ScrollbarRounding = 0.0f;
style.ScrollbarSize = 10.0f;
ImVec4* colors = ImGui::GetStyle().Colors;
colors[ImGuiCol_Text] = ImVec4(0.95f, 0.95f, 0.95f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.12f, 0.12f, 0.12f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.04f, 0.04f, 0.04f, 0.50f);
colors[ImGuiCol_PopupBg] = ImVec4(0.12f, 0.12f, 0.12f, 0.94f);
colors[ImGuiCol_Border] = ImVec4(0.25f, 0.25f, 0.27f, 0.50f);
colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
colors[ImGuiCol_FrameBg] = ImVec4(0.20f, 0.20f, 0.22f, 0.50f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.25f, 0.25f, 0.27f, 0.75f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.30f, 0.30f, 0.33f, 1.00f);
colors[ImGuiCol_TitleBg] = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.04f, 0.04f, 0.04f, 0.75f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.18f, 0.18f, 0.19f, 1.00f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.24f, 0.24f, 0.26f, 0.75f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.41f, 0.41f, 0.41f, 0.75f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.62f, 0.62f, 0.62f, 0.75f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.94f, 0.92f, 0.94f, 0.75f);
colors[ImGuiCol_CheckMark] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.41f, 0.41f, 0.41f, 0.75f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.62f, 0.62f, 0.62f, 0.75f);
colors[ImGuiCol_Button] = ImVec4(0.20f, 0.20f, 0.22f, 1.00f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.25f, 0.25f, 0.27f, 1.00f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.18f, 0.18f, 0.19f, 1.00f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.25f, 0.25f, 0.27f, 1.00f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_Separator] = ImVec4(0.25f, 0.25f, 0.27f, 1.00f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.62f, 0.62f, 0.62f, 1.00f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.30f, 0.30f, 0.33f, 0.75f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.41f, 0.41f, 0.41f, 0.75f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.62f, 0.62f, 0.62f, 0.75f);
colors[ImGuiCol_Tab] = ImVec4(0.21f, 0.21f, 0.22f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.37f, 0.37f, 0.39f, 1.00f);
colors[ImGuiCol_TabActive] = ImVec4(0.30f, 0.30f, 0.33f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.12f, 0.12f, 0.12f, 0.97f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.18f, 0.18f, 0.19f, 1.00f);
colors[ImGuiCol_DockingPreview] = ImVec4(0.26f, 0.59f, 0.98f, 0.50f);
colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.20f, 0.20f, 0.20f, 1.00f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.50f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
style.WindowMenuButtonPosition = ImGuiDir_Right;

I hope to have more OS-specific themes for the final release. I'd imagine macOS users wouldn't be happy if they were forced to use a Windows-esque color scheme like this.

I just realized, I should have posted this to the themes thread. My apologies, I hope that the NBT editor / World View widgets are sufficient. To back them up, here's a few videos:

NBT Viewer

Seed Viewer [too large for GitHub, gif is about 20MB]

The seed viewer looks a bit stuttery mainly due to the quality of the gif, but also due to my crappy opengl drivers, the fact that I was running on battery, and especially the fact that I was running a Debug build without SIMD intrinsics. It runs at a cool 60fps consistently when these are remedied.

The bottom "progress bar" shows the status of the thread queue, where all of the bits of world are processed and generated.

The icons I used are a variant of the famous "silkicons" set called "Pastel Icons", they are essentially just more DPI-aware remakes of silkicons.

A simulate Next-Generation Graphic API for ImGui
Capture
https://github.com/metarutaiga/xxImGui
I tried to implement all we known graphic apis, and now it supported Direct3D only.
I will implement others later.
It run with docking / viewport branch imgui.

Additionally, the imgui_freetype.h I implement Bitmap Mode because CJK fonts is not clear in low scale in the LowDPI.

"The Surge 2" by developer Deck 13 had a long tech documentary made
https://www.youtube.com/watch?v=WjPiJn9dkxs&feature=youtu.be

Where some simple debug panels are shown:

The Surge 2 - 01

The Surge 2 - 02

Some tools I've made for my game:

image

A game ui editor using imgui docking branch for cocos2d-x ui design,unfinished.
I think imgui is very suitable for game tools development as it is self-contained and very easy to extend.
Hope it will be more widely used in the future!

Imgui_ui_editor

Spotted on the internet (lost the exact source) edit from https://vvvv.org/blog/more-imgui
screenshot1570156277

geaz commented

During the last four weeks I was implementing a Game Boy emulator and Dear ImGUI was a great help! Thanks for this great library! :)

GGB

@DrJedikiah are you gonna release source for that?

JSON_1

I was just being tired of not having a proper offline JSON editor. :)

EDIT:
JSON_2

Oh, and customizable colors! :D

@Iniquitatis :
Do you have a download link or source code for this that you'd like to share? I've been looking for something just like this for months!

prob
Particles with my "engine", although i have a problem...
It seems that i can't put japanese text in the menu?

// Setting the font:
io.Fonts->AddFontFromFileTTF( font, 16, NULL, io.Fonts->GetGlyphRangesJapanese( ) );
// Setting the title of the menu
if ( ImGui::BeginMenu( u8"Richi あち", false ) )```

Moved to: Screenshots Part 10 #2847