Spinel is a high-performance GPU-accelerated vector graphics, compositing and image processing pipeline for Vulkan 1.2+ GPUs.

Spinel differs from other vector graphics implementations by providing explicit APIs for defining:

  • Paths: first-class standalone objects
  • Rasters: transformed-to-screen-space rasterized Paths
  • Compositions: an arrangement of Rasters on Layers
  • Stylings: rendering instructions for each Layer in a Composition

These new explicit sub-APIs allow new programming idioms that untangle the canonical immediate-mode 2D API.

Spinel was first implemented using CUDA in 2012.

It was reimplemented in OpenCL and, most recently, Vulkan.

A C11 and Vulkan implementation of Spinel is open source and available here in Google’s Fuchsia project repo.