GSP Documentation¶
Graphic Server Protocol — a backend-agnostic scene-description API for 2D/3D scientific visualization in Python.
GSP provides a unified, declarative interface for describing scientific visualizations across multiple rendering backends. Whether you're building interactive plots with Matplotlib, high-performance 3D scenes with Datoviz, or remote visualization systems over the network, GSP abstracts away backend-specific details. This documentation covers the core protocol, available renderers, and the architectural principles that make GSP flexible and extensible.
Philosophy¶
GSP is built on a set of core design principles that prioritize clarity, flexibility, and composability. This section explores the architectural decisions, design patterns, and philosophical foundations that guide GSP's development. Whether you're contributing to GSP or simply curious about why certain decisions were made, these documents provide a comprehensive view of the project's vision and technical rationale.
- Overview — Index of all philosophy and design documents
- Whitepaper — High-level pitch: motivation, architecture, ecosystem positioning
- GSP Core — Deep dive on the contract layer and the five design principles behind
src/gsp/ - Packages — Seven packages and the three-tier layered architecture
- Renderers — Conventions shared across
gsp_matplotlib,gsp_datoviz, andgsp_network - Examples — Pattern catalog and design principles behind the 50+ example scripts
API Reference¶
GSP is organized into seven core packages, each serving a specific role in the visualization pipeline. The Core protocol provides the foundational abstractions, while specialized packages handle rendering across different backends, network communication, and high-level utilities. Each module below exposes a cohesive API designed for both simplicity and extensibility.
- GSP — Core protocol: canvas, viewport, camera, visuals, transforms, and utilities
- GSP Network — Network-based rendering for remote visualization and client-server architectures
- GSP Pydantic — Serialization and validation of GSP objects using Pydantic models
- GSP Matplotlib — Matplotlib rendering backend
- GSP Datoviz — High-performance Datoviz rendering backend
- GSP Extra — Additional utilities, animation helpers, and high-level 3D components
- VisPy 2 — Interactive axes display and pan/zoom built on top of GSP