Skip to main content

2D scene graph based on SVG with OpenGL backend

Project description

a 2D scene graph based on SVG with OpenGL backend

Goals & non-goals


  • 2D scene graph suitable for interactive rendering

  • minimal set of dependencies


  • full SVG implementation

  • optimized for speed


  • pythonic API modeled after SVG spec & semantic

  • SVG parsing and serialization

  • scale dependent polygonalization

  • analytical picking

  • sub-pixel strokes rendering enhancement through width and opacity correction

  • per-pixel gradients

  • two modes text rendering: raster by freetype2 for high quality AA at small sizes, vector otherwise

SVG spec


  • shapes: path, rect, circle, ellipse, line, polyline, polygon, image

  • text: (excluding decoration, text on path)

  • structure: group, use (including attributes inheritance)

  • painting: solid color, linear and radial gradients (including units, transform, spread, href);

  • fill: rule (nonzero, evenodd)

  • stroke: cap (butt, round, square), join (miter, round, bevel), miterlimit

  • multi-pass rendering: clipping, masking, object opacity

  • transforms: translate, rotate, scale, skewX, skewY


  • tspan

  • painting: pattern

  • stroke: dash, marker

  • filters




Optional dependencies

Needed to find fonts, fallbacks on FreeFont otherwise.

on the mac:


  • sauvage by S. Conversy

  • SVGL by S. Conversy & J.-D. Fekete

Project details

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seagull-0.1.tar.gz (34.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page