Skip to content

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, and gsp_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