Package: imgui-bundle
Note: You can find a more complete version of this document in theofficial documentation sitefor
Dear ImGui Bundle.Dear ImGui Bundle: easily create ImGui applications in Python and C++.
Batteries included!Click on the logo for a complete interactive demonstration!IntroductionDear ImGui BundleDear ImGui Bundleis a
comprehensive bundle forDear ImGui,
featuring various powerful libraries from its ecosystem. Designed to
facilitate the creation of applications in C++ and Python across
Windows, macOS, Linux, iOS, Android, and emscripten (Web apps), it is
ideal for application developers, and researchers eager to dive into GUI
development with ease and efficiency. This bundle simplifies the
process, allowing you to focus on the creative aspects of your projects.Interactive manual & demo in one click!Click on the animated demonstration below to launch the fully
interactive demonstration.Dear ImGui Bundle interactive demoThis demonstration is also an interactive manual, similar to the onlineImGui
ManualBatteries includedDear ImGui Bundle includes the following libraries, which are available
in C++andin Python:Dear ImGui: Bloat-free
Graphical User interface for C++ with minimal dependenciesImGui Test
Engine: Dear ImGui Tests & Automation EngineHello ImGui:
cross-platform Gui apps with the simplicity of a "Hello World"
appImPlot: Immediate Mode
PlottingImGuizmo:
Immediate mode 3D gizmo for scene editing and other controls based on
Dear ImGuiImGuiColorTextEdit:
Colorizing text editor for ImGuiimgui-node-editor:
Node Editor built using Dear ImGuiimgui_md: Markdown
renderer for Dear ImGui using MD4C parserImmVision: Immediate
image debugger and insightsNanoVG: Antialiased 2D
vector drawing library on top of OpenGL for UI and
visualizationsimgui_tex_inspect:
A texture inspector tool for Dear ImGuiImFileDialog: A
file dialog library for Dear ImGuiportable-file-dialogsOS nativefile dialogs library (C++11, single-header)imgui-knobs: Knobs
widgets for ImGuiimspinner: Set of nice
spinners for imguiimgui_toggle: A toggle
switch widget for Dear ImGuiImCoolBar: A Cool bar
for Dear ImGuiimgui-command-palette:
A Sublime Text or VSCode style command palette in ImGuiA big thank you to their authors for their awesome work!Easily port your code between python and C++The python bindings are autogenerated via an advanced generator (so that
keeping them up to date is easy), and closely mirror the original C++
API, with fully typed bindings.The original code documentation is meticulously kept inside the python
stubs. See for example the documentation forimgui,implot,
andhello
imguiThanks to this, code completion in your favorite python IDE works like a
charm, and porting code between Python and C++ becomes easy.GPT can help you translate between C++ and Python: seethis
conversationwhere GPT4 was used to translate code and summarize the differences
between the C++ and Python APIs.Support the projectDear ImGui Bundle is a free and open-source project, and its development
and maintenance require considerable efforts.If you find it valuable for your work – especially in a commercial
enterprise or a research setting – please consider supporting its
development bymaking a
donation.
Your contributions are greatly appreciated!For commercial users seeking tailored support or specific enhancements,
please contact the author by email.ContributeQuality contributions are always welcome! If you’re interested in
contributing to the project, whether through code, ideas, or feedback,
please refer to thedevelopment
documentation.LicenseDear ImGui Bundle is licensed under theMIT
LicenseBuild and install instructionsInstall for PythonInstall from pypipip install imgui-bundle
pip install opencv-contrib-pythonin order to run the immvision module, install opencv-python or
opencv-contrib-pythonNote: under windows, you might need to installmsvc
redist.Install from source:git clone https://github.com/pthom/imgui_bundle.git
cd imgui_bundle
git submodule update --init --recursive
pip install -v .
pip install opencv-contrib-pythonSince there are lots of submodules, this might take a few minutesThe build process might take up to 5 minutesRun the python demoSimply rundemo_imgui_bundle.The source for the demos can be found insidebindings/imgui_bundle/demos_python.Considerdemo_imgui_bundleas an always available manual for Dear
ImGui Bundle with lots of examples and related code source.Install for C++Integrate Dear ImGui Bundle in your own project in 5 minutesThe easiest way to use Dear ImGui Bundle in an external project is to
use the template available athttps://github.com/pthom/imgui_bundle_template.This template includes everything you need to set up your own project.Build from sourceIf you choose to clone this repo, follow these instructions:git clone https://github.com/pthom/imgui_bundle.git
cd imgui_bundle
git submodule update --init --recursive
mkdir build
cd build
cmake .. -DIMMVISION_FETCH_OPENCV=ON
make -jSince there are lots of submodules, this might take a few minutesThe flag-DIMMVISION_FETCH_OPENCV=ONis optional. If set, a
minimal version of OpenCV will be downloaded a compiled at this
stage (this might require a few minutes)Theimmvisionmodule will only be built if OpenCV can be found.
Otherwise, it will be ignored, and no error will be emitted.If you have an existing OpenCV install, set its path via:cmake .. -DOpenCV_DIR=/.../path/to/OpenCVConfig.cmakeRun the C++ demoIf you built ImGuiBundle from source, Simply runbuild/bin/demo_imgui_bundle.The source for the demos can be found insidebindings/imgui_bundle/demos_cpp.Considerdemo_imgui_bundleas a manual with lots of examples and
related code source. It is alwaysavailable
onlineClosing wordsWho is this project forAs mentioned in the intro,Dear ImGui Bundleis a
comprehensive bundle forDear ImGui,
featuring various powerful libraries from its ecosystem. Designed to
facilitate the creation of applications in C++ and Python across
Windows, macOS, Linux, iOS, Android, and emscripten (Web apps), it is
ideal for application developers, and researchers eager to dive into GUI
development with ease and efficiency. This bundle simplifies the
process, allowing you to focus on the creative aspects of your projects.Dear ImGui Bundle aims to make applications prototyping fast and easy,
in a multiplatform / multi-tooling context. The intent is to reduce the
time between an idea and a first GUI prototype down to almost zero.It is well adapted fordevelopers and researchers who want to switch easily between and
research and development environment by facilitating the port of
research artifactsbeginners and developers who want to quickly develop an application
without learning a GUI frameworkWho is this projectnotforYou should prefer a more complete framework (such as Qt for example) if
your intent is to build a fully fledged application, with support for
internationalization, advanced styling, etc.Also, the library makes no guarantee of ABI stability, and its API is
opened to slight adaptations and breaking changes if they are found to
make the overall usage better and/or safer.AcknowledgmentsDear ImGui Bundle would not be possible without the work of the authors
of "Dear ImGui", and especiallyOmar
Cornut.It also includes a lot of other projects, and I’d like to thank their
authors for their awesome work!A particular mention forEvan Pezent(author
of ImPlot),Cédric Guillemet(author of ImGuizmo),Balázs
Jákó(author of
ImGuiColorTextEdit), andMichał Cichoń(author of imgui-node-editor), andDmitry
Mekhontsev(author of imgui-md),Andy
Borrel(author of imgui-tex-inspect,
another image debugging tool, which I discovered long after having
developed immvision).This doc was built usingAsciidoc.Immvision was inspired byThe Image
Debugger, by Bill Baxter.LicenseThe MIT License (MIT)Copyright (c) 2021-2024 Pascal ThometPermission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.Alternativespyimguiprovides
battle-tested comprehensive python bindings for ImGui. I worked with
this project a lot, and contributed a bit to it. In the end, I had to
develop a separate project, in order to be able to add auto-generated
and auto-documented python modules.Dear PyGui(repository) provides python
bindings for ImGui with a lot of addons, and a more pythonesque API,
which makes it perhaps more suited for Python only projects.About the authorDear ImGui Bundle is developed by Pascal Thomet. I am reachable on myGithub page. I sometimesblog. There is aplaylistrelated to ImGui Bundle on YouTube.I have a past in computer vision, and a lot of experience in the
trenches between development and research teams; and I found ImGui to be
a nice way to reduce the delay between a research prototype and its use
in production code.I also have an inclination for self documenting code, and the doc you
are reading was a way to explore new ways to document projects.How is Dear ImGui Bundle developedThe development of the initial version of Dear ImGui Bundle took about
one year at full time.The bindings are auto-generated thanks to an advanced parser, so that
they are easy to keep up to date.Please be tolerant if you find issues! Dear ImGui Bundle is developed
for free, under a very permissive license, by one main author (and most
of its API comes from external libraries).If you need consulting about this library or about the bindings
generator in the context of a commercial project, please contact me by
email.Contributions are welcome!HistoryThree of my past projects gave me the idea to develop this library.ImGui
Manual,
an interactive manual for Dear ImGui, which I developed in June 2020implot demowhich I developed in 2020.imgui_datascience, a
python package I developed in 2018 for image analysis and debugging.
Its successor is immvision.Developments for Dear ImGui Bundle and its related automatic binding
generator began in january 2022.