Home

Awesome

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

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

  1. Clone this repository, ImPlot, and ImGui into a parent directory (name doesn't matter):
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
  1. Build with CMake, e.g.:
cd implot_demos
mkdir build
cd build
cmake ..
cmake --build . --config Release

Demos

DemoDescriptionImage
demo.cppMain demo. Displays the ImPlot (and ImGui) library supplied demo windows.
filter.cppSimple filter toy for educational purposes. Displays time domain input/output signals, and the frequency domain transfer function, amplitude spectrum, etc.filter
spectrogram.cppRealtime 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.spectrogram
maps.cppOpenStreetMap world map viewer. Downloads and displays zoomable tile maps in a plot.maps
mandel.cppRealtime Mandelbrot viewer using AVX2 and OpenMP acceleration. Recommend compiling with ImPlot backends branch.mandel
perlin.cppRenders perlin noise in a heatmap.perlin
graph.cppSimple graphing calculator using exprtk expression evaluator.perlin
stocks.cppDownloads and displays historical stock data from Yahoo Finance.perlin

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: