ImGui Bundle: easily create ImGui applications in Python and C++. Batteries included!
Project description
ImGui Bundle
ImGui Bundle is a bundle for Dear ImGui, including various powerful libraries from its ecosystem.
It is aimed at application developers, researchers, and beginners who want to quickly get started.
It enables to easily create ImGui applications in C++ and Python, under Windows, macOS, and Linux.
Test it in 1 minute with python
pip install imgui-bundle
pip install opencv-python
imgui_bundle_demo
Transparent port between C++ and Python
The python bindings were autogenerated from the original C++ code, so that they are easier to keep up to date, and the python API closely matches the C++ api, making it possible to easily port research code from Python to C++.
Python C++ |
Batteries included
ImGui Bundle includes:
- imgui : Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
- implot: Immediate Mode Plotting
- Hello ImGui: cross-platform Gui apps with the simplicity of a "Hello World" app
- ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
- ImGuiColorTextEdit: Colorizing text editor for ImGui
- imgui-node-editor: Node Editor built using Dear ImGui
- imgui-knobs: Knobs widgets for ImGui
- ImFileDialog: A file dialog library for Dear ImGui
- portable-file-dialogs Portable GUI dialogs library (C++11, single-header)
- imgui_md: Markdown renderer for Dear ImGui using MD4C parser
- imspinner: Set of nice spinners for imgui
- imgui_toggle: A toggle switch widget for Dear ImGui. Homepage
- ImmVision: immediate image debugger and insights
- imgui_tex_inspect: A texture inspector tool for Dear ImGui
Philosophy
- Closely mirrors the original API of ImGui and other libraries
- Original code documentation is meticulously kept inside the python stubs. See for example the documentation for:
- Fully typed bindings, so that code completion works like a charm
Usage with Python
Installation and demo
Install from pypi
pip install imgui-bundle
# in order to run the immvision module, install opencv-python or opencv-contrib-python
pip install opencv-contrib-python
or 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-python
Demo
# imgui_bundle_demo will run the full demo shown on this page.
# It also acts as a manual for ImGui Bundle with lots of examples and related code source.
imgui_bundle_demo
The source for the demos can be found inside bindings/imgui_bundle/demos_python.
Usage with C++: get started in 5 minutes
Read the instructions inside _example_integration.
Quick application development features
You can develop standard ImGui application the standard way with ImGui Bundle.
However, it also comes with HelloImGui, which provides:
- DPI aware application (window size, font loading and scaling, etc)
- Power Save mode: reduce FPS when application is idle
- Theme tweaking
- Window geometry utilities (autosize, restore window position)
- Assets embedding on all platforms
- Auto initialization of third parties modules (implot, imgui-node-editor, markdown, etc)
- Easy integration in a C++ project (see _example_integration)
ImGui Backend
ImGui Bundle uses Hello ImGui, which is configured to use GLFW + OpenGL3. As an alternative, SDL support can be enabled.
You can also use any backend, by providing your own integration code (see ImGui examples).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for imgui_bundle-0.7.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5ce5737e86b393d0e8bb7e8d9518087fc9d667653f5b7fa690f8af605a4b277 |
|
MD5 | fe52cb40fcd6c1641f5b51a1ee4f10c6 |
|
BLAKE2b-256 | 9bcb1cc1977b834ebbeb7784d5ac4371ffb244f10d9fbf4d7e46c0901427b647 |
Hashes for imgui_bundle-0.7.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb98c3b79367184880ef15c4455bd3dfa5967769cfd2f952a41c87b36b0a71c1 |
|
MD5 | 6d2530dbe1182c5d6b5c66dfddbf204b |
|
BLAKE2b-256 | 8dca3cc0717e07e73b20f86506bb16e3ee7f7f2fea4b905cc368d7a32e9cc2fc |
Hashes for imgui_bundle-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70324c8a9289d859dc53514ca8c7edd5271584ba2ec6e53fadf1b561d36e28e7 |
|
MD5 | 3eebb856d0838f60ca7501e84f50cd26 |
|
BLAKE2b-256 | 47c3d79401e19fd48154010fb35e261baa34fafdb1dceb0d37374fe20b67ae2a |
Hashes for imgui_bundle-0.7.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ae1bdc0cfd72e3bfd18cdacbcfea856d5d6661a89eabef0a3f6d05928445e38 |
|
MD5 | 2a0d685cde43cea15dc6db97cbf50097 |
|
BLAKE2b-256 | 714c89631f70d4134a04fa35066a0097955671978bd3ca055d3d66d01c1dab4b |
Hashes for imgui_bundle-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 527217b4a80abbeab150a621ff0129890ded786164ef9b265e11b0a854ecf3b7 |
|
MD5 | fbb82ec6de186b0916e62e049963f986 |
|
BLAKE2b-256 | 4f95b0ddaa4c1e5e4ea5180dfe07eac3d582c3a433abaf1b1cb654ef686c0220 |
Hashes for imgui_bundle-0.7.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee5c2e1ea9d6dab27fe484607ca20b41f58b86e196f6417c1d6ab7eb91e83ec3 |
|
MD5 | 2a2aa5c8ec227b661986a3b10f664ce3 |
|
BLAKE2b-256 | b1b1e7e32b08e90d24615584bd9b0233bfec861b03febe137c25224826fb7dff |
Hashes for imgui_bundle-0.7.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cacd4996917f0390c7753d211e3636d54034b0684c42d43d7ff39841a2c188b3 |
|
MD5 | 68f2c51c0a920d1b274f5bf60dc9d5f3 |
|
BLAKE2b-256 | c2de1359a9b4bf04ac2b0cd5ffe9db05cb6f75b8ad3700e54c8cfb3fc7e7cc8b |
Hashes for imgui_bundle-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f4bff93d9b750ccb5cd64e7b716ceb65075efedeb10c13c8eada3ada6b47b81 |
|
MD5 | 6c61c247d9cfac44473522f0e14c761b |
|
BLAKE2b-256 | 2a94b7272931a4cb7ac6c6ad11113dea3f94200cad90dee364cd97e194427e00 |
Hashes for imgui_bundle-0.7.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e35b6ca62d79122d6fb976398438c9d458d9f948a7c0d9faae694eda0452578 |
|
MD5 | 06de0b04749e8773541af1f6bf14a334 |
|
BLAKE2b-256 | 4316748ccbe9ddfaa5ef8bf15f537c6bd5e4844fe35b371cfa7199c939f262e1 |
Hashes for imgui_bundle-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5e32bd4065ef8717fd7ef246f2c7685f86355e82327970e6e30ff4862d6f07a |
|
MD5 | a3399b90de1ee145e20b5d5f0e4a0f94 |
|
BLAKE2b-256 | 251b7edd81a3ad212f213d39a2ea900a2c2f05d6b16e1bab40612b135520d616 |
Hashes for imgui_bundle-0.7.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9dd5a1d447643a9dbb4f61272f19bffab6f827cb7d36bcc2de89e5f25aaf6a6 |
|
MD5 | 8c6a2fe28cab319eb5467679b885d32e |
|
BLAKE2b-256 | 5483f68bdbd354e72c518e66096bfe465935604569c1d4c0c1b6a06ea20040c6 |
Hashes for imgui_bundle-0.7.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e025cd73297989b1281b8e7bc1c0ffc13483c1dac462180cb10f59c50c221a4 |
|
MD5 | d77d18086d192f0e908e71fd4a1a2d71 |
|
BLAKE2b-256 | f638b327306e8043cfd0a56045a662ee4aaefcde158e7726d20310167a338f54 |
Hashes for imgui_bundle-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd6c4c6f445a57214a9aed23e5c9b2b12d25ac46af732122c60a0b57c67b7506 |
|
MD5 | 867a63aa3bbe7d84ed61e7c27320ea48 |
|
BLAKE2b-256 | 708655f25978a1a1c1bf96f148fb7684456e1ae92fd3a459a4c0b893c1f6dd66 |
Hashes for imgui_bundle-0.7.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8652aab44608761db7e0540d63a33104495fe9415c41f2cef80aff939b3bd47 |
|
MD5 | ab0481347513fb2a5a8c731a5eaf5a0b |
|
BLAKE2b-256 | 4a7c249b071e599d4266666828702d234177147086e566f636b9f0c9c71dddc2 |
Hashes for imgui_bundle-0.7.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32b03e7443d4598e19b1d9e55723b8c280388e40f121b77ab70f43764b65ee1a |
|
MD5 | 5a7156af17eae85203c52dde23cd6a1d |
|
BLAKE2b-256 | 4fee42a856d6dfe5474169242e0940c6e19612d1d678b79e247b9250f79bb3d9 |