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.5.2.tar.gz (42.1 MB view details)

Uploaded Source

Built Distributions

imgui_bundle-1.5.2-cp312-cp312-win_amd64.whl (41.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

imgui_bundle-1.5.2-cp312-cp312-musllinux_1_2_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

imgui_bundle-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.5.2-cp312-cp312-macosx_14_0_x86_64.whl (22.0 MB view details)

Uploaded CPython 3.12 macOS 14.0+ x86-64

imgui_bundle-1.5.2-cp312-cp312-macosx_14_0_arm64.whl (22.7 MB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

imgui_bundle-1.5.2-cp312-cp312-macosx_11_0_arm64.whl (20.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

imgui_bundle-1.5.2-cp311-cp311-win_amd64.whl (41.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

imgui_bundle-1.5.2-cp311-cp311-musllinux_1_2_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

imgui_bundle-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.5.2-cp311-cp311-macosx_14_0_x86_64.whl (21.9 MB view details)

Uploaded CPython 3.11 macOS 14.0+ x86-64

imgui_bundle-1.5.2-cp311-cp311-macosx_14_0_arm64.whl (22.7 MB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

imgui_bundle-1.5.2-cp311-cp311-macosx_11_0_arm64.whl (20.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

imgui_bundle-1.5.2-cp310-cp310-win_amd64.whl (41.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

imgui_bundle-1.5.2-cp310-cp310-musllinux_1_2_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

imgui_bundle-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_x86_64.whl (21.9 MB view details)

Uploaded CPython 3.10 macOS 14.0+ x86-64

imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_arm64.whl (22.7 MB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

imgui_bundle-1.5.2-cp310-cp310-macosx_11_0_arm64.whl (20.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: imgui_bundle-1.5.2.tar.gz
  • Upload date:
  • Size: 42.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for imgui_bundle-1.5.2.tar.gz
Algorithm Hash digest
SHA256 c3c37a422c6ff0dbf6e4c38420996f6f0ac37a6615705e9a4235a3de445293f5
MD5 a55c4c6b8a06e9905631bfae3f548fbf
BLAKE2b-256 5fad7ec751305e657f34cfaf41079917c2fce95b3180b007c9f921dd0584e980

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 20d2b0de3e95a47b7b6b07413b39c686022b6088a9e52011a9c235ab9be81e09
MD5 8a0ad032ab9e5032273d49f7c0e29809
BLAKE2b-256 42bd02cad026d66c810f24de5d4c119cd3d25ede854c8263d9411e7180fb18f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34b947f27e6e771b7bd2f84360c7b154fdafd589cb71ec06fcc5d333fc588048
MD5 6c3f881a6148d5334722ccdb935757ae
BLAKE2b-256 28b86305152d1045aa97c3597bb8647fc9de04acc70627b8962ceb823cf8b5b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f39766da333247c3fefcf036fa8ed96e7bbc61ed4921e64bf4b132fe34cfb75a
MD5 28b707714b005f9dcb0d72b2f239816d
BLAKE2b-256 c82108aad82a1504643e4059e51a56b98277d136c4c288600e38ac95077c3198

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 b7ce24e639fce3cce196c5dd264a2bacfd323afd9940d3dfb0b86b279db70b83
MD5 0bd4ac61c26162f6e4b7a412b62ad1a6
BLAKE2b-256 291b155fb7bc2605e2e8d8134befa48870f24252d0010931b429c0a45116195e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 07d24a542029440b85de8e29602eed19ebffbc88a712f1b61e9642be0288f3f9
MD5 17c335f4de5e54ec157fb2bc0b677fe4
BLAKE2b-256 87f7e0c7f1461743fee24373156aa134f6822881bab6794807992b32916dbaa3

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0923594229c1d5a00dacf449a57b3818d58d3c427ad7ad59743296ec21ed1c9e
MD5 38e644d851d4ffd11ce2219ad41fc214
BLAKE2b-256 1253bec1db471da9eee589a8d575e3506d0ead031a9b208d0fdebb36945edb52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 66f12c40d81e55a70b3494aca535bccd3e3f99bfa3b57e6c267b98181b74d75a
MD5 8c43a0c8372c34600965a114f0c0ca9a
BLAKE2b-256 c0e08b23a760b50499bfe994c1385b0333fd84f21372c5e7a9ac920ed408eb3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d78b9a50ba41de09c83e8de9131cb2c97593165131e0f6586471bc0e7762d08d
MD5 d37a1f4000437ff8e79ca6c910871f25
BLAKE2b-256 5064e054ddc1c87182a670418747d4d3e36f0df54ce7626e044b4a4b942a7c48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09cec303ad679bf99b3aa8a1e6c8cf68ef03e263cce477889d67c8134c099989
MD5 837749682780631d3baafe9dd319f0f7
BLAKE2b-256 dfb6970a1538977c3477d7d1b7cabc3f81c8d44b5df47316e00404b774f650b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 f08530d75a6888ed41cdee6aa9f02bde496e939bbd95a674547ae13669d8e3d8
MD5 ad5d6d9f6240107e2fdd254df041e125
BLAKE2b-256 76f3613378843e9a561da8a8186690710775f7396d8eb898ec1a0141390ca7b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e55ba56763a5bf7402503bed043b18a5b459896ff961c6ce4f740e1deb0d06cd
MD5 a31de7478a72db7aceec38cd769708a8
BLAKE2b-256 9931d61ed67ecbe51311151ae9fcacd9af32e16710e11a27bb70d24d685150e1

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35bacc0fc0dc77a7d94652f6426885028b43714b2012e636330faa0ab6a2544b
MD5 bc6e05fc1999f99721a846f29e9fee6c
BLAKE2b-256 0c869f37e0387770912080e057b47cce429ead19262dc673b26cb69eae8b9896

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 002575e7ce3823a668ba4d80393e03ad395d0c25d47fae446f02a007ae3dd918
MD5 30a72a6b7d7714e6f7f8db01c031daab
BLAKE2b-256 aa4b3cd1e874613baf15e0bc8a7a038580b3f1a6a6c21296241f1a315fff629c

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35e31a7b8f6009f85f42be958fdf3910dd44b18a5c35943634f0a6b987741720
MD5 ca4f17638bb730e727782a14f3399a5e
BLAKE2b-256 ec3b9eaeeddc433fb7736d1e9b71c3851f403ac1d8a157b287dab2a7540e8a3f

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3894fdd090514f277b1741a7e4c788a1b7310a96e8c0aeb8579127220f00a556
MD5 85a7472b5a66498fd3a2ad20673eac45
BLAKE2b-256 7dd1718f811906a6dbce2dbba6e3983069f3967dc0133b1b30a6dad89541a100

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 2482538d4be7a051eec7398193f45e9b08c3054a82109e1aa8ca47c8bdf36dc1
MD5 52a2109f75ec29035eb0784e67c62a9e
BLAKE2b-256 cda1e94a3bfb860af29b43f9c4bc4c48ba6c62cf55d48f1662f1bcf35b8d70a1

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3ef26c42aaeb469e0f4fa1560d82e2af0c4907f6fd8f331a8a52530be7cd08c8
MD5 260aa59ec1bd6cec1fea272b9373212e
BLAKE2b-256 8e2f99c3b7ecb4b129ba0779c8a0e0924a94adabc23bf25e064040724ce1ef95

See more details on using hashes here.

File details

Details for the file imgui_bundle-1.5.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for imgui_bundle-1.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85a8d3022ab24bd983ea68b4179f6ce165dd8455bb9684e5f22cc82032a3e399
MD5 87832077ed6e9ac9754314173054b83d
BLAKE2b-256 322ada2a3b0ef71dca1ec6180fa9a3fa59cc3ec564db158cd0d0ba7a0c2bbd0e

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