epezent / implot_demos

Standalone ImPlot Demos
MIT License
200 stars 40 forks source link

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

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. filter
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. spectrogram
maps.cpp OpenStreetMap world map viewer. Downloads and displays zoomable tile maps in a plot. maps
mandel.cpp Realtime Mandelbrot viewer using AVX2 and OpenMP acceleration. Recommend compiling with ImPlot backends branch. mandel
perlin.cpp Renders perlin noise in a heatmap. perlin
graph.cpp Simple graphing calculator using exprtk expression evaluator. perlin
stocks.cpp Downloads 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: