VisPy2 / plotting APIs / domain libraries
-> GSP producer API
-> GSP session and protocol model
-> backend adapters
-> Matplotlib reference backend
-> Datoviz v0.4 GPU backend
-> future remote/web/specialized backends
GSP is a client/server/session protocol. The server may be:
- in-process local renderer;
- subprocess;
- remote renderer;
- browser/worker runtime;
- cloud GPU service.
A server exposes capabilities, accepts scene/resource/visual commands, executes frames, returns query/readback results, and emits diagnostics.
The protocol semantics are independent from any encoding.
Supported transport classes:
inproc: direct Python/ctypes/memoryview path;binary-ipc: shared memory or binary chunks;network: remote commands plus server-side data fetch;debug-json: JSON/base64 fixtures and replay.
The local desktop path must not require JSON or base64.
Control plane:
- scene commands;
- visual creation/update;
- transforms;
- queries;
- capabilities;
- diagnostics;
- events.
Data plane:
- buffers;
- textures;
- tiles/chunks;
- external data-source handles;
- server-side fetch descriptors;
- cache and LOD policies.
Every backend exposes a CapabilitySnapshot. Planning/adaptation happens before execution. Unsupported behavior must produce one of:
- accept;
- simplify with diagnostic;
- deactivate with diagnostic;
- reject with fatal diagnostic.
Transforms should be declarative and staged:
- source/data transforms;
- attribute transforms;
- coordinate transforms;
- controller/navigation transforms;
- material/shading transforms;
- query/readout inverse transforms.
Placement may be CPU, GPU, client-side, server-side, or backend-defined, but semantics must be stable.
Use a unified panel query:
what rendered scene contribution is under this panel coordinate?
Query results should carry identity, item/group/face/voxel/texel ids, visual/data/UVW coordinates, displayed RGBA, depth/order, and optional value/readout payloads.
Extensions can define:
- custom visual families;
- custom transforms;
- custom data sources;
- custom formats/decoders;
- custom query/readout payloads;
- transports.
Every extension needs an ID, version, schema, capability requirements, implementation declarations, fallback policy, and query contract where applicable.
Codex is the primary interactive Mission Control interface.
Mission Control uses tools/agentctl under the hood to inspect status, update project files, launch worker agents through aisw, track runs, create review items, and request ChatGPT Pro consultations for high-reasoning questions.