Skip to content

PlotJuggler/Splot

Repository files navigation

Splot

Linux macOS Windows WASM

A high-performance 2D plotting library for real-time visualization of millions of data points.

Features

  • 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

Status

🚧 Under Development - This library is being developed to replace Qwt in PlotJuggler.

Quick Start

Prerequisites (Ubuntu)

sudo apt install build-essential cmake libgl1-mesa-dev libx11-dev libxi-dev libxcursor-dev

Build

git clone https://github.com/facontidavide/Splot.git
cd Splot
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)

Run Example

./examples/01_window    # Basic window
./examples/02_triangle  # Colored triangle (M1.2)

Press Escape to close.

Documentation

Architecture

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

Key Techniques

  1. Min-Max Tree Decimation - Reduce millions of points to ~2000 per pixel column
  2. Fragment Shader AA - Analytical antialiasing, 100x faster than MSAA
  3. SDF Markers - Shape rendering computed entirely in fragment shader
  4. Dirty Tracking - Only upload changed data to GPU

License

[To be determined]

Contributing

See docs/ARCHITECTURE.md for system design and docs/requirements.md for feature requirements.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages