Skip to main content

Dear ImGui Bundle: easily create ImGui applications in Python and C++. Batteries included!

Project description

Note: You can find a more complete version of this document in the official documentation site for Dear ImGui Bundle.

abc

Click the bird for the interactive manual!

Dear ImGui Bundle: an extensive set of ready-to-use widgets and libraries, based on ImGui. Start your first app in 5 lines of code, or less.

Whether you prefer Python or C++, this pack has you covered, with the same ease in both languages.

sources doc manual

Key Features

  • A lot of widgets and libraries: All of Dear ImGui along with a suite of additional libraries for plotting, node editing, markdown rendering, and much more.

  • Always up-to-date: The libraries are always very close to the latest version of Dear ImGui. This is also true for Python developers, since the bindings are automatically generated.

  • Interactive Demos and Documentation: Quickly get started with our interactive manual and demos that showcase the capabilities of the pack. Read or copy-paste the source code (Python and C++) directly from the interactive manual!

  • Cross-platform: Works on Windows, Linux, macOS, iOS, Android, and WebAssembly!

  • Easy to use, yet very powerful: Start your first app in 3 lines. The Immediate Mode GUI (IMGUI) paradigm is simple and powerful, letting you focus on the creative aspects of your projects.

  • Fast: Rendering is done via OpenGL (or any other renderer you choose), through native code.

  • Beautifully documented Python bindings and stubs: The Python bindings stubs reflect the C++ API and documentation, serving as a reference and aiding autocompletion in your IDE. See for example the stubs for imgui, and for hello_imgui (which complete the hello_imgui manual).

For a detailed look at each feature and more information, explore the sections listed in the Table of Contents.

Example code

A hello world example with Dear ImGui Bundle

demo hello

For Python developers

from imgui_bundle import imgui, immapp
immapp.run(gui_function=lambda: imgui.text("Hello, world!"))

For C++ developers

#include "immapp/immapp.h"
#include "imgui.h"
int main() {   ImmApp::Run([] {   ImGui::Text("Hello, world!");   });  }

Interactive Manual

Click on the animated demonstration below to launch the fully interactive manual.

Demo
Dear ImGui Bundle interactive manual

What’s in the pack?

Dear ImGui Bundle includes the following libraries, which are available in C++ and in Python:

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

demo widgets imgui

ImGui Test Engine: Dear ImGui Tests & Automation Engine

demo testengine

Hello ImGui: cross-platform Gui apps with the simplicity of a "Hello World" app

demo docking demo custom background

ImPlot: Immediate Mode Plotting

battery implot

ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui

demo gizmo

ImGuiColorTextEdit: Colorizing text editor for ImGui

demo widgets editor

imgui-node-editor: Node Editor built using Dear ImGui

demo node editor

imgui_md: Markdown renderer for Dear ImGui using MD4C parser

demo widgets md

ImmVision: Immediate image debugger and insights

demo immvision process 1 demo immvision process 2

NanoVG: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations

nanovg full demo

imgui_tex_inspect: A texture inspector tool for Dear ImGui

demo imgui tex inspector

ImFileDialog: A file dialog library for Dear ImGui

demo widgets imfiledialog

portable-file-dialogs OS native file dialogs library (C++11, single-header)

demo widgets portablefiledialogs

imgui-knobs: Knobs widgets for ImGui

demo widgets knobs

imspinner: Set of nice spinners for imgui

demo widgets spinners

imgui_toggle: A toggle switch widget for Dear ImGui

demo widgets toggle

ImCoolBar: A Cool bar for Dear ImGui

demo widgets coolbar

imgui-command-palette: A Sublime Text or VSCode style command palette in ImGui

demo widgets command palette

A big thank you to their authors for their awesome work!

Install for Python

Install from pypi

pip install imgui-bundle
pip install opencv-python
pip install pyGLM
  • imgui_bundle: Binary wheels are available for Windows, MacOS and Linux. If a compilation from source is needed, the build process might take up to 5 minutes, and will require an internet connection.

  • OpenCV: in order to run the immvision module, install opencv-python. The alternative OpenCV versions, such as opencv-python-headless (headless) opencv-contrib-python (with extra modules) also work.

  • pyGLM: in order to run the demo, install pyGLM

Platform notes

  • Windows: Under windows, you might need to install msvc redist.

  • macOS : under macOS, if a binary wheel is not available (e.g. for older macOS versions), pip will try to compile from source. This might fail if you do not have XCode installed. In this case, install imgui-bundle with the following command SYSTEM_VERSION_COMPAT=0 pip install --only-binary=:all: imgui_bundle

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-python
pip install pyGLM
  • Since there are lots of submodules, this might take a few minutes

  • The build process might take up to 5 minutes

Run the python demo

Simply run demo_imgui_bundle.

The source for the demos can be found inside bindings/imgui_bundle/demos_python.

Consider demo_imgui_bundle as an always available manual for Dear ImGui Bundle with lots of examples and related code source.

Closing words

Who is this project for

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 for

  • developers and researchers who want to switch easily between and research and development environment by facilitating the port of research artifacts

  • beginners and developers who want to quickly develop an application without learning a GUI framework

Who is this project not for

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

Acknowledgments

Dear ImGui Bundle would not be possible without the work of the authors of "Dear ImGui", and especially Omar Cornut.

It also includes a lot of other projects, and I’d like to thank their authors for their awesome work!

A particular mention for Evan Pezent (author of ImPlot), Cédric Guillemet (author of ImGuizmo), Balázs Jákó (author of ImGuiColorTextEdit), and Michał Cichoń (author of imgui-node-editor), and Dmitry 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 using Asciidoc.

Immvision was inspired by The Image Debugger, by Bill Baxter.

License

The MIT License (MIT)

Copyright (c) 2021-2024 Pascal Thomet

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

Alternatives

pyimgui provides 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 author

Dear ImGui Bundle is developed by Pascal Thomet. I am reachable on my Github page. I sometimes blog. There is a playlist related 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 developed

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

History

Three 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 2020

  • implot demo which 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imgui_bundle-1.6.0.tar.gz (42.2 MB view details)

Uploaded Source

Built Distributions

imgui_bundle-1.6.0-cp313-cp313-win_amd64.whl (41.8 MB view details)

Uploaded CPython 3.13 Windows x86-64

imgui_bundle-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl (30.0 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

imgui_bundle-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.9 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.13 macOS 14.0+ x86-64

imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_arm64.whl (19.7 MB view details)

Uploaded CPython 3.13 macOS 14.0+ ARM64

imgui_bundle-1.6.0-cp312-cp312-win_amd64.whl (41.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

imgui_bundle-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl (30.0 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

imgui_bundle-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.12 macOS 14.0+ x86-64

imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_arm64.whl (19.7 MB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

imgui_bundle-1.6.0-cp311-cp311-win_amd64.whl (41.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

imgui_bundle-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl (30.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

imgui_bundle-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_x86_64.whl (20.4 MB view details)

Uploaded CPython 3.11 macOS 14.0+ x86-64

imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_arm64.whl (19.7 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

File details

Details for the file imgui_bundle-1.6.0.tar.gz.

File metadata

  • Download URL: imgui_bundle-1.6.0.tar.gz
  • Upload date:
  • Size: 42.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for imgui_bundle-1.6.0.tar.gz
Algorithm Hash digest
SHA256 e2c4c069b9ceb844624ce273b6fc4ef9d2798a5f9687b21884be9d33e8babbfc
MD5 e526205060fd9f1a02466ecb4641ddfb
BLAKE2b-256 cefaf1d4e47c35516287510e1b9ac96b2de2823257ebca49af528ce470b7cf0c

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e8b97af643658e1f42df1590db6cc2661844fee4b91090c6a283cafe53d4ad29
MD5 406198077e3ba13077f07109f4fdb190
BLAKE2b-256 57504408cf349e20ca092d91009fe35fa328c7a6a6f19465484351d9a0c00863

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dc2a95d3a57a33155570af248e4c791fd8c8da635e7643daad4a0dcf661707c4
MD5 fd0b426a849187d23347172adece65e5
BLAKE2b-256 fb55bc45265e70bdfe7d81a5e8685e9a48a017d52172771d00f2d437fefaeb08

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f70b1f8e2e85a0cd7719307f4af000709c6b9fbd2a54b5dae7944c90bb70e3b
MD5 73914eb0fb5034ca7e480413925e6e14
BLAKE2b-256 3380fe90b8722f16ad6b71a257c741c5879c7bc37780621243866579c52e961d

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 278e450fec858189a72ea84536366f6155bd5710f1a4b537a7e4d043a2a7e34b
MD5 45304dd207f66f6b75dc3c84cd92f841
BLAKE2b-256 214b8e834ea73c03a6641e52dc0b4eab5ce5bc9e75823d3482eecb7849056c33

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a5d6972c164c62b3f8b8a0aa3935252e3fa70363be3c56091aeca8891f1f356f
MD5 8d6bd0b9cd8702b55141bcbbbda541c1
BLAKE2b-256 dc08608d3eb8abd2b684c895b4693c1fa3ad5bf9dfc34a6be357c04fcfb81038

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0b839b6174147498471bb5b90f4f8d38a66ae3641a9823002bd2919abbc0c8f3
MD5 61be60a4b86b09e5d8f8b93bd0554f10
BLAKE2b-256 c289a20c443ac0261b7c9c533840b36e28c8229082181726b590ac9804dac855

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b5d717412bc8be853cf53730bd80c44850a2afd2475f043fd18511b564e5edb8
MD5 86f5e391d1333dd7d170a9f96a941e1a
BLAKE2b-256 bb3a1ffa1746e4bdea6f1ad34b210c76272fa9f6e0e61c53837ed11b23d33db2

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0903ac3e06d59dff78fc63a9442f3df09771c6bc5ce892a2870940cec3d526ef
MD5 b39658942a7a7729f09cba8c142c6d50
BLAKE2b-256 2cd20286403eb044fa85119bc9c163e7d96d1f8c2fc8db52f19c158c4a3d07cb

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 889a96cdf47819d54ee7f365fb05c1b30578fcf9a5872350ed9e005a09897004
MD5 55546065cd59e1213a4c294ce5fedde4
BLAKE2b-256 127c7fb2f847aedead1fcf47c3ffc5798c6110593621626c60b5c7b3897cfa39

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8fdc1c4aa7609d1681bd700dee4344a33268a86fa39a04cde88c3d6b7267015c
MD5 fe3849654e7ad72bae10e00a27dc9d11
BLAKE2b-256 3d84ce69f6536e5a0f6dcb92928e7cef6fa907666520f21d54fcfd2fa558e63e

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b0f1b63e5ab35f86212fce1aa07b5de6ab988d9ea0d518d5fb79368c4e21df35
MD5 94443eb84325ebde4f585e7e0bb5e6c2
BLAKE2b-256 a1a8ddd50ad30b76ff1a49cc5f9e0dceaff7e00271b1817edf63facba642f71a

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe3a760c2ce3d0a2cfe150745bb071c8cbc74c6671428207b647597d0d556e19
MD5 c9ec27295f08f08543dca665673869a0
BLAKE2b-256 345e873c3076a8bef874a50556c87d07cff17cf7d256691f28249740df45ed33

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bcbf7d4e059473f5ee0d28b445241986d379954041423b0e7fafa3521c382b8b
MD5 542023bbab3738e674eaca3000fb35c9
BLAKE2b-256 a43c85ffe6634d971b5fda1cefbe26c28051ca8e05b7d3573ef7fd81e5fe4cc6

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 f3d94fd3db617720f98d3a036fceaac4ad2b40cd55cc0ee4cefae8a3f17bd1be
MD5 8b3670c07fbd2b791556eb872efc8e53
BLAKE2b-256 75dac5945abb2a15d5d8830fe402872d0133ca7b9352075f1ff20eae6e44be7a

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.6.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3a9c389fbe7c70836cebdd8b7ab52a7b2ac456f62238095c1dba2fbc4023427d
MD5 83e52eff66900830916797b6fe313e82
BLAKE2b-256 ac7d1d3c9b14256f26176cc419a7db246783d06ae6b4b0eedc1a330db0b305d8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page