Skip to content

Dear PyGui Showcase

Raccoon edited this page Mar 8, 2024 · 116 revisions

The following apps have been developed with Dear PyGui by various developers and show the versatility of Dear PyGui. Dear PyGui is a fast, easy to use and powerful Python cross-platform GUI library (Windows, Linux and MacOS) available under a permissive MIT license. With Dear PyGui, one can build traditional desktop apps, yet one can create more graphically dynamic applications as well.

Flux

Flux is a beautiful dynamic flowfield visualization with particle simulation. It demonstrates the movement of particles within a vector field, offering an engaging visualization of the underlying noisemaps.

Flux flowfield

DearEIS: Electrochemical Impedance Spectroscopy

DearEIS is a Python package that includes both a program with a graphical user interface (GUI) and an application programming interface (API) for working with impedance spectra. The target audience is researchers who use electrochemical impedance spectroscopy (EIS) though the program can also be used in educational settings. DearEIS has a project-based workflow and multiple projects can be open at the same time. Each project has a user-definable label and a section for keeping notes. Multiple projects can also be merged to form a single project. You can read more about DearEIS in this article.

DearEIS example 1

Data sets and their corresponding results (Kramers-Kronig tests and equivalent circuit fits) are visualized using simple Nyquist plots, Bode plots, and residual plots. More complex plots containing multiple data sets, Kramers-Kronig test results, equivalent circuit fitting results, and/or simulation results can also be created. More information is available on the DearEIS project page and in the Github repository.

DearEIS example 2

FlowTutor: A graphical programming environment using flowcharts

FlowTutor is an application to help teach programming to engineering students. It illustrates the structure of a Python application, inclusing loops, if-else clauses and function calls visually while the Python application runs. FlowTutor shows the values of the variables, a log of the output and allows for setting of breakpoints.

FlowTutor

Image processing node editor

Image processing node editor is an application that performs image processing with the node editor (see video). It is used for processing verification and comparison. The node editor allows the user to select a video source to process nodes. Process nodes can apply processing in the form of cropping, blurring, generating a colour map or RGB graph, changing brightness or contrast or other filter types. The processed node can then be used as input for multiple deep learning nodes, such as classification, face detection, object detection or others. The results of the various nodes can be combined into multiple output nodes, for example a video writer to export the results to a video file. All of the processing, plotting and output is executed in real-time. The source code is available in the Github repository.

Image processing node editor

P1125: Profiling current of battery powered devices

The P1125 is hardware device for profiling current of battery powered devices with deep sleep modes and high current active states, made by Sistemi Corp. This is useful for developing and testing IoT devices. The P1125 is designed to be used by the designer at their desk to gain insight into the target current usage profile. The P1125 makes measuring current as easy as measuring voltage. The hardware is used in combination with a custom application written in Python with a user interface made with Dear PyGui. The application includes many controls and plotting options for interactively gaining insight into a dataset containing over a million data points. The software is proprietary, which is in accordance with Dear PyGui's MIT license. The MIT license allows you to keep your app proprietary, to sell it commercially or make it open source applications without any obligations. A more extensive demonstration of this app can been viewed on YouTube.

P1125

Wordle clone

Simple Python clone of the web-based game Wordle, originally created by Josh Wardle.

Wordle

KrxImpExp: 3D asset import/export Blender add-on

KrxImpExp is an open-source 3D asset import and export Blender add-on for modding Gothic 1 and 2 games. It is a hard fork for modern 2.8+ Blender and has been written with use of Dear PyGui as the original wxWidgets framework UI project was unmaintainable. The team decided to use Dear PyGui due to it's language (Blender uses Python for add-ons), size, simplicity and extensibility to further improve the user experience. The Dear PyGui UI offers seamless integration with the Blender user interface. The source code is available in the GitLab repository.

KrxImpExp

contExt: Image processor

contExt performs treatment and contour extraction from an image, and the generation of sparse or adaptive meshes intended for the application of numerical methods, especially finite differences.

contExt: Image processor

TRESMENT - Team Resource Management

TRESMENT is a proprietary Team Resource Management tool built with Python and Dear PyGui. The app combines many features of Dear PyGui to create an intuitive and user friendly interface. The interface forges tables, listboxes, checkboxes, drop-down menus, tree nodes and modal popup menus into a singular, smooth workflow. In addition, the program leverages Dear PyGui's flexible theming system to provide the users with the option to choose between a light or dark mode.

TRESMENT showcase

Asset Builder

Asset Builder is a tool for choosing, recolorizing, and stacking images together of the same type, typically used for creating 2D games. The source code is available under an MIT license and can be downloaded from the project's Github repository. A stand-alone executable version, built with Nuitka, is available for Linux and Windows.

Asset Builder

YaChiPy

YaChiPy is a Chip-8 Emulator with debug features. Step back in time and experience the charm of retro gaming. This app emulates the Chip-8 games exactly how they were, including the typical occasional blinking of the graphics. This emulator comes equipped with advanced debug features to enhance your gaming and programming experience. Pause the emulator at any moment to inspect the state of the virtual machine. Take control of time with the ability to speed up or slow down the CPU clock. The memory contents, register values, and timer values are displayed in real-time. You can load your favorite ROMs and customize settings.

YaChiPy

Froyo: Utility for downloading works from Archive Of Our Own

Froyo is a small graphical application for downloading works from Archive Of Our Own (AO3). It supports batch downloading of works to supported formats (AZW3, EPUB, HTML, MOBI, PDF). The app is small, fast and functional, a perfect fit for Dear PyGui. Not every app has to be complex. Sometimes a tool just needs to get the job done. The source code is available in the Github repository.

Froyo

Raccoon Music Player

Raccoon Music Player is a pocket-sized music player that shows raccoons dancing around a campfire while songs are playing. It's a proof-of-concept app that was made with Python using the excellent Dear PyGui and PyMiniAudio libraries and has no other dependencies. Raccoon Music Player can play MP3, WAV and FLAC music files. A longer and higher quality video as well as the source code can be found in the Github repository.

Raccoon Music Player

RaViewer: parsing and displaying binary data acquired straight from camera

RaViewer is an open-source utility dedicated to parsing and displaying binary data acquired straight from camera. After opening a binary image, you can specify the color format, the image size and append or remove n bytes from the beginning of the image series. The binary image will be processed and shown based on these values. You can control which color channels are displayed and zoom in and out. For detailed information, you can view the hexadecimal pixel values in table format. The resulting image can be exported entirely or just a selected part to more complex formats (JPEG, PNG) or raw data. The source code is available in the project's GitHub repository.

RaViewer

DearBagPlayer

DearBagPlayer is a flexible rosbag player based on Dear PyGui in Python. ROS stands for Robot Operating System. A bag is a file format in ROS for storing ROS message data. Bags, so named because of their .bag extension, have an important role in ROS. This tool allows the user to load various data file and visualize the distinct, but related data in four different graphs simultaneously. The app allows for dragging and dropping of files on the the four graph areas and dynamically zooming in on parts of graphs. The interactive and dynamic graphs are a feature of Dear PyGui. The source code is available in the Github repository.

!DearBagPlayer

VLM Streamer

VLM Streamer is a Vision and Machine Learning data streamer for SideFX Houdini. This program was made as a utility tool for Sidefx Houdini, but nothing is holding you back from using it as a generic data server to feed your own udp client that decodes the data. A more extended demonstration of shown in this video.

VLM Streamer

Pomodoro Timer

Pomodoro timer is a GUI utility for setting a Pomodoro timer for task, short and long break time. The source code is available in the Github repository.

POMODORO

Heron: A Hybrid Approach to Data Pipelines in Python

Heron is a Python only graphical editor designed to initiate, connect and orchestrate multiple processes, potentially running on multiple computers. Each process is graphically represented as a node with inputs and outputs. Connecting an output of one process to the input of another will result in the data generated by the output process to be passed to the input one, subsequently triggering the input processes functionality. The philosophy behind this app has been described in this article. All visual items shown in the screenshot below, including the node editor, are created with Dear PyGui. The source code is available in the Github repository.

Heron

CAN Explorer: Bus visualization tool

can-explorer is a CAN bus visualization tool designed to aid in reverse engineering. By continuously plotting all payloads for each CAN id, spotting trends that correspond to a specific action can become significantly easier to identify. can-explorer demonstrates the ability of creating and updating multiple real-time graphs with Dear PyGui. The application provides an example of how to combine threading and Dear PyGui.

CAN Explorer

YouTube captions to e-book

The YouTube captions to e-book app takes any YouTube video URL and downloads the video cover and captions in any available language and turns it into an e-book. Such e-books can provide a valuable resource for learning and studying a language. The source code is available in the project's GitHub repository.

YouTube captions to e-book

ELPath: An algorithm visualizer

ELPath is lovingly built using DearPyGui as a basis for its GUI and plotting functions. This is aimed at providing understandable visualizations of common sorting and pathfinding algorithms. Visualizations include Quick Sort, Merge Sort, Bubble Sort, Insertion Sort, Selection Sort, Cocktail Sort, Breadth and Depth-First Search, Dijkstra's Algorithm, and A* Search.

ELPath

TAP ADQL Sandbox

TAP ADQL Sandbox is an application for executing ADQL queries via TAP interface of various data sources, such as astronomical databases. TAP stands for Table Access Protocol, which is a way to query data from a database. ADQL stands for Astronomical Data Query Language and it is very similar to SQL, just with extended functionality for performing various operations on the data, such as geometrical functions. Essentially, it's a GUI for PyVO. The idea is that one can quickly run and test ADQL queries using this application and then add the final query to an application or notebook. This would be of interest to planetary scientists and astronomers, as most astronomical databases expose their data via TAP interface. The source code is available in the Github repository.

TAP ADQL Sandbox

Tetris

Tetris is a remake of the original Tetris tile-matching game as adopted by IBM PC. Even though Dear PyGui is not a game engine, it can easily handle graphical animations such as these. The source code is available in the Github repository.

TETRIS

Snake

Snake is a simple game with customisable settings for changing the speed and colours and fixing the snake length. Entirely made with Dear PyGui. The source code is available in the Github repository.

SNAKE

Looking for more ideas?

In case you'd like to see more examples, you can check out the Tools and Widgets page, that shows various widgets or extended functionality made by various developers.

You can also have a look at the Showcase apps for older Dear PyGui versions. These apps were made with older versions of Dear PyGui. The release of Dear PyGui version 1.0 included a few breaking changes, so that these apps are not compatible with the latest version.