explaingit

hoffstadt/dearpygui

15,418C++Audience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A fast Python library for building desktop GUIs, windows, charts, sliders, node editors, powered by C++ and your GPU, installed with a single pip command and capable of rendering over a million data points at 60 fps.

Mindmap

mindmap
  root((dearpygui))
    What it does
      Desktop GUI toolkit
      Python bindings
      GPU accelerated
      60 fps rendering
    Widgets
      Charts and plots
      Sliders and inputs
      Node editor
      Tables
    Under the hood
      C and C++
      Dear ImGui
      ImPlot
      Immediate mode
    Platforms
      Windows
      macOS
      Linux
      Raspberry Pi 4
    Audience
      Python developers
      Data tool builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Wrap a Python data-processing script in a GUI with interactive charts, sliders, and buttons without a heavyweight framework.

USE CASE 2

Build a real-time data visualization tool that smoothly renders large datasets with GPU-accelerated drawing.

USE CASE 3

Create a control panel, debugger, or settings UI for a Python application with a modern look on Windows, macOS, or Linux.

Tech stack

PythonC++Dear ImGuiImPlot

Getting it running

Difficulty · easy Time to first run · 5min

Requires Python 3.8 or newer 64-bit, install with pip install dearpygui.

Use freely for any purpose including commercial projects, keep the copyright notice.

In plain English

Dear PyGui is a toolkit for building desktop graphical user interfaces, windows, buttons, sliders, text inputs, charts, node editors, using Python. The goal is to give Python developers a simple way to create quick and powerful GUIs for their scripts, without learning a heavyweight framework. Under the hood it is written in C/C++ and built on top of Dear ImGui (a popular C++ library originally aimed at tools for game developers), along with the ImPlot and imnodes extensions. It uses what is called the immediate mode paradigm, which means the interface is described from scratch every frame instead of stored as a tree of objects, and it draws everything through your computer's GPU. The practical effect is that interfaces stay smooth and dynamic, the README says you can display over a million data points on a graph at 60 frames per second, with zoom and pan. From the Python side, building a window is straightforward: you import the library, create a context and a viewport, then add widgets inside a window block and start the event loop. You would reach for Dear PyGui when you want to wrap a Python script in a friendly interface, a small data tool, a control panel, a visualisation, a debugger, and you care about performance and a modern look more than deep native-platform integration. It runs on Windows, macOS, Linux, and Raspberry Pi 4, using each system's native graphics API. Requirements are Python 3.8 or newer (64-bit), and installation is a single pip install. The project is MIT licensed and ships with a built-in demo that walks through every feature.

Copy-paste prompts

Prompt 1
Using Dear PyGui, create a window with a line chart that updates in real time as new data arrives from a Python generator function.
Prompt 2
Build a Dear PyGui interface with a file picker, a slider for a threshold value, and a button that runs a Python image-processing function and shows the result image.
Prompt 3
Show me how to use Dear PyGui's node editor to build a visual workflow where each node runs a Python function and passes its output to the next node.
Prompt 4
I want to display a table with 1 million rows in Dear PyGui without freezing the UI. Show me how to use its virtual scrolling or lazy-loading approach.
Open on GitHub → Explain another repo

← hoffstadt on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.