implot_demos
implot_demos copied to clipboard
Standalone ImPlot Demos
ImPlot Demos
This repository contains toy ImPlot applications that demonstrate some of the library's functionality. The demos here are more sophisticated than those provided in implot_demo.h
, and may rely on third-party libraries that would otherwise clutter ImPlot's main repository. Use these examples as a starting point for your application and to familiarize yourself with ImPlot, but do not assume all code (e.g. signal processing algorithms) to be perfectly correct or optimal.
Requirements
- OpenGL
- C++17 compiler
Note: Compiled and tested with MSVC. Minor changes to CMakeLists.txt
may be required to support other compilers. If you make a fix, please submit a PR.
Build Instructions
mkdir root
cd root
git clone https://github.com/epezent/implot_demos
git clone https://github.com/epezent/implot
git clone https://github.com/ocornut/imgui
-
root/
-
imgui/
-
implot/
-
implot_demos/
-
- Build with CMake, e.g.:
cd implot_demos
mkdir build
cd build
cmake ..
cmake --build . --config Release
Demos
Demo | Description | Image |
---|---|---|
demo.cpp |
Main demo. Displays the ImPlot (and ImGui) library supplied demo windows. | |
filter.cpp |
Simple filter toy for educational purposes. Displays time domain input/output signals, and the frequency domain transfer function, amplitude spectrum, etc. | ![]() |
spectrogram.cpp |
Realtime audio spectrogram and visualizer with device playback. Pass in an audio file at the command line: ./spectrogram.exe ./aphex_twin_formula.wav (see resources/audio folder). Recommend compiling with ImPlot backends branch. |
![]() |
maps.cpp |
OpenStreetMap world map viewer. Downloads and displays zoomable tile maps in a plot. | ![]() |
mandel.cpp |
Realtime Mandelbrot viewer using AVX2 and OpenMP acceleration. Recommend compiling with ImPlot backends branch. |
![]() |
perlin.cpp |
Renders perlin noise in a heatmap. | ![]() |
graph.cpp |
Simple graphing calculator using exprtk expression evaluator. |
![]() |
stocks.cpp |
Downloads and displays historical stock data from Yahoo Finance. | ![]() |
Contributing
Have you created something awesome with ImPlot? If so, please consider submitting a PR with a minimal working example of your application as a demo. Use the following guidelines:
- Modify your ImPlot/ImGui code so that it subclasses
common/App.h
(see any existing demos). - Try to contain your demo to a single file located in
demos/
. - Indicate your authorship and any helpful documentation at the top of your demo source file.
- Add dependencies with CMake
FetchContent
(preferred), git submodules, or manually to the3rdparty/
folder (include the license). - If your demo requires resources (audio, images, etc.), add them to the
resources/
folder. Keep it simple! - Screenshots and/or GIFs with your PR are helpful.