Graphics Server Protocol¶
GSP is an experimental, backend-agnostic protocol and Python API for describing scientific 2D and 3D scenes. Matplotlib provides the reference behavior; optional Datoviz v0.4 paths are enabled only for capabilities supported by the installed facade.
Research prototype
GSP and VisPy2 are currently at version 0.1.0, are not published on PyPI, and may change before
a stable release.
Try the current API¶
GSP requires Python 3.13 or newer and uses uv for development environments:
git clone https://github.com/vispy/GSP_API.git
cd GSP_API
uv sync
uv run python examples/review/01_scatter_basic.py --backend matplotlib
The numbered API review examples are the shortest route into the current surface. They progress from scatter and images through guides, color mapping, View3D navigation, lighting, and mesh picking.
Choose the right reference¶
| Need | Start here |
|---|---|
| Understand maturity and backend boundaries | Status and releases |
| Implement or review protocol behavior | Protocol specification |
| Use Python packages and types | API reference |
| Compare renderer behavior | Testing and conformance |
| Review small executable scenes | API review examples |
| Understand design history | Philosophy overview |
Architecture at a glance¶
GSP scene records describe canvases, panels, views, visuals, resources, guides, navigation actions, and queries without embedding a renderer implementation. VisPy2 is a higher-level producer of GSP records. Backends consume those records according to explicitly advertised capabilities.
gsp: protocol records, validation, views, queries, resources, and core typesvispy2: experimental plotting-style producer APIgsp_matplotlib: reference renderergsp_datoviz: optional legacy renderer and capability-gated Datoviz v0.4 adaptergsp_network: experimental remote rendering pathgsp_pydantic: serialization support
Backend support is not all-or-nothing. Consult the capability matrix before depending on a renderer-specific behavior.