Abstract
We present Pluot, a software architecture that bridges divides between static/interactive, web/desktop, and vector/bitmap data visualizations, enabling code reuse and interoperability across computing environments. Pluot implements visualization rendering using the Rust programming language. Bindings to these Rust functions enable visualization rendering from other languages, including Python, R, and JavaScript. The Pluot API is declarative such that layers (e.g., PointLayer, TextLayer) can be composed together to implement more complex glyphs or charts. Pluot supports GPU acceleration, using WebGPU for bitmap rendering and compute operations. In sum, Pluot resolves prior tensions between interactive performance and publication-quality figure creation, with an eye toward scientific use cases such as rendering large-scale biological datasets. The software is available at https://pluot.dev.
