Introduction
DearPyGui brings Dear ImGui's immediate-mode rendering model to Python with native GPU acceleration. It targets developers who need responsive, interactive UIs for data visualization, tooling, and prototyping without the overhead of traditional widget frameworks.
What DearPyGui Does
- Renders UI elements via GPU (DirectX, OpenGL, Metal) for smooth performance
- Provides 70+ widgets including plots, tables, drawlists, and node editors
- Supports real-time data plotting with thousands of data points at 60 FPS
- Offers a callback-driven API with simple Python function bindings
- Runs cross-platform on Windows, macOS, and Linux
Architecture Overview
DearPyGui wraps a custom C++ rendering core that extends Dear ImGui with retained-mode convenience atop the immediate-mode engine. The Python layer communicates through CPython bindings so all heavy lifting stays in compiled code. A viewport manager handles OS window creation, input routing, and the render loop.
Self-Hosting & Configuration
- Install from PyPI:
pip install dearpygui - Requires Python 3.8+ and a GPU-capable display
- Configure viewport size, position, and VSync at creation time
- Themes and fonts can be customized via the theming API
- No external config files needed; everything is set programmatically
Key Features
- GPU-accelerated rendering for data-heavy interfaces
- Built-in node editor for visual programming UIs
- Live-updating plots that handle high-frequency data streams
- Full DPI-aware scaling and multi-viewport support
- Extensive callback system with item-level event handling
Comparison with Similar Tools
- Tkinter — ships with Python but lacks GPU rendering and modern aesthetics
- PyQt / PySide — feature-rich but carries complex licensing and large dependencies
- Kivy — targets touch and mobile UIs rather than desktop tooling
- Streamlit — web-based, not suitable for latency-sensitive desktop UIs
- egui (Rust) — similar immediate-mode model but requires Rust
FAQ
Q: Does DearPyGui support web or mobile deployment? A: No. It is desktop-only (Windows, macOS, Linux) and requires a local GPU context.
Q: Can I use DearPyGui for production applications? A: Yes, but it is designed primarily for tooling, dashboards, and developer UIs rather than consumer-facing apps.
Q: How does it compare to Dear ImGui in C++? A: DearPyGui uses Dear ImGui internally but adds a retained-mode Python API, built-in plotting, and node editor support.
Q: Is there a drag-and-drop GUI builder? A: There is no official visual builder. UIs are defined programmatically in Python.