A high-performance 2D plotting library for real-time visualization of millions of data points.
- High Performance: Render millions of data points at 50+ Hz using GPU acceleration
- Cross-Platform: Linux, macOS, Windows, and WebAssembly
- Qt-Independent Core: Use standalone or integrate with Qt applications
- Modern GPU Rendering: OpenGL 3.3, Metal, D3D11, and WebGL2 via Sokol
🚧 Under Development - This library is being developed to replace Qwt in PlotJuggler.
sudo apt install build-essential cmake libgl1-mesa-dev libx11-dev libxi-dev libxcursor-devgit clone https://github.com/facontidavide/Splot.git
cd Splot
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)./examples/01_window # Basic window
./examples/02_triangle # Colored triangle (M1.2)Press Escape to close.
- BUILD.md - Detailed build instructions for all platforms
- docs/ARCHITECTURE.md - System design and component relationships
- docs/research.md - Technical background and architecture decisions
Splot uses Sokol as the graphics abstraction layer, enabling:
- Single codebase for desktop and web
- Minimal dependencies (header-only libraries)
- High-performance GPU rendering with fragment shader antialiasing
- WebAssembly builds under 100KB
- Min-Max Tree Decimation - Reduce millions of points to ~2000 per pixel column
- Fragment Shader AA - Analytical antialiasing, 100x faster than MSAA
- SDF Markers - Shape rendering computed entirely in fragment shader
- Dirty Tracking - Only upload changed data to GPU
[To be determined]
See docs/ARCHITECTURE.md for system design and docs/requirements.md for feature requirements.